Anko는 다음 4가지 부분으로 구성되어 있다.
1. Anko Commoms : intent와 dialog, logging 등을 위한 경량 라이브러리
2. Anko Layouts : 동적인 안드로이드 layout을 빠르고 type-safe하게 작성할 수 있다
3. Anko SQLite : 안드로이드 SQLite 핸들링에 쓰이는듯
4. Anko Coroutines : kotlinx.corutines libray 기반 유틸리티
안드로이드를 만지면서 레이아웃을 만들기 위해 xml 파일을 만질 수 밖에 없었는데
하나의 엘리먼트에 무더기로 속성이 달려있는것도 보기가 싫었고
( 마치 css를 사용하지 않고 html 태그안에 속성을 때려박은 모습 )
만들어야 할 엘리먼트들의 개수가 많아지면서 이건 좀 아니다 싶던 와중에
Anko를 알게되어 2번에 해당하는 Anko Layouts을 살펴보기로 했다.
역시나 Anko Layout Wiki에서 제시하는 XML Layout의 문제점들. 다음과 같다.
- not typesafe
- not null-safe
- 같은 코드의 반복
- 안드로이드 device에서 xml 파싱이 소모하는 cpu time과 battery
- no code reuse
일단 세팅을 해보자
build.gradle 파일에서 buildscript 안쪽에 anko 버전을 명시해주고
buildscript {
ext.kotlin_version = '1.1.51'
ext.anko_version='0.10.2'
repositories {
google()
jcenter()
}
dependencies {... 이하생략
setting.gradle 파일에서 dependencies에 다음을 추가해준다
compile "org.jetbrains.anko:anko:$anko_version"
Anko의 Layout만 사용한다면 위 코드 대신 아래코드로 해주면 된다.
compile "org.jetbrains.anko:anko-sdk25:$anko_version" // sdk15, sdk19, sdk21, sdk23 are also available
compile "org.jetbrains.anko:anko-appcompat-v7:$anko_version"
그리고 나서 클래스파일에서 아래와 같이 임포트해주면 세팅 완료!
import org.jetbrains.anko.*