Room Like + StateFlow debouce와 Throttle
·
Android
👩‍💻 오늘의 할 일 오늘은 Room의 검색 기능에서 사용되는 Like, StateFlow에서의 Debounce와 Throttle를 실제 프로젝트에 적용하기 위해 사전 공부를 해보겠습니다. Room과 StateFlow의 새로운 기술이라니 벌써부터 두근두근 잼있을거 같네요! 📖 SQL LIKE SQL Query에서의 Like는 특정 문자가 포함되어 있는지 검색할 때 사용됩니다. Like는 ' % ' 로 표현되는데, 그 위치에 따라 다르게 동작하게 됩니다. 1. 특정 문자로 시작하는 데이터 검색 SELECT * FROM STORE_INFO WHERE STORE_NAME LIKE '%짱구'; 2. 특정 문자로 끝나는 데이터 검색 SELECT * FROM STORE_INFO WHERE STORE_NAME LIK..
[Android] Room Database Migration
·
Android
🎉 개요 Database를 사용하다보면 필연적으로 데이터 베이스 스키마를 변경하는 상황이 발생합니다. Room은 데이터 베이스 스키마가 변경되면 version을 올려줘야 합니다. 이 때, 데이터 베이스를 마이 그레이션 할 수 있는 방법을 소개하겠습니다. 🎉 Migration 1️⃣ Version Up + fallbackToDestructiveMigration( ) 가장 기본적으로 Migraion할 수 있는 방법은 Version을 올리고 fallbackToDestructiveMigration( ) 메소드를 사용하는 것입니다. 하지만 이렇게 할 경우 기존의 데이터가 모두 삭제된다는 치명적인 단점이 있습니다. fallbackToDestructiveMigration( ) 데이터 베이스 스키마가 변경되었을 때 기..
[Kotlin] LiveData 대신 StateFlow 사용하기
·
KOTLIN
👩‍💻 오늘의 할 일 앞선 글에서 소개했듯이 프로젝트에 있던 LiveData들을 StateFlow로 대체하기 위해 공부하고 있습니다. 안드로이드에서는 어떤 이유로 Live Data를 StateFlow로 대체하라고 하는걸까요 ? StateFlow에 대해 알아보겠습니다. [Kotlin] Coroutine Flow 기존 진행하던 프로젝트를 리팩토링 하는 과정에서 two-way Binding을 사용하던 도중 Live Data의 타입을 변경할 수 있는 Transformation.map Operator가 import가 안되는 issue가 발생했습니다. Transformations.map AAC( chanho-study.tistory.com 📕 LiveData LiveData 개요 | Android 개발자 | And..
[Kotlin] Coroutine Flow
·
KOTLIN
🚨Trouble Shooting 기존 진행하던 프로젝트를 리팩토링 하는 과정에서 two-way Binding을 사용하던 도중 Live Data의 타입을 변경할 수 있는 Transformation.map Operator가 import가 안되는 issue가 발생했습니다. Transformations.map AAC( Android Architecture Components) Library Utility Method Live Data를 사용자가 원하는 형태로 변환 원인을 찾던 도중 androidx.navigation Library 2.6 버전부터 LiveData 대신 Kotlin의 StateFlow를 사용하도록 권장하고 있다는 것을 알게 되었습니다. 즉, 버전이 2.6 이상인 경우 Transformations...