반응형
반응형
안녕하세요 날씨가 많이 더워지고 있네요.. 덥다보니 축 처지게 되는데.. 학습을 게을리 하지말고 하루하루 배우는 시간이 되게 해야겠습니다 오늘은 Android에서 사용되는 StateFlow에 대해 포스팅하려 합니다. StateFlow에 대해 학습하려면, Flow에 대해 먼저 하시면 이해에 도움이 되실 것 같습니다. StateFlow란? StateFlow란 특정 State를 유지, 관찰 Collector에 현재와 새로운 State를 업데이트 현재 State 값은 StateFlow.value로 읽을 수 있습니다. class LatestNewsViewModel( private val newsRepository: NewsRepository ) : ViewModel() { // 다른 클래스의 상태 업데이트를 방지..
안녕하세요 오늘은 이전 글 이어서 Flow에 대해 정리해보려고 합니다. 1. Exception 처리 class LatestNewsViewModel( private val newsRepository: NewsRepository ) : ViewModel() { init { viewModelScope.launch { newsRepository.favoriteLatestNews // 중간 연산자 catch // Exception이 발생하면, catch 처리하고 UI를 업데이트 합니다. .catch { exception -> notifyError(exception) } .collect { favoriteNews -> // 최신 인기 뉴스로 업데이트 } } } } 위의 코드에서 collect, Exception이 ..
안녕하세요 6월 말이 되면서 계속 더워지고 있고, 지쳐서 공부에 소홀해지기 쉬운데, 하루에 단 30분이라도 꾸준히 작성하자는 마인드가 필요해보입니다 오늘은 Android Flow에 관해서, 포스팅을 작성해보려 합니다. (아래는 Flow와 관련은 없지만 이미지를 넣고싶어서 넣어봤습니다) Flow란? 비동기적으로 실행될 수 있는 데이터 스트림 Flow의 주요한 개념은 순차적으로 여러 값을 출력, 단일 값만을 출력하는 suspend function과 비교할 수 있습니다. 예를들어, Flow를 사용하여 DB로부터 실시간 업데이트를 받을 수 있습니다. Flow에 선언된 타입은 출력된 값과 같은 타입입니다. (ex) Flow는 integer 값을 출력하는 Flow 입니다) 순차적인 값을 출력하는 Iterator와 ..
안녕하세요 오늘은 Kotlin의 Coroutine에 대해서 간략하게 포스팅 해보겠습니다. Coroutine 이란? 비동기로 실행되는 코드를 단순화하기 위해 Android에서 사용할 수 있는 동시성 디자인 패턴 메인 스레드를 차단하고 앱이 응답하지 않게 만들 수 있는 작업을 관리하는데 도움이 됩니다 특징 Lightweight : 실행 중인 스레드를 차단하지 않는 Suspend 로 인해 단일 스레드에서 많은 Coroutine 실행 가능 메모리 누수 감소 : 구조화된 동시성 (Structured concurrency)을 사용하여 범위 내에서 작업을 실행 * 구조화된 동시성 새로운 Coroutine은 Coroutine의 수명을 구분하는 특정 CoroutineScope에서만 시작이 가능합니다. 손실되지 않고 누출..
저번 포스팅에서는 Jetpack의 LiveData 사용법과 장점등에 대해서 정리해보았습니다. [Android] Jetpack - LiveData - 1 이번에는 Jetpack 구성 요소 중 LiveData라는 것에 대해 정리해보려고 합니다. LiveData란? LiveData란 데이터를 관찰할 수 있는 Holder 클래스 입니다. 추가적인 특징은, Lifecycle 모듈과 같이 Activity, Fragment, weirddev.tistory.com 이번에는 추가적인 개념들 및 작성법에 대해서 정리해보려고 합니다. LiveData in an app's architecture 이전 포스팅에서 다룬 바와같이, LiveData는 Activity, Fragment와 같은 엔티티의 수명주기에 따라서 인식을 합니다..