정리가 필요한 카테고리(추후 정리)/Android, iOS

코틀린(Kotlin)을 이용하면 findViewById()를 사용할 필요가 없다

TwinParadox 2018. 7. 25. 23:36
728x90

코틀린에서는 더 이상 findViewById()를 사용하지 않아도 된다.

정확히는 Kotlin Android Extension만 적용시키면, 레이아웃을 import 시키는 것만으로도 XML에서 정의내린 위젯들을 Id로 읽어들여 하나하나 변수로 만들어줄 필요가 없어졌다.


textviewID라는 ID를 가지는 요소를 XML에서 정의했다고 치자.

자바에서는 말할 것도 없이 findViewById()를 사용하는 방법부터 써먹을 것이고, 코틀린에서도 전통적인 자바의 방식을 사용하는 사람들이 많을 것이다.



TextView textViewID = findViewById(R.id.ui_text_hello) as TextView
textViewID.text = "기존의 방식"

이 방식이 아예 틀린 방식이거나 구 시대의 잔재라서 문제를 일으키는 부분이라면, 사용하지 않는 것이 맞지만 그런 것은 아니다. 하지만, 이런 요소들이 하나가 아니라 여러 개라면 이렇게 하나씩 다 읽어들이는 것보다는 바로 사용할 수 있는 방법이 더 생산적일 것이라고 생각한다. 



textViewID.text = "새 방식"

XML에서 지정한 이름과 다르지 않게 그대로 사용할 수 있다는 점이 가장 큰 장점 같다.

물론 잘 짜여진 규칙이 엄격히 적용된 코드라면 이 부분에서 문제가 생길 일이 거의 없겠지만, 그 방식도 변수명이 조금이라도 다르다면 당혹스러운 것은 마찬가지다.


이 새로운 방식을 사용할 때는 기존의 방식과 다른 게 하나 있는데, 레이아웃이 import 된다는 것이다.

import kotlinx.android.synthetic.main.activity_main.*


코틀린으로 앱을 만들 때마다 이것을 매우 유용하게 사용할 것 같다.

728x90
728x90