로그를 위한 Timber나 Architecture component들처럼 기본적으로 사용하는 것들이 Android Studio로 생성한 프로젝트에는 없다. 나만의 템플릿을 만들어놓고 사용하고 싶지만, 방법은 모르겠으니 기본적인 프로젝트 셋팅을 해놓고 이걸 복사해서 새 프로젝트에 써야겠다고 생각했다…만, 실제로 해보니 이것역시 프로젝트 파일들에서 프로젝트 이름, 패키지 이름등을 찾아 변경해줘야한다. 이 부분은 자동화 할 수 있지 않을까 생각은 드는데, 아직까지는 뭐가 더 간편할지 모르겠다….
[글쓴이:] batmask
빌어먹을 Android Alarm 만들기
간단히 알람앱을 하나 만들다가 간단히 안되서 좀 많이 빡치고 오래걸렸다. 그 경험을 기록하려 한다. 마구잡이로 하다가 성공하고나서 뭐가 어떻게 동작하는지 하루종일 버전별로 이것 저것 테스트 해봤는데, 여전히 혼란스럽기 때문에 적당히 정리가 필요하다. 시작하기전에 꼭 알아야 하는점은, Alarm 앱을 만드는데에 AlarmManager로 해결되지 않는다는 사실이다. AlarmManager를 사용은 하겠지만, 실제 표시하는 부분은 Notification을 이용한다. 이름때문에 함정에 빠지지말자. 일단,…
Android Release names and API level
https://developer.android.com/studio/releases/platforms 참조. 년도 코드명 버전 API 레벨 2020 android 11 30 2019-2020 android 10 29 2018 Pie android 9 28 2017 Oreo android 8.1 27 2017 Oreo android 8.0 26 2016December Nougat android 7.1Revision 3 25 2016November Nougat android 7.1Revision 2 25 2016October Nougat android 7.1Revision 1 25 2016August Nougat android 7.0 24 2015November Marshmallow…
Android: Service onUnbind() 리턴값에 대해
onUnbind() 는 boolean을 리턴하게 되어있는데, false를 리턴하면 다시 bind될 때 아무것도 불리지 않는다. 이렇게 동작하는 이유는 onBind()에서 IBinder를 한번 리턴받으면, 시스템이 이 값을 계속 재활용하기 때문이고 다시 bind를 해도 전혀 문제없이 동작하게된다. 이경우 문제가 있을 수 있는데, 예를들어 onUnbind() 에서 상태를 검사하고 stopSelf()로 서비스 종료를 하도록 해도, onBind()-onUnbind()가 두번째 binding부터는 전혀 불리지가 않아 원하는 동작을…
Kotlin: data class equals without id
DB를 사용하면서 Entity를 data class로 표현하는데, id를 자동생성되도록 했더니 두개의 entity 비교에 문제가 생겼다. 내가 원하는건, id를 제외한 내용의 비교. data class가 자동 생성해주는 equals()를 포기하고 내가 재정의 하기엔, 너무 말이 안되는거 같아서 한참을 헤매이다가 알아냄. data class가 자동생성해주는 equals()는 primary constructor에 정의된 properties만 사용한다. 위와 같이 정의되면, age에 상관없이 name만 비교가 된다. 알고보니, Kotlin…