Closed Wanjuuuuu closed 2 years ago
코루틴 정리
coroutineScope.launch는 해당 스콥에 코루틴을 만들어냄, 해당 scope이 사라지게 되면 작업도 취소됨 (이 작업 취소는 정지했을때, 그리고 취소 확인을 했을때 되기 때문에 길게 작업하는 경우 ensureActive를 이용해 직접 취소 확인을 시켜주는것도 좋음)
suspend는 코루틴에서 실행해야함, withContext를 이용해서 스레드를 변경하고 suspend를 하게 되면 현재 코루틴을 멈추고 모든 변수를 저장함 -> 대신 변경하기 전의 스레드는 block되지 않고 다른 작업을 하고 코루틴만 멈춘채로 기다림
async는 await으로 반환을 받는데 suspend 또는 타 코루틴 안에서만 실행이 가능
ViewModel: 코루틴을 만드는 작업을 주로 함, viewModelScope은 viewLifecycleScope보다 주기가 길게 유지되기 때문에 주로 적합함..
View: 뷰는 직접 코루틴을 트리거 하지 않도록 한다.. 위에서 말한것처럼 scope을 viewModel로 두어야 구성변경에도 작업이 유지될 수 있기 때문
레포지토리(데이터/비즈니스 레이어): suspend 함수를 노출. 데이터 변경사항을 알리는 흐름
livedata vs flow
LiveData
Flow
closed by #8
https://developer.android.com/reference/android/app/Activity
https://developer.android.com/reference/androidx/appcompat/app/AppCompatActivity