본문 바로가기
반응형

Android 개발/Architecture 라이브러리5

LifeCycle과 ViewModel 그리고 LiveData에 대해 정리해 봅니다 오늘은 구글의 Architecture Components에 들어가 있는, LifeCycle과 ViewModel 그리고 LiveData에 대해서 정리해 보겠습니다. 양으로 보면 각각의 컴포넌트에 대해서 하나의 글로 정리하는 것이 좋지만, 서로 연결되어 있는 부분들이 많아서 같이 정리하는 것이 효율적일 것 같네요. 1. LifeCycle과 ViewModel 그리고 LiveData 이 세가지 Component를 사용하는 방법은 다음과 같은데요. View를 담당하는 UI컨트롤러인 Activity나 Fragment를 최대한 가볍게 하고, 뷰의 데이터에 대한 부분은 ViewModel에게 맡기게 한다음, 데이터의 변화값을 관찰하고 변경하는 LifeData에게 맡기기 위함입니다. 이 과정에서 LifeCycle을 고려하.. 2021. 9. 24.
DataBinding에 대해서 알아보자 part2(Glide, EditText) 지난 part1에서 DataBinding에 관한 기초적인 부분들을 정리해 보았는데요. 이번에는 Glide같은 라이브러리를 이용할 수 있도록 Binding Adapter를 사용하는 방법과 EditText에서 String을 입력하면 TextView에서 그 값을 받아서 출력하는 방법을 정리해 보겠습니다. DataBinding에 대한 기초적인 내용은 아래 글을 참조해 주세요. >> DataBinding에 대해서 알아보자 part1 1. Glide와 Binding Adapter xml의 ImageVIew에서 Glide를 사용하기 위해서는 어떻게 해야할까요? DataBinding은 xml에서 바로 bind해서 사용하는 것 인데, Glide를 xml에서 바로 이용할 수는 없습니다. 그 문제를 해결하기 위해서는 Bin.. 2019. 12. 23.
DataBinding에 대해서 알아보자 part1 오늘은 안드로이드 Architecture Component Library중의 하나인 DataBinding에 대해서 알아보도록 하겠습니다. 1. DataBinding DataBinding은 androidX 즉, jetpack에 포함되어 있는 라이브러리인데요. 레이아웃에 있는 View들을 data소스들과 바인딩 해주는 역할을 합니다. XML의 요소들을 단순히 Activity클래스에서 불러다가 쓰는 것이 아니라, XML안에서 expression들을 사용하면서, 자체적인 로직도 가질 수 있게 되는데요. View를 담당하는 컴포넌트들의 코드가 매우 간결해지고, 그에 따라 코드를 관리하거나 읽기가 쉬워집니다. 2. 라이브러리 셋업 특별히 implement할 것은 없구요. 아래와 같이 앱레벨의 build.gradle.. 2019. 12. 23.
LiveData와 Realm 그리고 ViewModel을 같이 이용하는 방법 Android Architecture 라이브러리가 나오고 LiveData의 등장하면서 Realm과 같이 하면, Reactive하면서도 Lifecycle에 대응가능하게 되었는데요. 오늘은 그 방법에 대해서 정리해 보고자 합니다. 1. Realm과 LiveData를 같이 사용하는 방법 이 둘을 같이 사용하기 위해서는, Realm의 결과 값을 listen하는 listener가 붙어있는 Wrapper클래스를 생성해서, listerner에서 그 결과값을 받으면, LiveData타입의 데이터를 set해주면 됩니다. 그럼 먼저 Realm을 initialize하는 것 부터 보도록 하겠습니다. 2. Realm initialize 먼저 아래와 같이 Application클래스에서 Realm을 initialize해 주었습니다.. 2019. 10. 14.
ViewModel에서 Coroutine을 이용하는 방법 #ViewModel Scope Coroutine을 안드로이드에서 사용한다고 했을 때, ViewModel에서 사용하면 매우 효율적인데요. 오늘은 Coroutine을 ViewModel에서 사용하는 방법에 대해서 정리해 보도록 하겠습니다. Coroutine에 관해 기본적인 내용들은 아래 링크를 참조해 주세요. >> Kotlin Coroutine에 대한 정리 1. ViewModel 과 Coroutine Coroutine도 더이상 작업이 필요하지 않거나 할 때, cancel을 적절히 해주어야 하는데요. 이럴 때 ViewModel과 연계되어 있으면, ViewModel의 라이프사이클에 맞추어, 쉽게 Coroutine도 관리할 수 있습니다. 예전 Coroutine에 관한 글에서도 정리하였지만, Coroutine의 관리 단위는 Scope입니다. Sc.. 2019. 10. 10.