Room6 [Android] Flow와 StateFlow 사용해보기 LiveData와 Flow LiveData는 안드로이드 컴포넌트의 생명 주기와 결합되어 있어 UI 데이터를 관리하기 편하다는 장점 때문에 자주 사용한다. 하지만 아키텍처의 관점에서 볼 때 LiveData는 비동기 데이터 스트림을 처리하도록 설계되지 않았고, 안드로이드 프레임워크에 의존하기 때문에 도메인 계층과 데이터 계층에서 사용하기에는 적합하지 않다. 반면 Flow의 경우 순수 코틀린 언어로 되어있을 뿐만 아니라 비동기로 계산이 가능한 데이터 스트림이다. 이런 이유로 안드로이드에서는 데이터 계층에서 Flow를 사용한 다음 asLiveData()를 통해 ViewModel에서 LiveData로 변환하는 것을 추천하고 있다. (참고) StateFlow가 등장하면서 위와 같은 작업을 할 필요가 없어졌다. St.. Android/Flow 2024. 3. 26. [Android] warning: Schema export directory is not provided ··· warning: Schema export directory is not provided to the annotation processor so we cannot export the schema. You can either provide `room.schemaLocation` annotation processor argument OR set exportSchema to false. 위 경고 메시지는 Room 라이브러리를 사용해서 데이터베이스 스키마를 생성할 때 exportSchema 설정에 의해 위의 경고가 뜬다. exportSchema는 Boolean 타입으로 데이터베이스 스키마를 폴더로 내보낼지 정할 수 있다. default 값이 true로 되어있는데 폴더 경로를 정해줘야 한다. 경로를 정해주지 않으면.. Android/이슈 처리 2023. 4. 7. [Android] Paging3에서 아이템 삭제하기 + 로딩 처리 [Android] Paging3, 스크롤 시 로딩 화면 추가하기 [Android] Paging3 + Room + Flow 사용하기 [Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room) [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면 ogyong.tistory.com 저번에 했던 스크롤 시 로딩 화면을 추가하는 것에 이어서 Paging3에서 아이템을 삭제하고, 삭제가 처리되는 동안 로딩 화면을 띄우는 것을 해보려고 한다. Room 삭제 쿼리 추가 @Dao interface SampleDao { ... /** * 아이템 삭제 */ @Query("DELETE FROM sample W.. Android/Paging3 2023. 1. 19. [Android] Paging3 + Room + Flow 사용하기 [Android] RecyclerView에서 페이징+삭제 처리하기 #2 (with Room) [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 본 적 있을 것이다. Adapter에서 등록된 list가 마지막에 ogyong.tistory.com 이전에 기기에 저장된 데이터를 RecyclerView와 Room을 사용해서 페이징 작업을 한 적이 있었다. 이번에는 Paging3 라이브러리를 사용해서 기기에 저장된 데이터를 표시해보려고 한다. (삭제 기능은 다음에..) 참고로 Paging3는 Android Paging Basics codelab과 Android Paging Advanced cod.. Android/Paging3 2023. 1. 16. [Android] Android Studio에서 쿼리 실행하기 Android Studio 하단 탭에 있는 App Inspection 또는 상단 탭의 View > Tool Windows > App Inspection을 클릭해서 Database Inspector을 띄운다. Database Inspectore에서 빨간색 박스로 표시해둔 아이콘을 선택하면 New Query 탭이 열리는데 여기에 쿼리를 작성할 수 있다. 주황색 박스로 데이터베이스를 선택하고 쿼리를 작성했다면 Run 버튼을 눌러서 쿼리를 실행하면 된다. 왼쪽의 테이블을 더블클릭하면 해당 테이블의 데이터를 보여준다. 새로고침 버튼을 클릭해서 업데이트된 내용을 확인하면 된다. Android/Room 2023. 1. 9. [Android] RecyclerView에서 페이징+삭제 처리하기 (with Room) #2 [Android] RecyclerView에서 페이징 처리하기 #1 RecyclerView에서 리스트를 스크롤하다가 어느 순간에 로딩 화면이 뜨면서 리스트가 늘어나는 것을 본 적 있을 것이다. Adapter에서 등록된 list가 마지막에 도달했을 때를 감지하여 로딩 화면을 띄우 ogyong.tistory.com 저번에 RecyclerView에서 문자열 배열이 저장된 파일을 이용해 페이징 처리를 해봤는데, 이번에는 실제로 Room에 저장된 데이터의 페이징과 삭제 처리를 해보려고 한다. RecyclerView 페이징 예제 예제에서 Room, ViewModel, LiveData, Coroutine, ViewBinding을 사용한다. 1부터 30까지의 값을 Room을 이용해서 기기에 저장한다. (데이터 저장은 별.. Android/RecyclerView 2023. 1. 9. 이전 1 다음