hilt3 [Android] Flow와 StateFlow 사용해보기 LiveData와 Flow LiveData는 안드로이드 컴포넌트의 생명 주기와 결합되어 있어 UI 데이터를 관리하기 편하다는 장점 때문에 자주 사용한다. 하지만 아키텍처의 관점에서 볼 때 LiveData는 비동기 데이터 스트림을 처리하도록 설계되지 않았고, 안드로이드 프레임워크에 의존하기 때문에 도메인 계층과 데이터 계층에서 사용하기에는 적합하지 않다. 반면 Flow의 경우 순수 코틀린 언어로 되어있을 뿐만 아니라 비동기로 계산이 가능한 데이터 스트림이다. 이런 이유로 안드로이드에서는 데이터 계층에서 Flow를 사용한 다음 asLiveData()를 통해 ViewModel에서 LiveData로 변환하는 것을 추천하고 있다. (참고) StateFlow가 등장하면서 위와 같은 작업을 할 필요가 없어졌다. St.. Android/Flow 2024. 3. 26. [Android] An instance of PagingSource was re-used ··· 기존 프로젝트에서 Hilt를 적용을 위해 코드를 수정하였는데 Paging3 Adapter의 refresh() 호출 시 앱이 죽는 현상이 발생했다. java.lang.IllegalStateException: An instance of PagingSource was re-used when Pager expected to create a new instance. Ensure that the pagingSourceFactory passed to Pager always returns a new instance of PagingSource. 에러의 내용은 Pager가 새로운 인스턴스를 만들 때 PagingSource의 인스턴스를 재사용한다는 것이다. 문제가 되는 코드는 아래와 같았다. Repository @Sing.. Android/이슈 처리 2023. 3. 17. [Android] :app:hiltJavaCompileDebug Hilt를 공부하던 중 다음과 같은 에러가 발생했다. Unsupported metadata version. Check that your Kotlin version is >= 1.0: java.lang.IllegalStateException: Unsupported metadata version. Check that your Kotlin version is >= 1.0 해당 에러를 찾아보니 코틀린과 Hilt의 호환 문제가 있다는 것 같다. 내가 사용하던 버전은 코틀린 1.7.20, Hilt 2.40.1 이였는데, 코틀린 버전을 1.8.0, Hilt 버전을 2.44로 변경했더니 빌드에 성공했다. Android/이슈 처리 2023. 3. 16. 이전 1 다음