1. 시작하기 전에
소개
Dessert Clicker는 인라인 상태 및 데이터로 작동합니다. 이 연습에서는 MainActivity에서 인라인 상태, 데이터, 로직을 삭제한 다음 그것을 ViewModel
로 이동해 보겠습니다.
앱 로직을 뷰에서 ViewModel로 추상화하는 것은 Android 개발의 최신 방법입니다. 이 방법에는 다음과 같은 이점이 있습니다.
- 다른 개발자가 코드를 더 쉽게 읽을 수 있습니다.
- 코드를 더 쉽게 테스트할 수 있습니다.
- 여러 개발자가 다른 개발자의 작업을 방해하지 않고 한 앱에서 동시에 작업할 수 있습니다.
솔루션 코드는 마지막에 제공되지만 연습 문제를 해결한 후 답을 확인하는 것이 좋습니다. 이 솔루션은 앱을 구현하는 한 가지 방법으로 생각하세요.
기본 요건
- Compose의 ViewModel 및 상태 Codelab을 통한 Compose의 Android 기본사항 과정
필요한 항목
- 인터넷 액세스가 가능하고 Android 스튜디오가 설치된 컴퓨터
- Dessert Clicker 앱의 솔루션 코드
빌드할 항목
이 연습 문제에서는 데이터와 앱 로직을 처리하는 ViewModel
를 추가하여 Dessert Clicker 앱의 아키텍처를 개선해 봅니다.
연습 문제는 섹션으로 나눠지며 섹션에서는 개별적으로 다음 단계를 실행합니다.
- 필요한 종속 항목을 업데이트하고 추가합니다.
ViewModel
클래스를 만듭니다.
2. 시작 코드 다운로드하기
- Android 스튜디오에서
basic-android-kotlin-compose-training-dessert-clicker
폴더를 엽니다. - Android 스튜디오에서 Dessert Clicker 앱 코드를 엽니다.
3. 종속 항목 설정
- 프로젝트
build.gradle
파일에 다음 변수를 추가합니다.
buildscript {
ext {
...
lifecycle_version = '2.5.1'
}
}
app/build.gradle
파일에 다음 종속 항목을 추가합니다.
dependencies {
...implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version"
}
4. UI 상태 클래스 만들기
현재 MainActivity
의 DessertClickerApp()
컴포저블에는 UI를 구동하는 데이터와 상태가 포함되어 있습니다.
UI에 필요한 모든 데이터를 포함하는 데이터 클래스를 만듭니다. 이 클래스 내의 데이터는 DessertClickerApp()
컴포저블이 현재 관리하는 데이터를 대체합니다.
5. ViewModel 만들기
Jetpack ViewModel 구성요소를 사용하여 ViewModel
클래스를 만듭니다. ViewModel을 사용하여 UI 상태를 관리합니다.
6. 앱 로직과 데이터를 ViewModel에 재배치
MainActivity
에서 ViewModel로 로직을 재배치하고, 생성한 UI 상태 클래스를 사용하여 UI 상태 데이터에 액세스할 수 있도록 합니다. MainActivity
에서 모든 데이터 및 상태 관리 로직을 삭제합니다.
혼자서 이 작업을 진행해 보세요. 필요한 경우 Compose의 ViewModel 및 상태 Codelab을 참고하세요.
7. ViewModel 호출
ViewModel이 제공하는 데이터와 메서드를 사용하여 MainActivity
에서 UI를 구동합니다.