ViewBinding 구현방법 정리

dev_suhwan·2022년 10월 20일
0
post-thumbnail

졸업작품을 만들 당시 코드를 구현하다 보니 TextVeiw a = findviewById("R.id.xxx"); 이런식으로 구현하는 것이 너무 비효율적이라고 생각해서 ViewBinding을 찾아보게 되었고 ViewBinding이 개발 공식문서에서도 ViewBinding을 지향하고 있어 구현하는 방법을 보고자 합니다.

1. Dependency설정

ViewBinding을 사용하기 위해서는 app레벨의 Build.gradle에서 설정을 해준다
BuildFeature를 아래와 같이 한줄을 추가하면, ViewBinding을 사용할 수 있습니다.

buildFeatures { viewBinding = true }

2. Activity에서 사용하기

2-1 XML 파일


Project를 가장 처음 만들게 되면 "activity_main.xml" 이라는 파일이 있습니다. 그 파일에서
기본 TextView에 Id를 부여합니다.

2-2 setContentView

ViewBinding을 사용하면 Binding클래스에 접근이 가능한데 위 xml파일이 있다면, CamelCase화된 이름과 뒤에 Binding을 붙여서, ActivityMainBinding이라는 클래스에 접근할 수 있습니다.

이 클래스에 접근해 inflate함수로 binding객체를 얻어오고 이 객체의 root값을 setContentView의 인자로 넘겨주면 된다.

이제 binding으로 해당 Xml에 접근할 수 있게 되었습니다.
다만 모든 요소는 camel case로 접근할 수 있습니다.
접근방식은 방금 id를 "text_test"라고 만들었다고 생각을 해보면
binding에서는 아래 사진과 같이, "binding.textTest"로 접근할 수 있습니다.

3. Fragment에서 Binding하기

이번에는 Fragment에서 Binding을 해볼텐데요.
OnViewCreated에서 binding을 생성해서 사용한다면 아래 그림과 같이 FragmentMain을 xml에 접근을 하고 생성인자를 view로 넘겨주면 끝입니다.

4. 마무리로...

회사에서 자바를 생각했지만 안드로이드 개발자가 되어보는게 어떤가? 라는 하나의 부탁으로 시작된 안드로이드 앱 만들기 였고 지금에서야 지나왔던 순간을 정리하고 있습니다. 맨처음에는 모든 뷰를 findviewById로 불러와서 코드의 길이만 많게는 10~20줄을 작성해서 Activity, Fragment의 코드길이만 늘어났던 기억이 있습니다. ViewBinding로 간편한 코딩이 가능하니 좋을것 같습니다.(변수명을 고민하는 시간이 더 늘었지만요..ㅎㅎ)

profile
자신의 부족함을 고민하는 개발자

0개의 댓글