DataBinding 8

[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] 안드로이드 DataBinding 완벽 가이드: 개념, 도입 배경, 자동화의 원리와 ViewBinding과의 차이

안드로이드 DataBinding 완벽 가이드안드로이드 개발에서는 XML 레이아웃과 코드 간의 상호작용이 필수적이다. DataBinding은 이러한 상호작용을 자동화하여 UI 업데이트를 쉽게 관리할 수 있도록 도와준다. 이 글에서는 DataBinding의 개념과 도입 배경, ViewBinding과의 차이점, 그리고 내부 동작 방식과 자동화 원리를 다루어 안드로이드 UI 개발을 한층 더 쉽게 만들어주는 방법을 살펴보겠다.여기에서는 DataBinding의 전체적 개념 및 내부 원리를 설명하는 데 중점을 두며, 사용법 예제는 이전 포스팅을 참고하시기 바란다.https://yujinius45.tistory.com/128 [Android] DataBinding 동작 원리 파헤치기안드로이드 DataBinding 동작..

Android 2024.11.17

[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

[Android] DataBinding 동작 원리 파헤치기

안드로이드 DataBinding 동작 원리 파헤치기 목차DataBinding이란 무엇인가?DataBinding 설정하기DataBinding 컴파일 과정 이해DataBinding 실습: 단방향 바인딩DataBinding 실습: 양방향 바인딩DataBinding과 ViewBinding의 구조 및 차이BindingAdapter로 기능 확장하기Observable과 LiveData를 통한 자동 UI 업데이트마무리 및 결론1. DataBinding이란 무엇인가?DataBinding은 Android Jetpack 라이브러리 중 하나로, XML 레이아웃과 데이터 객체를 연결하여 UI와 데이터 간의 결합을 자동으로 관리한다. DataBinding을 사용하면 데이터 변경 시 UI가 자동으로 업데이트되며, 양방향 바인딩을 ..

Android 2024.11.10

[Android] 안드로이드 ViewBinding 완벽 가이드: 개념, 도입 배경, 사용법, 동작 방식 및 컴파일 위치

안드로이드 ViewBinding 완벽 가이드: 개념, 도입 배경, 사용법, 동작 방식 및 컴파일 위치안드로이드 개발에서 findViewById 메서드는 XML 레이아웃에 정의된 뷰를 코드에서 참조하기 위해 오랫동안 사용되어 왔다. 그러나 findViewById는 런타임 뷰 트리를 탐색하여 원하는 뷰를 찾는 구조로 작동하기 때문에 성능에 영향을 미치고, 타입 안전성 및 null 안전성 문제를 유발할 수 있다.이에 대한 자세한 내용은 아래의 글을 참고하자.https://yujinius45.tistory.com/124 [Android] 안드로이드에서 findViewById 완벽 가이드: 사용법, 동적 뷰 조작, 문제점과 해결 방법안드로이드에서 findViewById 완벽 가이드: 사용법, 동적 뷰 조작, 문제..

Android 2024.11.09

[Android] 안드로이드에서 findViewById 완벽 가이드: 사용법, 동적 뷰 조작, 문제점과 해결 방법

안드로이드에서 findViewById 완벽 가이드: 사용법, 동적 뷰 조작, 문제점과 해결 방법아래와 같은 목차대로 진행해보고자 한다. 목차findViewById 개요findViewById 기본 사용법: MainActivity에서 뷰에 접근하기동적 뷰 삽입 및 삭제 실습Layout Inspector로 뷰 트리 확인하기findViewById의 문제점과 해결 방안XML의 ID 일치 문제Null 안전성 문제Null 안전성 문제 및 실습NullPointerException 확인 실습Null 안전성을 위한 세이프 콜 연산자 사용명시적인 Null 체크를 통한 문제 해결findViewById 의 런타임 뷰 트리 탐색 문제 ClassCastException 발생 문제1. findViewById 개요안드로이드 개발에서 ..

Android 2024.11.09