목표: Kotlin 문법 살짝 복습 + Compose 레이아웃 익히기
공부 범위:
- Kotlin: val/var 차이, ? (Null Safety) 사용법 다시 보기.
- Compose Layout: Column, Row, Box를 중첩해서 간단한 '프로필 카드' 레이아웃 만들어보기.
- Modifier: padding, fillMaxWidth, clickable 같은 자주 쓰는 속성 손에 익히기.
팁: 디자인을 예쁘게 하기보다 "어떻게 배치되는가"에 집중하세요.
목표: "상태가 변해야 UI가 바뀐다"는 개념 머리에 박기 (가장 중요 ⭐)
공부 범위:
- remember & mutableStateOf: 버튼을 누를 때마다 숫자가 올라가는 카운터 만들기.
- State Hoisting: 상태를 상위 함수로 올리는 이유 이해하기 (재사용성 때문!).
- TextField: 사용자가 입력하는 글자가 화면에 실시간으로 반영되게 하기.
팁: remember를 안 썼을 때 화면이 왜 안 바뀌는지 직접 확인해보세요.
목표: 화면 회전에도 데이터 유지하기 + 멈추지 않는 앱 만들기
공부 범위:
- ViewModel: 카운터 숫자를 ViewModel로 옮기기. (화면을 돌려도 숫자가 유지되는지 확인!)
- Coroutines 기초: viewModelScope.launch를 사용해서 2초 뒤에 텍스트가 바뀌는 가짜 로딩 구현해보기.
팁: 비동기는 "네트워크 통신이나 무거운 작업은 따로 처리한다"는 개념만 확실히 가져가도 성공입니다.
목표: 앱이 멈추지(Freeze) 않게 무거운 작업을 뒷단에서 처리하는 법 익히기
공부 범위:
- viewModelScope.launch: ViewModel 안에서 안전하게 비동기 작업을 시작하는 법 배우기.
- delay(): 가짜 로딩 시간을 주어 (예: 2초) 로딩 스피너가 나타났다 사라지는 흐름 구현하기.
- 네트워크 통신 맛보기: 서버에서 데이터를 가져오는 상황을 가정하고, 비동기로 데이터를 받아와 리스트를 업데이트하는 구조 이해하기.
팁: "데이터를 가져오는 동안에도 사용자는 화면을 만질 수 있어야 한다"는 점을 꼭 기억하세요!
목표: 여러 화면을 가진 앱의 뼈대 구성하기
공부 범위:
- NavHost & NavController: 화면 이동을 총괄하는 조종사와 지도(Graph) 설정하기.
- composable 정의: 각 화면(예: 메인 화면, 상세 화면)을 경로(Route) 이름으로 등록하기.
- 데이터 전달: 화면을 넘길 때 특정 아이디나 텍스트를 함께 보내는 기초 방법 익히기.
팁: 5교시가 끝나면 아까 만든 '프로필 카드'를 클릭했을 때 '상세 프로필 화면'으로 넘어가는 기능을 완성해 보세요.
목표: 객체를 내가 직접 만들지 않고 외부에서 주입받는 '자동 배달 시스템' 구축하기
공부 범위:
- @HiltAndroidApp & @AndroidEntryPoint: 우리 앱에 Hilt라는 '자동 배달 본부'를 설치하고, 각 화면(Activity/Fragment)이 배달을 받을 수 있는 상태로 설정하는 법 배우기.
- @HiltViewModel & inject:
ViewModel이 필요한 부품(Repository 등)을 내가 직접new하거나 생성하지 않고, Hilt가 생성자(Constructor)를 통해 자동으로 끼워 넣어 주는 구조 익히기. - Repository 패턴 결합: 데이터를 관리하는 전담 클래스(
Repository)를 만들고, 이를ViewModel에 주입하여 **"데이터 관리 - 비즈니스 로직 - UI"**가 완벽하게 분리된 깔끔한 코드 만들기.
팁: "객체를 직접 만드는 수고를 덜고, 외부에서 넣어주는 방식(DI)을 쓰면 나중에 코드를 테스트하거나 부품을 갈아 끼우기가 훨씬 쉬워진다"는 점을 기억하세요!