일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Rxjava
- kotlin강좌
- 글또
- theming
- 병럴프로그래밍
- 테스트
- k8s
- 자바
- android
- 알게되는
- viewmodel
- 코틀린
- 책
- 안드로이드스튜디오
- 안드로이드강좌
- 알고리즘
- Gradle
- 안드로이드
- 디자인패턴
- 병렬프로그래밍
- g 단위테스트
- 스레드
- 코루틴
- Kotlin
- Compose
- mockito
- ReactiveProgramming
- 커스텀상태
- Coroutine
- 회고
- Today
- Total
목록개발/android 개발 (47)
선생님, 개발을 잘하고 싶어요.
two-way binding을 하기 위해서 총 3가지의 함수가 필요합니다. 각 용도는 이런 식으로 생각할 수 있는데요. 데이터를 받아서 view에 설정하는 것 (BindingAdapter) view의 데이터가 변경되었을 때, 변경된 데이터 받아오는 것 (InverseBindingAdapter) 그런데, InverseBindingAdapter는 어떻게 view 데이터 변경을 알아차리는 걸까요? 바로, InverseBindingAdapter의 관련된 event를 등록하고, 해당 이벤트의 인자로 들어오는 InverseBindingListener.onChange()가 호출되는 순간을 알게되는 겁니다. view의 데이터가 변경되었음을 알리는 이벤트를 등록하는 것 (android:xxxxAttrChanged) 여기..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bEs8ub/btrdesLANkx/hAt3yCb40huPagGaoHYtak/img.png)
상황 개인 프로젝트를 개발하고 있는데 잘만 동작하던 앱이 갑자기 죽기 시작했습니다. 내가 최근 작업에서 건드린 부분이 아닌데 왜 이러나 한참 헤매었습니다. CustomFont로드 시점에 OutOfMemory가 나면서 죽는 경우였습니다. 코드는 다음과 같았습니다. fun getSLightTypefaceSpan(context: Context): CustomTypefaceSpan { return CustomTypefaceSpan( Typeface.create( ResourcesCompat.getFont( context, R.font.s_light ), Typeface.NORMAL ) ) } 이 코드를 모든 화면에서 사용하고 있었습니다. TLDR Resource를 접근하는 코드는 캐시 하자. 폰트 사이즈가 너무..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kCExq/btq1OM64ECf/KBNKdxKjqLed98UJ295Ea1/img.png)
수명 주기 패러다임 Activity가 새로운 상태에 들어가면 시스템에서 호출하는 콜백 시스템 콜백 내부에서 일어나는 일, 무엇을 구현해야 하는 지 onCreate - 생성됨 상태 내부에서 일어나는 일 시스템이 Activity를 생성할 때 실행 생성됨 상태 → 시작됨 상태 해야 할 일 데이터 바인딩 뷰 바인딩 Activity와 ViewModel 연결 클래스 범위 변수 인스턴스화 이전 Activity 저장 상태가 포함된 savedInstanceState 세팅 onStart - 시작됨 상태 내부에서 일어나는 일 Activity가 사용자에게 보임 앱은 Activity를 foreground로 보내 상호작용 준비 시작됨 상태 → 재개됨 상태 매우 빠르게 완료 해야 할 일 앱이 UI를 관리하는 코드 초기화 onRes..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cdVFhr/btq1KceQBW3/Kiegt2MuhFj8plhyFJX5QK/img.png)
사이드 프로젝트가 배포를 앞두고 있습니다. (몇 달째 이 말을 하는지 모르겠지만...) 그래서 이제 배포를 하기 위해서 apk를 신나게 뽑고 있었습니다만 네, 앞으로 Google Play에 apk 배포 말고, App Bundle로 배포하라고 하네요. 한마디로 배포 관점에서 apk 배포는 dprecated 되었습니다. 이에 미루고 미룬 App Bundle을 왜 쓰나 알아보고, 직접 적용해 본 내용을 간단하게 정리합니다. App Bundle이 뭔데? 결국, 안드로이드 시스템이 앱을 소비하기 위해서는 apk가 필요합니다. App Bundle 자체를 실행할 수 있는 것은 아니죠. 그럼 App Bundle은 뭘까요? App Bundle을 사용하면 apk 생성과 Signing이 지연된다. 기존에는 개발자가 apk를..