Programming (37) 썸네일형 리스트형 20.08.27(목) TIL 1. 출시가 다가오고 있다...ㅎ 오늘은 그동안 dev branch에서 작업했던 코드들을 master branch로 옮기는 작업을 했다. master는 항상 클리어하고 에러 없는 코드들이 올라가야 한다는 생각 때문에 dev에서만 작업하다보니 병합할 때 충돌이 많이 나지 않을까 걱정했다... 그래도 다행히 이전 개발자분이 master에서 작업한 것이 없어서 무난하게 충돌난 것 수정하면서 병합했다. (거의) 1인 개발이라 형상관리는 아직도 헤매는데 이제 유지보수하면서 git을 좀 더 잘 사용해 보아야겠다. 2. master에 병합하고 다시 빌드해보았는데 앱 열자마자 죽어버림. koin버전을 낮추었더니 제대로 동작했다. 나중에 버전 올려서 디버깅해야 한다. 3. 개발용 앱과 배포용 앱을 구분해야 해서 buil.. 20.08.24(월) TIL 1. 버전관리를 할 때 충돌을 피하거나 원하지 않는 파일(백업, 로그 등)의 커밋을 막고자 할 때 .gitignore 파일에 정의해 주면 된다. 아래 사이트에서 플랫폼, 언어 등을 검색하면 자동으로 파일을 생성해 줌! https://www.toptal.com/developers/gitignore 2. 안에 와 항상 아래에 있는 을 넣었는데 스크롤이 제대로 적용되지 않고 리사이클러뷰의 아래 아이템들이 잘리는 현상이 발생했다. 그래서 다음과 같이 레이아웃 구조를 바꾸었다. 와 이 최상단 아래 같은 계층에 위치하고, 의 height=0dp, weight=1로 설정해 주었더니 원하는대로 잘 동작했다. 3. onStop메소드에서 fusedLocationProviderClient.removeLocationUpdat.. 의존성 주입(Dependency Injection)이란? 의존성에 대한 비유 What Is Dependency Injection? It’s more straightforward than you think medium.com 위 블로그 글이 의존성 주입이란 무엇인가를 비유를 들어 아주 잘 설명하고 있는 것 같아 요약 번역해본다. 의존성에 대해 개념적으로 이해하기 좋은 것 같다. 예시1 집에서 베이킹을 하면 주방 어질러지고 난리나서 케이크 배달을 시키고 싶은 상황이다. 그런데 배달원은 나 대신 베이킹을 해주기 때문에 옷에 밀가루 묻고 더러워서 내 집 안에 들여놓고 싶지 않고 그저 잘 만들어진 케이크만 받아서 대문 앞에 놓아줬으면 좋겠다. 즉, 어질러지는 상황 없이, 배달원가 최소한의 접촉만을 하면서 케이크를 받고 싶다. 이 때 나는 케이크에 종속성을 가지고, 빵집.. 20.8.20 (목) TIL 1. 로그아웃 해서 홈 화면으로 이동했는데 이전 스택이 그대로 남아있어서 뒤로가기 버튼을 클릭하면 이전 액티비티가 그대로 나타나는 현상이 있었다. finishAffinity()를 해주면 된다 2. 1.0.1 버전을 설치했다가 삭제하고 1.0.4버전을 설치하려고 하는데 1.0.1 버전이 그대로 설치되는 현상 발생했다. 이전 어플을 백업해서 발생하는 것이므로 manifest에 아래 옵션을 추가해주고 디바이스에서는 설정->클라우드 및 계정->백업 및 복원에서 자동 복원이 체크되어 있으면 해제하면 최신 버전으로 설치된다. android:allowBackup="false" android:fullBackupContent="false" android:fullBackupOnly="false" 3. 서비스에서는 액티비티.. 20.08.19(수) TIL 1. LG폰으로 테스트하는데 블루투스 기기 스캔이 잘 안된다.... 에러 메시지는 Scan failed because out of hardware resources (code 9). 깃헙 이슈나 스택오버플로우에는 제조사마다 기기 성능이 다르고 하드웨어 문제라 해결할 수 없다고만 나와있었다. 절망.. 이게 우리 서비스의 핵심 기술인데?? 일단 정말 기기 문제인지 확인해보기 위해서 다른 블루투스도 연결이 안 되는지 보았다. 아이폰이나 블루투스 이어폰은 스캔이고 페어링이고 잘 되었다. 락커도 잘 스캔되어 나오는 상태였다. 그래서 일단 'LG 블루투스 연결'로 검색해보았더니 블루투스 종료 후 재시도 캐시, 데이터 삭제 앱이 절전 관리 대상에 해당하는 경우 OS에서 주기적으로 앱을 종료하므로 앱을 절전 대상에서 .. 20.08.18(화) TIL 1. 마커 여러 개 핸들링 하는 것 너무 어렵다ㅠㅠㅠㅠ 마커 선택하면 해당 마커 아이콘 크게 변경해주고 이전에 클릭했던 마커는 작게 변경해주고 + 지도 이동할 때마다 새로 마커 위치 받아와서 보여주고 등등 처리해야 할 것이 너무 많다. 오늘도 고생하고 있음.. 저번에 다 했다고 생각했는데 또 indexoutofboundsexception 에러가 남(스트레스) 일단 코드가 너무 복잡한 것 같아서 파라미터로 받던 마커클릭boolean값 없애 버리고 메소드 2개를 4개로 나눔. 그랬더니 원인이 눈에 들어왔다. 이전마커 index가 새로운 마커리스트에서는 적용되지 않지 당연히!! index 초기값 null로 했던 것을 -1로 바꾸고 디바이스 목록 갱신할 때마다 -1로 변경해주었더니 일단 해결. 최종 해결이길.... 20.08.14(금) TIL 1. 한 3주를 질질 끈 문제의 해결 실마리를 찾았다. 블루투스 기기 스캔이 안 될 때 타임아웃 처리 후 에러 메시지를 사용자에게 보여주어야 하는데 도저히 에러캐치를 할 수가 없어 프로그레스바가 무한로딩되는 문제가 있었다. 스캔이 안 되니 disposable에 값이 안 들어가고 따라서 subscribe가 동작하지 않는 것 같았다. 그래서 예제와 달리 일단 disposable 변수에 값을 넣어주는 let함수를 주석처리 하였다. 그랬더니 subscribe에서 블루투스 기기를 스캔하다가 못 찾으면 20초 후 타임아웃이 작동되었다. 그런데 이 warning메시지가 뜨길래 검색ㄱㄱ disposable 변수에 바로 저장을 해주니 깔끔해짐!! 테스트 몇 번 더 해봐야 하지만 일단 동작 잘 된다. 근데 왜 해결되었는지.. 20.08.13(목) TIL 1. 오늘 큰 거 한 건 했다! 일단 문제상황. 지도에 좌표 500개를 받아오는데 3초가 걸렸다. 지도를 움직일 때마다 api를 호출하는데 서버에서 응답값을 주는 데 너무 오래걸리니 요청만 계속 들어가고 응답을 받지 못하는 결과가 발생했다. 이 상태에서 마커를 클릭하면 값을 가져오지 못해 index초과 에러가 나타났다. 우선 혼자 끙끙 거리면서 생각한 것은 모바일단에서 요청을 최대한 줄이는 것이다. 지도를 움직일 때 1km이상 차이가 나지 않으면 요청을 하지 말까?? 횟수를 카운트해서 일정 시간동안 여러 번 호출하면 마지막 요청만 보낼까?? 줌인이나 아웃할 때는 요청하지 말까?? 등등.. 일단 사용자의 터치이벤트를 받기 위해 찾아보니 touchListener는 mapFragment가 아니라 mapView.. 이전 1 2 3 4 5 다음