ViewModel 4

[Android/오르다 다이어리] 레거시 리팩토링 05 - Configuration Change 대응 (ViewModel 적용)

[Android/오르다 다이어리] 레거시 리팩토링 05 - Configuration Change 대응 (ViewModel 적용) 지난 글: https://yujinius45.tistory.com/159 [Android/오르다 다이어리] 레거시 리팩토링 04 - Fragment 마이그레이션[Android/오르다 다이어리] 레거시 리팩토링 04 - Fragment 마이그레이션지난 글: https://yujinius45.tistory.com/158 [Android/오르다 다이어리] 레거시 리팩토링 03 - Navigation Component 적용[Android/오르다 다이어리]yujinius45.tistory.com 지난번에 Activity에서 Fragment로 전환하는 마이그레이션 작업을 진행했다. 이를 ..

[Android] ViewBinding과 DataBinding(+BindingAdapter) 비교 - 글자 수에 따라 텍스트 색상 변경하기

안드로이드 개발에서 ViewBinding과 DataBinding은 UI와 코드의 결합 방식을 개선해 주는 중요한 바인딩 기술이다. 두 방법을 비교하기 위해 사용자가 EditText에 입력한 글자 수에 따라 TextView의 색상이 바뀌도록 구성해 보았다. 이를 통해 ViewBinding과 DataBinding의 차이점과, DataBinding에서 제공하는 BindingAdapter를 활용해보았다. 또한 TextWatcher와 DataBinding의 동작 방식을 비교하면서 어떤 상황에서 어떤 바인딩이 유리한지 알아보았다.코드 및 설명1. ViewBinding을 사용한 구현 (FragmentTopViewBinding)FragmentTopViewBinding에서는 ViewBinding을 사용하여 TextWat..

Android 2024.11.17

[Android] LiveData와 DataBinding의 양방향 바인딩 시 발생하는 오류 해결하기

문제 상황안드로이드 개발에서 LiveData와 DataBinding을 결합해 양방향 바인딩을 구현하려고 할 때 아래와 같은 오류가 발생할 수 있다.The expression 'userViewModelInputText.getValue()' cannot be inverted, so it cannot be used in a two-way bindingDetails: There is no inverse for method getValue, you must add an @InverseMethod annotation to the method to indicate which method should be used when using it in two-way binding expressions이 오류는 EditText..

Android 2024.11.16

[Android] Unresolved reference: Transformations 에러 해결

안드로이드 개발 중 LiveData를 변환하려고 Transformations 클래스를 사용했을 때 "Unresolved reference: Transformations" 오류가 발생하는 상황이 있을 수 있다. 그리고 나는 이 오류를 만나버렸다. 이 오류는 Lifecycle 라이브러리의 업데이트로 인해 Transformations 클래스가 제거되면서 발생한 문제이다. 이번 포스팅에서는 이 오류의 원인과 해결 방법을 설명한다.문제 상황LiveData 데이터를 변환하기 위해 기존에는 Transformations.map을 사용했다. 예를 들어, EditText의 입력 길이가 특정 기준을 초과하는지 실시간으로 검증하는 변환을 작성하려 했다. val isTextLongEnough: LiveData = Transf..

Android 2024.11.16