본문 바로가기

ANDROID/Android 개발 이슈 & 해결21

[Android] LiveData를 1번만 관찰하는 방법 이번에 해결할 이슈는 LiveData의 value를 1번만 observing하는 것이다. 하고자 했던 것은 특정 기준을 달성하면 서버에서 보상에 대한 데이터를 전송해주고, 그 데이터에 대한 다이얼로그를 띄워야 했다. 하지만 LiveData로 보상 데이터를 observing하는 상태에서 해당 데이터를 다이얼로그로 띄우니 다이얼로그를 닫아도(dismiss) 계속해서 다이얼로그가 발생했다😶‍🌫️ LiveData를 사용한 이유? [Android/Jetpack] AAC - LiveData LiveData 식별 가능한(Observable) 데이터 홀더 클래스 LiveData는 Activity, Fragment, Service 등 다른 앱 구성요소의 수명 주기를 고려(Lifecycle-aware)한다. 수명 주기 인.. 2022. 4. 6.
[Android] CalendarView 라이브러리 추천 : kizitonwose/CalendarView 프로젝트에서 캘린더가 필수적인 기능이었기 때문에 여러 캘린더 라이브러리를 들여다보고 뜯고 맛보고 즐기고(?)... 원하는 기능이 라이브러리에 없는 경우, 라이브러리를 뜯어서 해결하다가 그래도 안되는 기능이 있어서 3번 정도 캘린더 라이브러리를 갈아엎고 정착한 라이브러리에 대해 소개하고자 한다! kizitonwose/CalendarView GitHub - kizitonwose/CalendarView: A highly customizable calendar library for Android, powered by RecyclerView. A highly customizable calendar library for Android, powered by RecyclerView. - GitHub - kizitonw.. 2022. 4. 5.
[Android] Do not concatenate text displayed with 'setText' 개발하면서 만났던 Warning 중에 제목과 같은 Warning들이 있었다. 이번에는 코드로 text를 지정할 때 만났던 Warning과 문자열 리소스에 대한 정보를 추가적으로 다뤄볼 예정이다. Do not concatenate text displayed with 'setText' 내가 작성한 코드 binding.tvCalendarMonth.text = "${year}.${df.format(month.yearMonth.monthValue)}" 맞이한 Warning Warning: Do not concatenate text displayed with 'setText'. Use resource string with placeholders. → setText로 보여줄 때, 텍스트 concat 하지 마라. re.. 2022. 3. 27.
[Android] Room Migration : 데이터베이스 테이블 수정하기 개발을 하다보니 Room의 엔티티를 바꾸거나 컬럼 속성을 바꿔야 하는 경우가 발생했다. Sqllite을 기반으로 했기 때문에 쿼리문도 Sqllite로 작성하면 된다. 여기에서 발생한 이슈 사항을 정리하는 포스팅이다! Room Migration 데이터베이스에 테이블이 추가, 삭제되는 등 변경이 발생했을 때 버전만 올린다면 기존의 데이터에 영향을 끼칠 수 있다. Migration을 하기 위해서는 다음과 같은 순서를 따르면 된다. 데이터베이스의 버전 수정하기 (테이블을 추가하거나 삭제한다면 entities도 수정하기) Migration 정보를 담을 Migration 객체 생성하기 데이터베이스에 Migration 객체 추가하기 1. 데이터베이스 버전 수정하기 @Database(entities = [...], v.. 2022. 3. 26.
[Android] 조회, 수정이 가능한 Room Database 디버깅 라이브러리 개발을 하다보니 당연히 Room을 사용하게 되었고, 서버로부터 받은 데이터를 Room에 넣고 삭제하고 테스트를 해보다보니 Room에 잘못된 데이터가 들어가는 경우가 있었다. 그래서 이번에는 조회 뿐만 아니라 데이터 수정이 가능한 디버깅 툴을 알아보고 사용하게 되었다. Room 디버깅 🎁 사용한 Room 디버깅 툴 라이브러리 GitHub - amitshekhariitbhu/Android-Debug-Database: A library for debugging android databases and shared preferences - Make Debug A library for debugging android databases and shared preferences - Make Debugging Great.. 2022. 3. 10.
[Android] LiveData를 유연하게 사용하는 방법 (feat.Transformations) 이번 프로젝트를 하면서 LiveData와 Room을 연결하는 작업을 하던 도중, 사용자가 버튼으로 날짜를 바꾸면 바뀐 날짜에 대한 데이터 리스트를 Room에서 받아오고, 그 결과값을 LiveData에 넣어야 했다. 지금까지 알기로는 LiveData의 값은 직접 변경할 수 없고 MutableLiveData를 통해 변경한 값을 가져올 수 있었는데, 이 경우에는 LiveData의 값을 직접 바꿔야 한다는 문제에 봉착했다. [Android/Jetpack] AAC - LiveData LiveData 식별 가능한(Observable) 데이터 홀더 클래스 LiveData는 Activity, Fragment, Service 등 다른 앱 구성요소의 수명 주기를 고려(Lifecycle-aware)한다. 수명 주기 인식을 .. 2022. 3. 7.
728x90