LiveData 안드로이드 Jetpack 구성요소중 하나이다. Data의 변경을 관찰 할 수 있는 Data Holder 클래스 입니다. Observer LiveData의 Data관찰은 Observer가 한다. 안드로이드에서의 Observer는 데이터가 변경되는지 감시하고 있다가 데이터가 변경되면 UI 컨트롤러에게 알려준다. 소식을 들은 UI 컨트롤러는 변경된 데이터를 가지고 UI를 업데이트한다. Observer는 LiveData라는 데이터 홀더 클래스가 가지고 있는 데이터만 감시할 수 있다. LiveData의 장점 UI와 데이터 상태의 일치 보장 - LiveData는 데이터가 변경될 때마다 Observer 객체에게 알려줍니다. - 앱 데이터가 변경될 때마다 Observer가 대신 UI를 업데이트 하므로 ..
제가 보려고 쓰는 글입니다. 설명이 부족할 수 있습니다. implementation("androidx.fragment:fragment-ktx:1.4.1") buildFeatures { dataBinding true } build.gradle 추가. 1. activity_main.xml Databinding 사용하기 위해 으로 묶어줌 2. MainViewModel class MainViewModel : ViewModel() { private var num = 0 fun plus() { num++ } fun getNum() : Int{ return num } } ViewModel 간단하게 생성 3. fragment_test.xml Databinding 사용하기 위해 으로 묶어줌 4. TestFragment ..
ViewModel 이란 안드로이드 공식문서에 따르면 ViewModel 클래스란 LifeCycle를 고려하여 UI 관련 데이터를 저장하고 관리하도록 설계되었습니다. 즉 Activity와 Fragment 같이 LifeCycle을 가지고 있는 View의 Model(데이터)를 저장하고 관리한다. ViewModel 의 필요성 그렇다면 왜 Activity와 Fragment의 Model(데이터)를 ViewModel로 관리할까? 간단한 예시로 필요성을 설명해 보겠습니다. Android 프레임워크는 Activity와 Fragment 같은 UI 컨트롤러의 수명 주기를 관리합니다. 프레임워크는 특정 사용자 작업이나 완전히 통제할 수 없는 기기 이벤트에 대한 응답으로 UI 컨트롤러를 제거하거나 다시 만들도록 결정할 수 있습니..
* DataBinding 과 Fragment 사용법을 모른다면 Fragment DataBinding 보고 오는걸 추천합니다. * 여기에서는 자세한 사용법은 생략합니다. DataBinding을 Fragment에서 사용하기. DataBinding - 라이브러리 추가 android { buildFeatures { dataBinding true } } Fragment - ktx 라이브러리 추가 dependencies { implementation("androidx.fragment:fragment-ktx:1.4.1") } 파일 구조는 이렇습니다. 1. activity_main.xml FrameLayout 하나 들어가있는 Activity입니다. Databinding 을 하기위해 전체코드를 으로 감쌌습니다. 2. f..
DataBinding 이란? DataBinding이란 안드로이드 JetPack 라이브러리 중 하나로 Activity, Fragment의 데이터를 화면에 출력하기 위해 도와주는 AAC(Android Archiecture Component)의 기법입니다. 주로 MVVM 디자인패턴에서 사용합니다. DataBinding 장점 Activity에서 View에 접근하는 보일러 플레이트 코드를 작성하지 않아도 된다. 파일이 더욱 단순화 되어 유지관리가 쉬워진다. 메모리 누수방지, null 위험을 방지할 수 있다. DataBinding 단점 Class파일이 많이 생겨 빌드속도가 느려지고 앱 용량이 증가한다. xml에서 사용할 경우 디버깅이 힘들다. 그래서 FindViewById 만을 대체하기 위해 사용할 경우에는 Dat..