Kotlin Android FindViewById없이 사용하기

Kotlin Android Extentions plugin을 사용해서 어떻게 Android 의 Java 를 대체할 수 있는지 살펴보자.

# 개요

Android 개발자라면 자연스럽게 findViewById()를 사용하고 있을것이다.
사실 findViewById는 잠제적으로 버그를 유발할 수 있는 메소드이다. 왜냐하면 앞에 강제 캐스팅을 하는데 타입이 맞지 않으면 null이 반환되고 이를 체크하지 않으면 에러가 발생하기 때문이다.
몇몇 Butter Knife 같은 라이브러리들이 이를 도와주고 있지만 runtime에 의존적인 라이브러리고, 각각의 View에 annotation을 붙여야한다.

Kotlin Android Extentions plugin은 그런 라이브러리들과 같이 간단한 표현으로 binding할 수 있고, 추가적인 코드나 compile-time에 알 수 있다.

# Kotlin Android Extentions plugin 설정

우선 build.gradle 에 다음 코드를 추가한다.

```
apply plugin: 'kotlin-android-extenstions'
```


# 코드


<activity_main.xml>



<MainActivity.kr>


코드를 보면 findViewById가 없다.

그냥 바로 View의 id를 불러다 사용할 수 있다. 또한 타입도 잘 정의가 되어있다.

이러한 것들이 가능하도록 하는게 바로 `import kotlinx.android.synthetic.main.activity_main.*` 이부분인데 .xml 파일을 import하여 사용 가능하도록한다.

댓글

이 블로그의 인기 게시물

IntelliJ로 Swing 개발하기 #1

Android Emulator 키보드 사용 설정

Android layout_marginStart와 layout_marginLeft의 차이