AGP 9.0 마이그레이션 — KMP 프로젝트 구조 재설계
요약
Kotlin Multiplatform + Compose Multiplatform 프로젝트를 AGP 8.7.3에서 9.0.0으로 마이그레이션하면서 겪은 과정과 핵심 변경점을 정리한다.
AGP 9.0 마이그레이션 — KMP 프로젝트 구조 재설계
요약
Kotlin Multiplatform + Compose Multiplatform 프로젝트를 AGP 8.7.3에서 9.0.0으로 마이그레이션하면서 겪은 과정과 핵심 변경점을 정리한다.
Meaning of 'emit' in Android Jetpack Compose
Android Jetpack Compose의 공식 문서에서는 emit이라는 단어가 빈번히 등장합니다. emit은 _방출하다, 내보내다_라는 의미를 지니고 있는데 컴포저블에서 내보낸 UI를 누가 처리하는지, 애초에 내보낸다는 표현을 왜 쓰게 되었는지에 대해 명확한 설명이 없어 궁금증을 자아냅니다.
그래서 stackoverflow에 What is the exact meaning of ‘emit’ in Android Jetpack Compose?라는 질문을 올렸고 Composables.kt 내부의 소스 코드에 그에 대한 답이 있다는 것을 알게 되었습니다.
[Android] Jetpack Compose 기초 - 아키텍처 레이어링
이 페이지에서는 Jetpack Compose를 구성하는 아키텍처 레이어와 관련 디자인에 큰 영향을 주는 핵심 원칙을 간략하게 설명합니다.
Jetpack Compose는 단일 모놀리식 프로젝트(single monolithic project)가 아닙니다. 완전한 스택을 만들기 위해 함께 조합된 다수의 모듈로 만들어졌습니다. Jetpack Compose를 구성하는 여러 모듈을 이해하면 다음이 가능합니다.
[Android] Jetpack Compose 기초 - 상태 관리
1 |
|
[Android] Jetpack Compose 기초 - Compose 이해하기
Jetpack Compose
[Android] View Binding (뷰 바인딩)
findViewById를 대체한다.MVVM 아키텍처가 매력적인 이유 중 하나는 **단위 테스트(unit testing)**가 쉽기 때문이다. 단위 테스트는 앱의 각 단위가 제대로 작동하는지 검사하는 작은 프로그램들을 작성하는 것이다.
본문에서는 단위 테스트 및 안드로이드 오디오 API를 쉽게 사용하도록 해주는 도구인 SoundPool 클래스를 사용한다. SoundPool 클래스는 많은 음원 파일을 메모리로 로드할 수 있으며, 재생하려는 음원의 최대 개수를 언제든 제어할 수 있다. 따라서 사용자가 앱의 모든 버튼을 동시에 마구잡이로 누르더라도 앱의 실행이나 장치에는 영향을 주지 않는다.