Android Jetpack 104

ROOM Embeded

ROOM 을 사용할 때 객체간 매핑을 하고 싶을 때 사용하는 방법입니다. @Embedded를 사용해줄 수 있습니다. @Entity(tableName = "text_table") data class TextEntity ( @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") var id : Int, @ColumnInfo(name = "text") var text : String, @Embedded var testDataset : testDataSet ) data class testDataSet( val test1 : String, val test2 : String ) - 참조 https://developer.android.com/training/data-s..

Android Jetpack 2022.07.22

ROOM Migration

기존에 DAO를 수정할 일이 생겨서 한번 수정을 해보겠습니다. 현재 앱 화면은 이렇습니다. 이 앱의 Entity를 기존에 있는 형태에서 @Entity(tableName = "text_table") data class TextEntity ( @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") var id : Int, @ColumnInfo(name = "text") var text : String ) 새롭게 Entity를 하나 더 만들어보겠습니다. @Entity(tableName = "text_table2") data class TextEntity2 ( @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id2")..

Android Jetpack 2022.07.22

ROOM + FLOW CRUD - 1

ROOM을 이용해서 CRUD를 구현해보는 것을 해보겠습니다. 기존의 List 형태로 가져오는 것이 아니라, Flow 형태로 가져와서 사용해보겠습니다. 일단 기본적인 ROOM 을 만드는 과정입니다. id 'kotlin-kapt' // ROOM def roomVersion = "2.4.0" implementation("androidx.room:room-runtime:$roomVersion") annotationProcessor("androidx.room:room-compiler:$roomVersion") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$roomVersion") // Coroutine im..

Android Jetpack 2022.07.03

ROOM + FLOW

Flow의 예제를 살펴보다 보면 종종 ROOM과 같이 사용하는 것을 볼 수 있습니다. 왜 이렇게 같이 사용하고 어떻게 사용할까요? 설명을 한번 보도록 하겠습니다. Coroutines support in Room has been increasing at every release: Room 2.1 added coroutines support for one-shot read / write operations and with Room 2.2 we now have support for observable reads with Flow enabling you to get notified of changes in your database. Flow를 이용해서 chanes를 볼 수 있다는 것으로 보입니다. Start g..

Android Jetpack 2022.06.27

Coroutine flow

코루틴의 flow 에 대해서 알아보겠습니다. 일단 구글 문서부터 한번 살펴볼까요? 코루틴에서 흐름은 단일 값만 반환하는 정지 함수와 달리 여러 값을 순차적으로 내보낼 수 있는 유형입니다. 예를 들면 흐름을 사용하여 데이터베이스에서 실시간 업데이트를 수신할 수 있습니다. 흐름은 코루틴을 기반으로 빌드되며 여러 값을 제공할 수 있습니다. 흐름은 비동기식으로 계산할 수 있는 데이터 스트림의 개념입니다. 내보낸 값은 동일한 유형이어야 합니다. 예를 들어 Flow는 정수 값을 내보내는 흐름입니다. 흐름은 값 시퀀스를 생성하는 Iterator와 매우 비슷하지만 정지 함수를 사용하여 값을 비동기적으로 생성하고 사용합니다. 예를 들어 흐름은 기본 스레드를 차단하지 않고 다음 값을 생성할 네트워크 요청을 안전하게 만들 ..

Android Jetpack 2022.06.19