분류 전체보기108 [안드로이드 코틀린] profier를 사용하여 메모리 리크를 해결해보자 정확히 어디에서 나오는지는 모르겠지만 메모리 리크를 계속 일으키는 오류가 있어서 그동안 이런 기능이 있다~ 정도로 알고 있던 profiler를 사용해보았다. 사용법은 간단하다. 해결법이 어려울 뿐..... 먼저 앱을 실행한다 왼쪽에 속도계기판 같은 아이콘을 클릭한다. 그러면 위와 같은 화면이 뜬다. 위 화면은 이미 연결한 것이고 처음 키면 아무것도 없는 빈칸일텐데 + 아이콘을 클릭하고 기기를 선택하고 앱을 선택하면 된다. profiler화면 에서 memory 즉 파란색 그래프를 클릭하면 아래 화면이 뜰 것이다. 이 상태에서 메모리 리크가 의심되는 부분을 반복해서 실행해보자. 중간중간에 위에 화면에 보이는 쓰레기통 아이콘을 클릭해주자. 강제로 가비지콜렉션을 실행시키는 버튼인데 관계없는 메모리가 잡히는 걸 .. 2024. 3. 25. [코틀린] 네이버지도 연동하기 원래 계획은 카카오지도 네이버지도 티맵 같은 여러 가지 지도앱 중에서 선택해서 목적지까지 자동으로 연결할 수 있게 해주려고 했었다. 그런데 각 앱마다 url이 달라서 하나를 돌려쓰는 것은 불가능했다. 그럼 각각의 앱마다 따로 써야하는데 시간이 안될 거 같아서 할 수 없었다. 결국 타협한 게 아래의 코드다.... 네이버지도만 설치되었는지 검사하고 네이버지도가 있다면 네이버 지도에서 목적지를 검색하고, 네이버 지도가 설치되지 않았다면 네이버의 빠른길찾기 서비스에다가 목적지를 넣어준다. private fun openMap( endLat: Double, endlon: Double, name: String? ) { //네이버지도앱으로 보내는 링크, 앱마다 다르므로 레퍼런스를 참고하자. val url = "nmap.. 2024. 3. 21. [코틀린] intent 변수들 모음 정리 https://developer.android.com/reference/android/content/Intent.html Intent | Android Developers developer.android.com 위에는 안드로이드의 인텐트에 관한 레퍼런스이다. 인텐트(Intent)는 컴포넌트에 액션, 데이터 등을 전달하는 메시지 객체이다. 인텐트 객체의 구성 요소는 다음과 같다. 정리 Intent 객체의 구성 요소 ▶ Action(액션): 수행할 액션 이름(ACTION_DIAL) ▶ Data(데이터): 수행할 데이터의 URI(tel:) ▶ Category(카테고리): 수행할 액션에 대한 추가적인 정보 ▶ Type(타입): 수행할 인텐트 데이터의 명시적인 타입(MIME 타입)(video/mpeg) ▶ Com.. 2024. 3. 21. [코틀린] 네이버 맵 API , TedNaverClustering 적용 구글맵에서는 클러스터링을 지원한다는데 모바일 네이버맵 api에서는 클러스터링을 지원하지 않는다... 있을법도 한데 없다는 게 놀라울 따름이다. 그래서 어떻게 클러스터를 하나 검색해보니 누군가 만들어놓은 라이브러리가 있어서 옳다구나! 하고 적용했다. 그런데 깃헙에 가서 해당 라이브러리를 봐도 설명이 너무나도 부족하다... 그래도 있는 게 어딘가? 사용해본 코드. 완전한 코드는 아니고 일부 발췌. private var tedNaverClustering: TedNaverClustering? = null private var naverMap: NaverMap? = null override fun onMapReady(p0: NaverMap) { tedNaverClustering = TedNaverClusterin.. 2024. 3. 18. [코틀린] 뷰페이저2 안에 맵뷰에서 좌우 스와이프가 안먹힐 때 (커스텀 맵뷰) 내가 한 결과물은 아니고 다른 팀원과 네이버 맵 api를 쓰는 게 겹쳐서 해결법을 모색하다가 알아낸 방법이다. 뷰페이저는 좌우로 스크롤을 할 수 있는데 뷰페이저 안에 있는 페이지에 맵뷰를 쓸 경우 좌우로 스와이프를 하면 맵뷰가 움직이는 게 아니라 화면이 넘어가버리는 문제가 있었다. 혹여나 같은 문제를 겪는 분에게 참고가 될까해서 공유한다. 영상으로 보면 이해가 빠를 것이다. 커스텀 맵뷰를 사용하는 방법이다. class ScrollAwareMapView : MapView { constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) construc.. 2024. 3. 14. [코틀린] 네이버 맵 api 마커 찍기 (보이는 곳만 나오게 ) 네이버맵을 사용하다보니 마커를 여러개 찍으면 렉이 걸린다. 보이는 곳만 나오게 하면 렉이 줄을 거 같은데.... 혹시나 나랑 같은 생각을 한 사람이 있을까 싶어서 검색해보니 있었다. override fun onMapReady(p0: NaverMap) { naverMap?.addOnCameraIdleListener { //카메라의 이동이 끝났을 때 updateMarkers(naverMap!!,markers) } } fun showMarker(marker: Marker, naverMap : NaverMap) { marker.map = naverMap } fun hideMarker(marker: Marker) { marker.map = null } fun updateMarkers(naverMap: NaverM.. 2024. 3. 14. [코틀린] navermap 지도 영역 제한 ( 국내 영역으로 제한하기) 지도 영역을 제한하는 법은 api 가이드에 친절하게 나와있지만 막상 검색할라면 어디에 붙어있는지 일일히 찾아봐야 한다. naverMap?.minZoom = 6.0 naverMap?.maxZoom = 18.0 naverMap?.extent = LatLngBounds(LatLng(32.973077, 124.270981), LatLng(38.856197,130.051725 )) 캠핑앱을 하기 위해 네이버맵에 국내영역만 잡혀야 하는데 아무 설정도 안하니 전세계까지 맵을 축소할 수 있다.... 남한 영역만 잡히게 하려면 위에 처럼 설정하면 된다 . LatLngBounds에 들어가는 좌표는 우측 상단 꼭지점과 좌측 하단 꼭지점을 기준으로 한다. 2024. 3. 11. [git] 특정 파일 잘못 올린 상태로 커밋했을 때, git에서 특정 파일 제거하는 방법 용량이 큰 exe 파일을 넣어둔 걸 깜빡하고 커밋해서 push할 때마다 용량제한에 걸렸다. 로컬에서 exe파일을 삭제했음에도 불구하고 깃 내부에서 기록이 남아있는지 exe파일을 계속 푸쉬하려고 하면서 용량 초과 메시지를 띄운다. 파일 제거 git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 파일명' --prune-empty --tag-name-filter cat -- --all 경로 존재하면 경로+파일명 ex) root/src/components/PostsButtons.js git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch /src/c.. 2024. 2. 29. [안드로이드/코틀린] 파이어베이스 리얼타임 데이터베이스를 연결해보자(firebase realtime database) 파이어베이스를 앱과 연결시켜보자. 우선 프로젝트를 만든다. 이런 화면을 찾으면 된다. 이름을 써주고 계속 클릭 2단계 계속 클릭 3단계 Google 애널리틱스는 사용하지 않았다. 4단계 기다리면 끝난다. 이 화면에서 왼쪽 메뉴에 Realtime Database를 클릭한다. 데이터베이스 만들기 클릭 -> 미국 클릭 -> 테스트로 만드는거니 테스트 모드에서 시작 선택 테스트는 모두가 수정할 수 있기 때문에 서비스를 할거라면 반대쪽을 선택해주자. 데이터베이스를 만들었다. 이제 등록을 할 차례다. 프로젝트 개요 옆에 톱니바퀴 아이콘을 클릭-> 프로젝트 설정 클릭 -> 내 앱 -> 안드로이드 클릭 이런 화면이 나오면 된다. 패키지를 입력해주고 등록 google-services.json파일을 위에 이미지처럼 프로젝.. 2024. 2. 27. 이전 1 2 3 4 5 6 ··· 12 다음