왜 이렇게 공부했나

이 자료는 "안드로이드 일반론만 먼저 파는 방식"보다, zipkr라는 실제 앱을 기준으로 앱 진입점부터 화면 상태, 데이터 계층, 의존성 주입, 상세 기능, 빌드/운영까지 한 번에 연결해서 이해하는 쪽이 더 효율적이라고 보고 만들었습니다.

목표는 "동작한다"가 아니라 "왜 이렇게 짰는지 설명할 수 있다"까지 가는 것입니다.

출발점

AndroidManifest.xml부터 시작해서 OS가 앱을 어떻게 띄우는지 먼저 잡습니다.

중간 축

Compose 화면, ViewModel 상태, Repository 경계를 따라 데이터가 흘러가는 방향을 봅니다.

마지막 축

Hilt, WebView, 딥링크, 빌드, 운영, 테스트까지 가며 실제 앱 완성도를 공부합니다.

이 자료가 필요한 사람

안드로이드를 이제 막 공부하는 사람

Manifest, Application, Activity, Compose, ViewModel, Hilt 같은 용어가 한 앱 안에서 어떻게 연결되는지 보고 싶은 경우에 맞습니다.

작은 앱은 만들었지만 구조 설명이 어려운 사람

왜 UI는 상태만 그리고, 왜 Repository가 필요하고, 왜 BuildConfig로 키를 주입하는지까지 설명할 수 있게 돕는 자료입니다.

무엇이 들어 있나

공개용으로는 compact 통합 PDF를 중심에 두고, 내부적으로는 phase별 워크북을 묶어 만들었습니다. 내용은 아래 흐름으로 이어집니다.

구성 핵심 내용
앱 진입점 AndroidManifest.xml, ZipkrApp.kt, MainActivity.kt
Compose 화면 SearchScreen.kt, 상태 보존, side effect, 재구성
상태 관리 SearchViewModel, DetailViewModel, StateFlow, debounce
도메인/데이터 Address, Coordinate, Result, AppError, Repository
네트워크/DI Retrofit, OkHttp, Serialization, Hilt, @Binds, @Provides
상세 기능/운영 Bottom sheet, WebView, 지도 딥링크, 빌드, signing, R8, 테스트

10개 Phase로 쪼갠 이유

Phase 1. 안드로이드 앱 진입점

Manifest, Application, Activity, theme, intent-filter를 잡습니다.

Phase 2. Compose 화면 구조

@Composable, remember, Modifier, 재사용 컴포넌트를 이해합니다.

Phase 3. 상태와 ViewModel

StateFlow, debounce, viewModelScope, 상태 머신 관점을 익힙니다.

Phase 4. 도메인 모델

앱 내부 언어와 외부 DTO를 분리하는 이유를 배웁니다.

Phase 5. Repository와 데이터 흐름

UI가 저장소/네트워크 구현을 몰라도 되게 만드는 경계를 봅니다.

Phase 6. 외부 API와 네트워크

Retrofit, OkHttp, converter, API 키 주입을 이해합니다.

Phase 7. Hilt와 객체 그래프

@Inject, @Binds, @Provides, qualifier를 코드로 연결합니다.

Phase 8. 상세 화면과 지도 기능

Bottom sheet, WebView, 딥링크, copy UX, micro animation을 이해합니다.

Phase 9. 빌드와 운영

Gradle, version catalog, signing, BuildConfig, release 최적화를 공부합니다.

Phase 10. 테스트와 검증 습관

ViewModel, Repository, util 테스트가 무엇을 보호하는지 봅니다.

추천 공부 순서

  1. 앱 아이콘을 눌렀을 때 무엇이 실행되는지부터 먼저 설명해봅니다.
  2. 그다음 SearchScreenSearchViewModel을 같이 읽습니다.
  3. 모델, Repository, Provider, NetworkModule로 내려가며 데이터 경계를 봅니다.
  4. 마지막에 Hilt, WebView, 빌드/운영, 테스트로 확장합니다.
이 자료의 기준

모든 파일을 "역할, 위치 이유, 네이밍, 줄 단위 해설, 기본 개념 연결, 빠지면 깨지는 것" 순서로 설명할 수 있는 상태를 목표로 잡습니다.

다운로드

공개용으로 정리한 가장 압축된 버전은 아래 compact PDF입니다. 기존 122페이지 통합본을 다시 조정해 51페이지로 줄였습니다.

zipkr Complete Study Pack Compact

Android 앱 진입점부터 Compose, ViewModel, Repository, Hilt, 지도, 빌드/운영까지 한 번에 읽을 수 있는 인쇄용 자료.