Skip to content

yaeunjess/HelloCompose

Repository files navigation

1교시: UI 기본기 잡기

목표: Kotlin 문법 살짝 복습 + Compose 레이아웃 익히기

공부 범위:

  • Kotlin: val/var 차이, ? (Null Safety) 사용법 다시 보기.
  • Compose Layout: Column, Row, Box를 중첩해서 간단한 '프로필 카드' 레이아웃 만들어보기.
  • Modifier: padding, fillMaxWidth, clickable 같은 자주 쓰는 속성 손에 익히기.

팁: 디자인을 예쁘게 하기보다 "어떻게 배치되는가"에 집중하세요.

2교시: 상태 관리와 화면 업데이트

목표: "상태가 변해야 UI가 바뀐다"는 개념 머리에 박기 (가장 중요 ⭐)

공부 범위:

  • remember & mutableStateOf: 버튼을 누를 때마다 숫자가 올라가는 카운터 만들기.
  • State Hoisting: 상태를 상위 함수로 올리는 이유 이해하기 (재사용성 때문!).
  • TextField: 사용자가 입력하는 글자가 화면에 실시간으로 반영되게 하기.

팁: remember를 안 썼을 때 화면이 왜 안 바뀌는지 직접 확인해보세요.

3교시: 데이터의 흐름과 비동기

목표: 화면 회전에도 데이터 유지하기 + 멈추지 않는 앱 만들기

공부 범위:

  • ViewModel: 카운터 숫자를 ViewModel로 옮기기. (화면을 돌려도 숫자가 유지되는지 확인!)
  • Coroutines 기초: viewModelScope.launch를 사용해서 2초 뒤에 텍스트가 바뀌는 가짜 로딩 구현해보기.

팁: 비동기는 "네트워크 통신이나 무거운 작업은 따로 처리한다"는 개념만 확실히 가져가도 성공입니다.

4교시: 비동기 처리와 Coroutines

목표: 앱이 멈추지(Freeze) 않게 무거운 작업을 뒷단에서 처리하는 법 익히기

공부 범위:

  • viewModelScope.launch: ViewModel 안에서 안전하게 비동기 작업을 시작하는 법 배우기.
  • delay(): 가짜 로딩 시간을 주어 (예: 2초) 로딩 스피너가 나타났다 사라지는 흐름 구현하기.
  • 네트워크 통신 맛보기: 서버에서 데이터를 가져오는 상황을 가정하고, 비동기로 데이터를 받아와 리스트를 업데이트하는 구조 이해하기.

팁: "데이터를 가져오는 동안에도 사용자는 화면을 만질 수 있어야 한다"는 점을 꼭 기억하세요!

5교시: Navigation - 화면 이동

목표: 여러 화면을 가진 앱의 뼈대 구성하기

공부 범위:

  • NavHost & NavController: 화면 이동을 총괄하는 조종사와 지도(Graph) 설정하기.
  • composable 정의: 각 화면(예: 메인 화면, 상세 화면)을 경로(Route) 이름으로 등록하기.
  • 데이터 전달: 화면을 넘길 때 특정 아이디나 텍스트를 함께 보내는 기초 방법 익히기.

팁: 5교시가 끝나면 아까 만든 '프로필 카드'를 클릭했을 때 '상세 프로필 화면'으로 넘어가는 기능을 완성해 보세요.

6교시: Hilt를 이용한 의존성 주입 (Dependency Injection)

목표: 객체를 내가 직접 만들지 않고 외부에서 주입받는 '자동 배달 시스템' 구축하기

공부 범위:

  • @HiltAndroidApp & @AndroidEntryPoint: 우리 앱에 Hilt라는 '자동 배달 본부'를 설치하고, 각 화면(Activity/Fragment)이 배달을 받을 수 있는 상태로 설정하는 법 배우기.
  • @HiltViewModel & inject: ViewModel이 필요한 부품(Repository 등)을 내가 직접 new 하거나 생성하지 않고, Hilt가 생성자(Constructor)를 통해 자동으로 끼워 넣어 주는 구조 익히기.
  • Repository 패턴 결합: 데이터를 관리하는 전담 클래스(Repository)를 만들고, 이를 ViewModel에 주입하여 **"데이터 관리 - 비즈니스 로직 - UI"**가 완벽하게 분리된 깔끔한 코드 만들기.

팁: "객체를 직접 만드는 수고를 덜고, 외부에서 넣어주는 방식(DI)을 쓰면 나중에 코드를 테스트하거나 부품을 갈아 끼우기가 훨씬 쉬워진다"는 점을 기억하세요!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages