개요
안드로이드 어플리케이션을 만들면서 Viewbinding과 Databinding이 최근에 많이 적용되는 것을 볼 수 있다. 기존에는 findViewById()를 사용했는데 왜 바뀌었는지 알아보려 한다!
정의
- 연결된 두 데이터 혹은 소스를 일치시키는 기법
- XML에 Data를 부착하는 것
장점
- findViewById()를 더 이상 사용하지 않아도 된다. 기존에는 XML의 모든 View에 대해서 호출을 하기 위해 매번 Layout 파일 트리를 탐색했다면 이제는 그렇지 않아도 된다.
- Data가 바뀌면 자동으로 View를 변경할 수 있다.
Databinding VS Viewbinding
- 이 부분에 대해서 많이 궁금해서 찾아봤는데 결론은 'Viewbinding은 Databinding'에 속한다!
- 기존에는 View와 Model을 엮어주는 역할을 하기 위해서 Databinding을 만들었음.
- 많은 사람들이 Layout의 View를 참조하기 위한 목적으로 사용하기에 Viewbinding을 따로 만들었음.
Viewbinding
- 태그가 필요하지 않고 Annotation도 없기 때문에 Databinding 보다 빠름.
- Null과 Type에 대해 안전하다는 장점이 있음.
- 동적 UI 콘텐츠를 XML에서 사용할 수 없음.
- 양방향 바인딩, Binding Adapter을 할 수 없음.
Databinding
- 태그가 필요하며 viewbinding 보다 느림.
- 동적 UI 콘텐츠를 XML에서 사용할 수 있음.
사용법
android {
buildFeatures {
viewBinding = true
}
}
Viewbinding
Databinding