Mobile
모바일
Android, Flutter, CMP, React Native 개발 기록.
모바일
선언형 UI 는 무엇이고, 웹과 모바일은 각자 어떻게 구현했나
명령형 UI 와 선언형 UI 의 차이에서 시작해 React, Vue, Svelte, SolidJS 같은 웹 프레임워크와 Jetpack Compose, SwiftUI, Flutter, React Native, Compose Multiplatform 이 상태 변화를 화면에 반영하는 방식을 나란히 비교했습니다.
Android
Compose 재구성과 stability: donut-hole skipping 부터 strong skipping 까지
Compose 가 재구성 범위를 정하는 방식과 donut-hole skipping, 컴파일러가 파라미터 stability 를 추론하는 규칙, @Stable 과 @Immutable 의 계약, strong skipping 이 기본이 된 뒤 달라진 최적화 기준을 정리했습니다.
모바일
지문 인증 성공 콜백만 믿으면 안 됩니다, Android BiometricPrompt 과 iOS Face ID 를 나란히 놓고 보기
Android BiometricPrompt 의 인증 강도 등급과 CryptoObject, iOS LocalAuthentication 의 LAContext 와 Keychain 접근 제어를 비교하고, 생체 인증 결과를 boolean 이 아니라 Keystore 와 Secure Enclave 의 키에 묶어 서버가 서명으로 검증하는 방법을 적었습니다.
모바일
Android 개발자가 다시 보는 React Native, Flutter, Compose Multiplatform
React Native, Flutter, Compose Multiplatform 의 렌더링 구조와 코드 공유 방식, 도구, 네이티브 연동을 나란히 놓고 최신 버전과 Android/Kotlin 개발자 관점의 선택 기준을 적었습니다.
Android
클린 아키텍처와 구글 앱 아키텍처 가이드는 같은 말이 아닙니다
Uncle Bob 의 Clean Architecture 와 Android 공식 앱 아키텍처 가이드를 레이어, 의존성 방향, 도메인 레이어, 모델 분리 관점에서 비교하고, 프로젝트 규모별 선택 기준과 실무에서 쓸 만한 팁을 적었습니다.
Android
AAC ViewModel, MVVM 의 ViewModel, Compose retain 은 서로 다른 것입니다
MVVM 패턴의 ViewModel 역할과 androidx.lifecycle.ViewModel 은 이름만 같고 책임이 다릅니다. ViewModelStore 가 구성 변경을 넘기는 방식을 소스로 확인하고, Compose 1.10 의 retain 과 remember, rememberSaveable 의 수명을 비교했습니다.
Android
Server-Driven UI: 서버가 화면 구조를 내려줄 때 Android 에서 생기는 일
Server-Driven UI 가 데이터 중심 UI 와 무엇이 다른지, 스키마를 어떻게 설계하는지, Jetpack Compose 렌더러와 kotlinx.serialization 으로 어떻게 받는지, 그리고 비용과 쓰지 말아야 할 경우까지 정리했습니다.
CMP
SOLID 다섯 원칙을 TeddReader 코드로 읽기
SRP, OCP, LSP, ISP, DIP 가 어디서 왔는지 원전 기준으로 정리하고, 직접 만든 Compose Multiplatform 리더 TeddReader 의 저장소 인터페이스, 파서, expect/actual 경계, Koin 배선에서 각 원칙이 지켜진 곳과 비껴간 곳을 코드로 확인합니다.
CMP
Compose Multiplatform 으로 만든 문서 리더 TeddReader 의 구조
TXT, EPUB, PDF, CBZ 를 읽는 Android/iOS 리더 TeddReader 를 Compose Multiplatform 으로 만들며 잡은 모듈 구조, expect/actual 경계, 상태 흐름, 빌드 로직과 Compose 안정성 설정을 코드와 함께 적었습니다.
Android
RecyclerView 에서 LazyColumn 까지: 어댑터가 DSL 이 되기까지
ListView 의 ViewHolder 관례에서 RecyclerView 의 Adapter·LayoutManager·ItemAnimator·DiffUtil 로, 다시 Compose 의 LazyColumn·그리드·animateItem 으로 이어지는 흐름을 개념 대응표, 같은 목록의 before/after 코드, 상호운용 방법과 공식 문서의 성능 권고로 정리합니다.
Android
Service 에서 WorkManager 와 AlarmManager 로: Android 백그라운드 작업이 바뀐 과정
IntentService 와 AsyncTask 를 쓰던 시절부터 Doze, 백그라운드 실행 제한, 포그라운드 서비스 제약, 정확 알람 권한까지 버전별 제한을 정리하고, 공식 가이드의 작업 유형에 따라 WorkManager, AlarmManager, 포그라운드 서비스, 코루틴을 고르는 기준을 코드와 표로 정리했습니다.
Flutter
Melos 모노레포로 나눈 Flutter 즐겨찾기 앱, search_favorites 의 구조
GitHub 저장소를 검색해 즐겨찾기로 저장하는 Flutter 앱 search_favorites 를 Melos 모노레포의 패키지 구성, Riverpod·go_router·drift 선택, 검색에서 즐겨찾기 저장까지의 데이터 흐름 순서로 정리했습니다.