세상을 바꾸는 개발자

[Android, Room, Coroutinnes, DataBinding, LiveData, ViewModel ] 안드로이드 JetPack과 MVVM 패턴 사용해보기(5 - 1 : 라이브러리 세팅하기) 본문

안드로이드/Kotlin

[Android, Room, Coroutinnes, DataBinding, LiveData, ViewModel ] 안드로이드 JetPack과 MVVM 패턴 사용해보기(5 - 1 : 라이브러리 세팅하기)

헬창코딩 2021. 6. 18. 22:24

안녕하세요 헬창코딩입니다. 

 

오늘은 현업에서 자주 사용하는 JetPack과 MVVM 패턴을 간단하게 사용해보겠습니다~

 

1. 가장먼저 프로젝트를 생성합니다. 

 

 

2. 다음으로 안드로이드 Gradle에 데이터바인딩 라이브러리를 추가합니다

1
2
3
dataBinding {
        enabled = true
    }
cs

 

2. 다음으로 안드로이드 dependencies 에  ViewModel, LiveData 라이브러리를 implementation 합니다

https://developer.android.com/jetpack/androidx/releases/lifecycle

 

수명 주기  |  Android 개발자  |  Android Developers

Lifecycle 수명 주기 인식 구성요소는 활동 및 프래그먼트와 같은 다른 구성요소의 수명 주기 상태 변경에 따라 작업을 실행합니다. 이러한 구성요소를 사용하면 잘 구성된 경량의 코드를 만들어

developer.android.com

 

 

1
2
3
4
5
    def lifecycle_version = "2.3.1"
    // ViewModel
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
    // LiveData
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
cs

 

3. 다음으로 안드로이드 Gradle 에 코틀린  플러그인을 추가해야됩니다.

안드로이드 스튜디오에서 Data binding을 이용할때 BindingAdapter라는 annotation을 작성하게 되는데 kotlin의 annotation을 동작시키기 위해서는  plugin kapt를 추가해야합니다.

 

https://kotlinlang.org/docs/kapt.html

 

 

Using kapt | Kotlin

 

kotlinlang.org

 

1
2
    id 'kotlin-kapt'
cs

 

 

 

4. 다음으로 안드로이드 dependencies에 라이프사이클 컴파일러를 implementation 합니다.

1
2
    kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
 
cs

 

 

 

5. 다음으로 안드로이드 dependencies에 Rooom 라이브러리와 Coroutinnes 라이브러리를 추가해줍니다.

1
2
3
4
5
6
7
8
9
    def room_version = "2.3.0"
    implementation "androidx.room:room-runtime:$room_version"
    kapt "androidx.room:room-compiler:$room_version"
    // optional - Kotlin Extensions and Coroutines support for Room
    implementation "androidx.room:room-ktx:$room_version"
 
    //coroutines
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.2'
cs

 

이렇게 기본적인 세팅이 끝이 났습니다. 다음 글 부터는 본격적으로 코드를 작성해보겠습니다~

Comments