이번에는 아주 어이없는 실수를 해버린 에피소드를 하나 소개해보려한다. 다른 앱에서 딥링크를 통해 내 앱을 실행하는데 앱이 비정상 종료되는 문제였다. 소위 말하는 앱 크래시현상이다. 이유가 뭐였을까? 먼저 내 앱은 딥링크로 앱 실행 시 스플래시 화면으로 진입하게 되고, 여기서 intent의 data안에 있는 uri를 파싱해 토큰을 얻어온 다음, Extra와 함께 로그인 화면으로 넘어간다. 여기서 갑자기 런타임 에러가 났다는 건데... 나의 경우에는 총 2가지 문제가 있었다. 조건문에서 null처리가 되지 않은 문제(온전한 나의 문제) 딥링크가 정상값이 아님(서버 측 문제) 나의 문제였던 1번의 경우, 앱 푸시를 눌렀을 때 진입점이 같은 스플래시 화면이었다. 여기서 딥링크로 앱을 실행할 때와 차이점이 발생..
이번에는 드디어 Room Database에 대해 알아보러 간다. 완전 처음 보는 코드들이 나를 기다리고 있으리라 믿는다. (자랑은 아닌 듯하다) 시작하겠다. 1. Download and run the starter app 먼저 Github에서 앱을 다운로드 받는다. https://github.com/google-developer-training/android-kotlin-fundamentals-starter-apps/tree/master/TrackMySleepQuality-Starter GitHub - google-developer-training/android-kotlin-fundamentals-starter-apps: android-kotlin-fundamentals-starter-apps andro..
나의 상황 출시 초기 버전에서 생성한 Notification channel에는 mp3파일로 소리 설정이 되어있었고, 진동은 설정값이 없었다. 이번에 진동을 설정하고 소리를 변경하기 위해서 검색하다보니 OS 8.0 이상의 경우, Notification channel에 소리와 진동 설정을 해줘야 했다. 나는 여러 글에서 찾은 방법으로 코드를 구성했고 앱을 실행했지만 소리와 진동 설정은 정상적으로 되지 않았다. 해결법 앱을 삭제 후 재설치하거나 앱 데이터를 삭제한 뒤 재실행한다. 개인적인 추론 Android Developer 사이트에서 힌트를 찾아볼 수 있었다. 진동 설정을 위해 찾아본 메소드에 이런 내용이 있다. 마지막 줄에 보면 NotificationChannel이 create되는 메소드에 전달되기 전까지..