Android/Anko

Anko - Anko Layouts(1)

Superkill 2017. 11. 22. 18:43
반응형

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.*