Web | App/Android

[Kotlin] findViewById 대신 id 값이었지만 이제는 view binding

며용 2020. 12. 5. 22:24

코틀린으로 개발하면서 가장 많이 봤던 글이 findViewByID를 안쓰고 그냥 id 값만으로도 사용할 수 있다! 였다

 

val imageView = itemView.findViewById<ImageView>(R.id.image_view)
imageView.setImageResource(R.mipmap.ic_launcher)

이렇게 불러와서 사용했던 걸

 

image_view.setImageResource(R.mipmap.ic_launcher)

이렇게 바로 사용할 수 있다고

 

 

 

 

그런데 안드로이드 스튜디오 4.1 들어서면서 이 기능을 제공해줬던

plugins {
    id 'kotlin-android-extensions'
}

이 kotilin-android-extensions을 기본으로 제공하지 않고 앞으로는 지원하지 않을 거라고 한다

이유는 여러 문제점이 있었기 때문인데,,

 

 

 

아무튼 그래서 이후부터는 ViewBinding을 권장하고 있다고 한다

developer.android.com/topic/libraries/view-binding?hl=ko

 

뷰 결합  |  Android 개발자  |  Android Developers

뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 모듈에서 사용 설정된 뷰 결합은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성합니다. 바인딩 클래스의

developer.android.com

 

 

 

 


 

그리고 과거의 나는 data binding과 view binding을 같이 썼었다

 

 

이렇게 layout xml에 데이터 바인딩을 해주고 그 값을 @{item.tumbnail} 하는 식으로 넣어주면 된다

 

여렇게 서버에서 받아온 값이 들어올텐데 이 값을 불러다가 recyclerview를 그리는 식으로 짰던 거 같다.

 

 

 


서버 정보들 뺀다고 스켈레톤 코드가 되어버렸지만 그래도 당시에 아등바등 열심히 짰던 코드,,

 

https://github.com/Jeunna/TIL/tree/master/Android/firstApp

 

GitHub - Jeunna/TIL: Today I Learned

Today I Learned. Contribute to Jeunna/TIL development by creating an account on GitHub.

github.com

 

 

 

 


Reference:

thdev.tech/android/2020/10/07/Remove-kotlinx-synthetic/