ViewModel이 onSaveInstanceState처럼 configuration change가 일어날 때 데이터를 저장해줌
Question 2
True
Fragment나 Activity의 요소들의 참조를 담으면 안됨 해당 요소들은 configuration change가 일어나면 영향을 받기 때문에 ViewModel에 두면 의미가 없음
Question 3
When the associated UI controller is finished(if it's an activity) or detached (if it's a fragment)
관련된 UI Controller에 따라서 ViewModel이 생성, 파괴가 됨
Question 4
Instantiating a ViewModel object
해당 팩토리 패턴은 ViewModel 객체를 인스턴스화 하기 위해서 사용함
[5.2 Homework]
Question 1
Inside the ViewModel object, change the data type of the data to privateMutableLiveData. use a backing property to expose read-only data of the type LiveData
ViewModel에선 수정하고 쓰기 위해서 MutableLiveData로 쓰지만 캡슐화를 위해 외부에선 LiveData로만 써서 처리함
Question 2
Resumed
LiveData는 생명주기를 인식함, 이 때 STARTED, RESUMED일 때 observers가 데이터를 업데이트함
Question 3
The data in a LiveData object
LiveData 객체의 변화를 관찰해서 생명주기에 맞춰서 observers가 데이터를 업데이트 하게 함
[5.3 Homework]
Question 1
Listener bindings work with all versions of the Android Gradle plugin
string.xml에 있는 formatting을 활용하면서 data-binding을 하기 위해서 위와 같이 할 수 있음
Question 3
When an event such as onClick() occurs
event가 발생했을 때 해당 표현이 바로 적용이 됨, 그래서 별도로 Fragment에서 이벤트 처리 리스너를 쓸 필요가 없음
[Challenge]
NullPoint 에러가 떴었는데 힌트문을 생성하는 Transformation.map은 문제가 되지 않았음, 하지만 코드가 여기저기 섞여 있어서 변수 선언이 힌트문 생성보다 뒤에 있어서 Null을 참조하는 것임, 이런 부분 유의해서 LiveData 및 ViewModel에서 변수 선언과 초기화 작업 먼저 쭉 하고 그 이후 로직 적용하기
[5.4 Homework]
Question 1
ViewModel
ViewModel 내에서 LiveData 객체에 대해서 다른 LiveData 객체로 반환을 하고 데이터를 조작할 때 씀
Question 2
A LiveData object
Transformation.map에서 다른 새로운 LiveData 객체를 반환함
Question 3
A source LiveData and a function to be applied to the LiveData
[5.1 Homework] Question 1
ViewModel
ViewModel
이onSaveInstanceState
처럼 configuration change가 일어날 때 데이터를 저장해줌Question 2
True
ViewModel
에 두면 의미가 없음Question 3
When the associated UI controller is finished(if it's an activity) or detached (if it's a fragment)
Question 4
Instantiating a
ViewModel
objectViewModel
객체를 인스턴스화 하기 위해서 사용함[5.2 Homework] Question 1
Inside the
ViewModel
object, change the data type of the data toprivate
MutableLiveData
. use a backing property to expose read-only data of the typeLiveData
ViewModel
에선 수정하고 쓰기 위해서MutableLiveData
로 쓰지만 캡슐화를 위해 외부에선LiveData
로만 써서 처리함Question 2
Resumed
LiveData
는 생명주기를 인식함, 이 때STARTED
,RESUMED
일 때 observers가 데이터를 업데이트함Question 3
The data in a
LiveData
objectLiveData
객체의 변화를 관찰해서 생명주기에 맞춰서 observers가 데이터를 업데이트 하게 함[5.3 Homework] Question 1
Listener bindings work with all versions of the Android Gradle plugin
Question 2
android:text = "@{@string/generic_name(user.name)}"
Question 3
When an event such as
onClick()
occurs[Challenge] NullPoint 에러가 떴었는데 힌트문을 생성하는
Transformation.map
은 문제가 되지 않았음, 하지만 코드가 여기저기 섞여 있어서 변수 선언이 힌트문 생성보다 뒤에 있어서 Null을 참조하는 것임, 이런 부분 유의해서LiveData
및ViewModel
에서 변수 선언과 초기화 작업 먼저 쭉 하고 그 이후 로직 적용하기[5.4 Homework] Question 1
ViewModel
ViewModel
내에서LiveData
객체에 대해서 다른LiveData
객체로 반환을 하고 데이터를 조작할 때 씀Question 2
A
LiveData
objectTransformation.map
에서 다른 새로운LiveData
객체를 반환함Question 3
A source
LiveData
and a function to be applied to theLiveData
LiveData
소스를 파라미터로 넘겨주고 함수를 사용함, 이때 람다식을 통해서 표현함Question 4
Main thread