728x90
반응형
Transforming LiveData
- LiveData에 transformation을 하고 싶다면 Transformations 클래스의 helper 메소드들을 사용한다.
- Transformations.map 메소드는 LiveData에 데이터를 변경하고 다른 LiveData 객체를 리턴해준다.
Displaying the result of a transformation in a TextView
- 원본 데이터가 ViewModel의 LiveData로 정의되어 있는지 확인한다.
- 변수를 정의한다. 어떤 변수가 있다면 Transformations.map 메소드로 transformation을 수행하고 그 값을 변수에 리턴해준다.
val newResult = Transformations.map(someLiveData) { input ->
// Do some transformation on the input live data
// and return the new value
}
- 레이아웃 파일이 ViewModel에 대한 <data> 변수를 선언하고 있는지 확인한다.
<data>
<variable
name="MyViewModel"
type="com.example.android.something.MyViewModel" />
</data>
- 레이아웃 파일에 텍스트뷰의 텍스트 속성을 ViewModel.newResult(위에서 예시 코드로 나온)의 바인딩 변수로 설정한다.
android:text="@{SomeViewModel.newResult}"
Formatting Dates
- DateUtils.formatElapsedTime() millisecond 단위를 long 타입으로 가지고, 숫자를 "MM:SS" 문자열 형식으로 지정한다.
드디어 MVVM 패턴 구현에 필요한 가장 핵심이라 생각했던 LiveData, ViewModel이 포함된
Android Kotlin Fundamentals 5장이 끝이 났다.
사실 5장 이전에도 사용해보지 않은 Jetpack 라이브러리들이 있어서 이전 과정들도 봐야하나 고민 중이다.
그리고 현재 내가 공부한 Codelab은 더 이상 유지보수되지 않는다고한다.
Jetpack Compose 관련 Codelab으로 공부하는 것을 추천하고 있다.
구글에서 Jetpack Compose에 힘을 실어주는 듯하다.
(사실 공부해보고 싶긴한데 이거 공부해서 회사에서 적용할 수 있을까? 라는 의문이 크다.)
내가 지금까지 연재한(?) Codelab으로 알아보기 시리즈의 5장 원본을 보고 싶은 사람들은 아래 링크를 걸어두도록 하겠다.
728x90
반응형
'Android' 카테고리의 다른 글
Codelab으로 Room 알아보기 - 1. Download and inspect the starter app (0) | 2023.06.13 |
---|---|
Android Notification channel 설정이 적용안되는 경우 (0) | 2023.06.09 |
Codelab으로 LiveData transform해보기 - 2. Add transformation for the LiveData (0) | 2023.05.20 |
Codelab으로 LiveData transform해보기 - 1. Add a Timer (0) | 2023.05.19 |
Codelab으로 DataBinding 알아보기 - 4. 정리(完) (1) | 2023.05.17 |