Jetpack

    [JETPACK개론] ROOM(2)

    이 글은 전에 포스팅했던 ROOM(1)에 이어서 공부한 내용을 정리해보겠다! 저번 코드에 이어서 Multi Table, 테이블을 하나 추가하고, 이를 ViewModel로 분리하여 왜 viewModelScope에서 Disaptchers.IO를 사용하는지까지 알아보자. text_table만 있던 데이터베이스에 word_table이라는 테이블을 추가해보자. @Entity(tableName = "word_table") data class WordEntity ( @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") var id : Int, @ColumnInfo(name = "text") var text : String ) 테이블을 만들어 주었으니 Dao에 똑같이 ..

    [JETPACK개론] ROOM(1)

    [JETPACK개론] ROOM(1)

    전에 포스팅했던 글에서 SQLite에 대해서 다뤄보았다. SQLite 게시물 바로가기 -> [JETPACK개론] SQLite(1) 앱을 이용하다보면 네트워크가 끊겼을 때 네트워크 오류입니다. 다시 시도해 주세요 라는 메세지를 본 적이 있다. 하지만 카카오톡 채팅방처럼 네트워크가 연결되어 있지 않은 상황에서도 잘 ssongcode.tistory.com Room은 SQLite를 완벽히 활용하면서 원활한 데이터베이스 엑세스가 가능하도록 하는 업그레이드 버전이라 할 수 있다. 여러 장점이 있지만 반복적이고 오류가 발생하기 쉬운 상용구 코드를 최소화하는 것이 Room의 장점이다. 이러한 이유로 JetPack 라이브러리에 포함된 Room의 사용을 권장하고 있다! Room 구성요소 데이터베이스 - 데이터베이스는 앱..

    [JETPACK개론] ViewModelFactory

    ViewModelFactory 안드로이드 개발을 하면서 네트워크 통신을 하거나 localDB, room SQLite 등을 포함하여 데이터를 ViewModel로 넘겨주고 싶을 때 안드로이드 Factory클래스를 이용할 수 있다. 간단히 int형 숫자 하나를 전달하는 ViewModel을 만들어 테스트해보자. class MainViewModel(num : Int) : ViewModel() { init{ Log.d("MainViewModel" , num.toString()) } 숫자 하나를 받은 ViewModel 클래스이다. 이제 Factory클래스를 이용해 ViewModel에 원하는 파라메터를 넣어 생성하는 방법을 이용해보자! class MainViewModelFactory(private val num : I..

    [JETPACK개론] Activity/Fragment 의 ViewModel 공유

    [JETPACK개론] Activity/Fragment 의 ViewModel 공유

    전 글에서는 간단하게 Activity에서의 ViewModel 사용을 해보았다. 이번 글에서는 먼저 Fragment에서 ViewModel을 사용해보자! val transaction = manager.beginTransaction() val fragment = TestFragment() transaction.replace(R.id.frameArea, fragment) transaction.addToBackStack(null) transaction.commit() 먼저 fragment layout을 만들고, 위의 코드와 같이 액티비티에서 framlayout을 형성하여 fragment로 변환해준다. class TestFragmentViewModel : ViewModel() { var countValue = 0 ..

    [JETPACK개론] ViewModel ?

    [JETPACK개론] ViewModel ?

    ViewModel ViewModel 개요 | Android 개발자 | Android Developers ViewModel을 사용하면 수명 주기를 인식하는 방식으로 UI 데이터를 관리할 수 있습니다. developer.android.com 위의 안드로이드 공식문서를 읽어보면 자세히 나와있지만 처음 접하는 나같은 사람들에게는 어렵게 다가올 수 있다. 정리하자면 ViewModel은 안드로이드의 생명주기를 관리하기 쉽게한다. 다시말해, UI컨트롤러(Activity, Fragment)에서 모든 것을 다 하려고 하면 복잡해지는데, ViewModel을 사용하면 테스트나 관리가 용이해진다. 먼저 간단하게 Activity에서 ViewModel을 사용해보면서 이해해보자!! 위의 그림을 이해하기 위해 다음과 같이 로그를 찍..