개복치개발자 강의는 아래의 링크에서 확인할 수 있습니다.
https://www.inflearn.com/course/%EC%B9%9C%EC%A0%88%ED%95%9C-jetpack-1?inst=3b988560
안드로이드 뷰바인딩(ViewBinding)과 데이터바인딩(DataBinding)에 대해서 알아보겠습니다.
일단 뷰바인딩과 데이터바인딩을 쓰지 않으면 어떻게 될까 한번 생각을 해볼게요.
제가 간단하게 버튼을 클릭하면 토스트 메세지가 뜨는 예제를 작성해봤습니다.
흔히 볼 수 있는 findViewById를 사용했습니다.
여기를 보면 아래 부분에서 findViewById라는 것을 통해서 View에 접근했습니다.
이런 것을 보면, 매번 findViewById를 통해서 view에 접근해줘야 해서 불편합니다.
때문에, ViewBinding이라는 것을 사용합니다.
이 것을 어떻게 사용하는지 볼까요?
build.gradle에 viewBinding을 선언해주고
아래와 같이 binding.testButton 의 형태로 바로 접근해줄 수 있습니다.
그러면 viewbinding을 사용했을 때, 장점이 뭐가 있을까요?
우선 가장 눈에 띄는 것은 뷰의 갯수대로 코드를 추가해줘야 할 필요가 없습니다. (findViewById를 사용할 필요가 없습니다)
그리고 Null safety합니다.(Id를 잘못 입력해서 에러가 나는 경우가 없습니다.)
여기까지 Viewbinding에 대해서 알아봤습니다.
그런데 공부하다보면 DataBinding에 대한 것도 나옵니다.
얘는 뭐고 어떻게 사용하고 뷰바인딩과 차이는 무엇인지 밑에서 알아볼까요?
일단 데이터바인딩(databinding)을 어떻게 사용하는지 살펴보면
마찬가지로 build.gradle에 넣어줍니다.
xml 파일을 <layout></layout>으로 감싸줍니다.
이렇게 하면 Databinding을 사용할 수 있습니다.
그렇다면 뷰바인딩과 데이터바인딩의 차이는 무엇일까요?
1. 뷰바인딩의 속도가 더 빠릅니다.
2. 데이터바인딩은 <layout>태그를 사용하여 만든 레이아웃을 처리하고, TAG를 삽입한다.
3. 뷰바인딩은 양방향바인딩을 지원하지 않는다.
이렇게 알아볼 수 있습니다.
2번, 3번을 처음 보시는 분들은 아래 글을 참고해주세요.
https://philosopher-chan.tistory.com/1308
개복치개발자 강의는 아래의 링크에서 확인할 수 있습니다.
https://www.inflearn.com/course/%EC%B9%9C%EC%A0%88%ED%95%9C-jetpack-1?inst=3b988560
- 참조
'Android(Kotlin)' 카테고리의 다른 글
Android ViewModel (0) | 2021.08.18 |
---|---|
데이터바인딩(databinding) 양방향 binding (0) | 2021.08.18 |
Kotlin lambda (0) | 2021.08.16 |
Android Kotlin - let, with, run, apply, also (0) | 2021.08.16 |
Kotlin 제네릭(Generic) (1) | 2021.08.16 |