Android 아티클

Android 태그가 붙은 모든 Dove Letter 아티클입니다. Google Developer Expert (GDE)인 엄재웅 (skydoves)이 직접 작성한 심층 기술 아티클을 한국어로 만나보세요.

Jetpack Compose에서 나만의 Landscapist 이미지 플러그인 만들기

Landscapist는 Jetpack Compose와 코틀린 멀티플랫폼Kotlin Multiplatform을 위한 컴포저블 이미지 로딩 라이브러리입니다. 여러 이미지 컴포저블 중에서도 LandscapistImage가 가장 권장되는 선택지인데, Jetpack...

ComposeAndroidKotlin
2026년 3월 28일공개

Compose Preview의 내부 동작 원리

Compose를 사용하는 모든 안드로이드 개발자라면 컴포저블 함수 위에 @Preview를 작성하고, Android Studio의 디자인 패널에 UI가 렌더링되는 것을 경험해 보셨을 것입니다. 하지만 이 어노테이션 하나가 실제 렌더링된 픽셀로 변환되기까지...

ComposeAndroidKotlin
2026년 3월 15일공개

Jetpack Compose 내부에 숨겨진 다섯 가지 알고리즘과 자료구조

Jetpack Compose는 겉으로 보기에 UI 툴킷에 불과하지만, 내부적으로는 수십 년에 걸친 컴퓨터 과학 연구 성과를 적극적으로 활용하고 있습니다. 런타임은 텍스트 에디터에서 차용한 자료구조를 사용하여 컴포지션Composition 상태를 저장하며,...

ComposeAndroidKotlin
2026년 3월 11일구독자 전용

Activity 생명주기 내부 구조: 프레임워크가 onCreate/onResume/onDestroy를 호출하는 원리

모든 안드로이드 개발자는 onCreate, onResume, onDestroy를 오버라이드해 본 경험이 있을 것입니다. 초기화 로직을 작성하고, 리스너를 등록하고, 리소스를 정리하면서 프레임워크가 적절한 시점에, 올바른 순서로 이러한 메서드를 호출해 줄 것이라고...

Android
2026년 2월 15일구독자 전용

Jetpack Compose로 구글 맵스 스타일 바텀 시트 만들기

구글 맵스Google Maps는 대부분의 안드로이드 개발자가 즉시 알아볼 수 있는 바텀 시트bottom sheet 패턴을 대중화했습니다. 화면 하단에서 살짝 올라온 작은 패널이 중간 높이까지 확장되어 간략한 정보를 보여주고, 전체 화면으로 드래그하면 상세 정보를...

ComposeAndroidKotlin
2026년 2월 15일공개

R8 Keep 규칙 해석: 안드로이드 컴파일러는 어떻게 코드의 생존 여부를 결정하는가

안드로이드 릴리스 빌드는 모두 R8을 거칩니다. R8은 코드를 축소shrink하고, 난독화obfuscate하며, 최적화optimize한 뒤 사용자에게 전달하는 전체 프로그램 최적화 컴파일러입니다. R8의 의사 결정 핵심에는 keep 규칙이 자리하고 있습니다....

Android
2026년 2월 3일구독자 전용

ViewModel: 구성 변경에서 살아남는 원리

안드로이드의 ViewModel은 가장 널리 사용되는 아키텍처 컴포넌트 중 하나이지만, 핵심 생존 메커니즘survival mechanism을 깊이 이해하는 개발자는 많지 않습니다. 클래스에 어노테이션을 달고 Activity에서 viewModels를 호출하면 화면...

AndroidKotlin
2026년 1월 28일구독자 전용

Jetpack Compose의 실험적 Styles API 소개

Jetpack Compose의 Modifier 시스템은 컴포저블에 시각적 속성을 적용하는 핵심 수단이었습니다. background, padding, border 등의 Modifier를 체이닝하여 UI 요소의 외관과 동작을 구성하는 방식인데, 이 접근법은...

ComposeAndroidKotlin
2026년 1월 21일공개

ViewModel 내부 메커니즘과 멀티플랫폼 아키텍처 심층 분석

안드로이드의 ViewModel은 현대 안드로이드 개발에서 필수적인 컴포넌트로 자리잡았습니다. 구성 변경configuration changes에도 유지되는, 생명주기 인식lifecycle-aware UI 데이터 컨테이너를 제공하기 때문입니다. API 표면만 보면...

CoroutinesAndroidKotlin
2026년 1월 6일구독자 전용

Jetpack Compose SlotTable 내부 구조 심층 분석

SlotTable은 Jetpack Compose 애플리케이션의 UI 트리를 메모리에 표현하는 핵심 자료구조입니다. 일반적인 객체 트리 형태가 아니라, 매우 빠른 UI 업데이트를 위해 고도로 최적화된 플랫flat 구조로 설계되어 있습니다. 이 글에서는...

ComposeAndroidKotlin
2025년 9월 28일구독자 전용

학습: 코틀린으로 간단한 의존성 주입 컨테이너 직접 구현하기

의존성 주입Dependency Injection, DI은 소프트웨어 설계의 핵심 패턴으로, 느슨한 결합loose coupling을 촉진하고 애플리케이션의 테스트 용이성과 확장성을 높여 줍니다. Hilt이나 Koin 같은 강력한 라이브러리가 프로덕션 안드로이드...

Android
2025년 8월 31일구독자 전용

Jetpack Compose 컴포넌트를 더 잘 만들기 위한 API 가이드라인 분석

Jetpack Compose 생태계는 최근 몇 년간 폭발적으로 성장했으며, 이제 안드로이드 애플리케이션에서 프로덕션 수준의 UI를 구축하는 데 널리 채택되고 있습니다. Jetpack Compose가 안드로이드 UI 개발의 미래라는 점은 이제 누구도 부정하기...

ComposeAndroidKotlin
2025년 8월 24일구독자 전용