[Android] ViewBinding

June·2023년 7월 6일
0

ViewBinding

안드로이드 ViewBinding은 안드로이드에서 사용되는 바인딩 기술 중 하나로, XML 레이아웃 파일의 뷰와 액티비티 또는 프래그먼트와의 바인딩을 쉽게 수행할 수 있도록 도와준다. ViewBinding을 사용하면 findViewById() 메서드를 사용하지 않고도 XML 레이아웃 파일에 정의된 뷰에 접근할 수 있다.

ViewBinding을 사용하면 코드의 가독성과 유지보수성이 향상되며, 런타임에 발생할 수 있는 findViewById() 관련 오류을 예방할 수 있다. 또한, 뷰의 ID 변경 시 컴파일 시점에서 오류가 발생하여 문제를 더 쉽게 파악할 수 있다.

  • res/layout 폴더에 있는 xml 파일 하나 당 하나의 클래스가 만들어진다
  • 클래스에는 xml 파일이 가지고 있는 view들을 관리하는 기능이 들어가 있다
  • 개발자가 view를 직접 추출하지 않고 사용할 수 있다
  • 안드로이드 OS가 알아서 view를 추출하여 변수에 담아준다

Gradle 설정

앱 수준의 build.gradle 파일에서 다음 코드를 추가하여 ViewBinding을 활성화한다

viewBinding {
        enabled = true
}

ViewBinding 클래스 생성

생성된 Viewbinding 객체에는 view의 id와 동일한 이름의 변수가 만들어지고 그 변수에는 view 객체가 들어있다

lateinit var activityMainBinding: ActivityMainBinding

ViewBinding 사용

액티비티나 프래그먼트에서 생성된 ViewBinding 클래스를 사용하여 뷰에 접근하고 조작한다. findViewById() 메서드를 사용하지 않고도 뷰를 참조할 수 있다.

 // viewBinding 객체를 가져온다
 // layoutInflater : XML 파일을 통해 객체를 생성하는 도구
 activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
 
 // viewbinding 객체가 관리하는 view 중에 최상위 view를 지정하여 화면에 나타나게한다
 setContentView(activityMainBinding.root)
 
 activityMainBinding.run {
     button.run {
        setOnClickListener {
            activityMainBinding.textView.text = "ViewBInding 사용"
       }
    }
}
 
profile
끝까지 해보자

0개의 댓글