Android 태그가 붙은 모든 Dove Letter 아티클입니다. Google Developer Expert (GDE)인 엄재웅 (skydoves)이 직접 작성한 심층 기술 아티클을 한국어로 만나보세요.
Landscapist는 Jetpack Compose와 코틀린 멀티플랫폼Kotlin Multiplatform을 위한 컴포저블 이미지 로딩 라이브러리입니다. 여러 이미지 컴포저블 중에서도 LandscapistImage가 가장 권장되는 선택지인데, Jetpack...
Compose를 사용하는 모든 안드로이드 개발자라면 컴포저블 함수 위에 @Preview를 작성하고, Android Studio의 디자인 패널에 UI가 렌더링되는 것을 경험해 보셨을 것입니다. 하지만 이 어노테이션 하나가 실제 렌더링된 픽셀로 변환되기까지...
Jetpack Compose는 겉으로 보기에 UI 툴킷에 불과하지만, 내부적으로는 수십 년에 걸친 컴퓨터 과학 연구 성과를 적극적으로 활용하고 있습니다. 런타임은 텍스트 에디터에서 차용한 자료구조를 사용하여 컴포지션Composition 상태를 저장하며,...
모든 안드로이드 개발자는 onCreate, onResume, onDestroy를 오버라이드해 본 경험이 있을 것입니다. 초기화 로직을 작성하고, 리스너를 등록하고, 리소스를 정리하면서 프레임워크가 적절한 시점에, 올바른 순서로 이러한 메서드를 호출해 줄 것이라고...
구글 맵스Google Maps는 대부분의 안드로이드 개발자가 즉시 알아볼 수 있는 바텀 시트bottom sheet 패턴을 대중화했습니다. 화면 하단에서 살짝 올라온 작은 패널이 중간 높이까지 확장되어 간략한 정보를 보여주고, 전체 화면으로 드래그하면 상세 정보를...
안드로이드 릴리스 빌드는 모두 R8을 거칩니다. R8은 코드를 축소shrink하고, 난독화obfuscate하며, 최적화optimize한 뒤 사용자에게 전달하는 전체 프로그램 최적화 컴파일러입니다. R8의 의사 결정 핵심에는 keep 규칙이 자리하고 있습니다....
안드로이드의 ViewModel은 가장 널리 사용되는 아키텍처 컴포넌트 중 하나이지만, 핵심 생존 메커니즘survival mechanism을 깊이 이해하는 개발자는 많지 않습니다. 클래스에 어노테이션을 달고 Activity에서 viewModels를 호출하면 화면...
Jetpack Compose의 Modifier 시스템은 컴포저블에 시각적 속성을 적용하는 핵심 수단이었습니다. background, padding, border 등의 Modifier를 체이닝하여 UI 요소의 외관과 동작을 구성하는 방식인데, 이 접근법은...
안드로이드의 ViewModel은 현대 안드로이드 개발에서 필수적인 컴포넌트로 자리잡았습니다. 구성 변경configuration changes에도 유지되는, 생명주기 인식lifecycle-aware UI 데이터 컨테이너를 제공하기 때문입니다. API 표면만 보면...
SlotTable은 Jetpack Compose 애플리케이션의 UI 트리를 메모리에 표현하는 핵심 자료구조입니다. 일반적인 객체 트리 형태가 아니라, 매우 빠른 UI 업데이트를 위해 고도로 최적화된 플랫flat 구조로 설계되어 있습니다. 이 글에서는...
의존성 주입Dependency Injection, DI은 소프트웨어 설계의 핵심 패턴으로, 느슨한 결합loose coupling을 촉진하고 애플리케이션의 테스트 용이성과 확장성을 높여 줍니다. Hilt이나 Koin 같은 강력한 라이브러리가 프로덕션 안드로이드...
Jetpack Compose 생태계는 최근 몇 년간 폭발적으로 성장했으며, 이제 안드로이드 애플리케이션에서 프로덕션 수준의 UI를 구축하는 데 널리 채택되고 있습니다. Jetpack Compose가 안드로이드 UI 개발의 미래라는 점은 이제 누구도 부정하기...