anko 란?
앙꼬는 대략적으로 보면 kotlin 으로 짜여진 android 의 xml 을 대체(?) 하기 위한 하나의 DSL 이다.Builder
Kotlin 을 좀 더 보다보니, builder 라는 개념을 이야기한다.groovy 에서 어떻게 정의되는지 잘 모르기 때문에 일단 넘어가자. Kotlin 에서는 이 builder 의 구현을 위해
- extension function
- function literal 문법: {} (중괄호) 를 사용해 함수를 표현
- 마지막 parameter 가 function 일 때 괄호() 를 생략할 수 있는 점
이 이용되었다. 자세한 부분은 아래 page 를 참고하자.
여하튼 그래서 아래처럼 함수를 하나 정의하면
fun html(init: HTML.() -> Unit): HTML { val html = HTML() html.init() return html }이녀석은 아래처럼 사용할 수 있게 된다.
html{ .... }위의 녀석은 실제로는 아래와 같은 모습이다.
html({ ... })
anko 사용법
- onCreate 에서 사용
- setContentView(R.layout.main) 이런 statement 가 필요없다.
- setText("dd") 등을 extension property 로 변경해서 text = "dd" 로 가능
- ...
위와 같이 여러가지 anko 의 사용법들이 자세한 것은 아래 경로를 참고하자.
anko 사용 tip
여하튼 그래서 보기에는 xml 을 대체하는 json 같은 format 으로 보이지만, 실제는 kotlin code 이다. 그러므로 anko 를 사용할 때는 xml 을 사용하듯이 값을 넣는다는 생각보다는 java code 로 view 를 만든다는 생각을 갖는 것이 이해하기 쉬울 듯 하다. 이 java code 를 좀 더 보기 좋은 모습으로 바꾸어 놨다.
댓글 없음:
댓글 쓰기