Android 앱/Android 개발 팁

anko library 적용

arvigoes 2020. 2. 19. 22:39

about anko

anko 라이브러리는 Android Studio 제작사인 JetBrains 에서 만든 라이브러리 이며

Android 개발을 좀더 쉽고 빠르게 개발할수 있는 라이브러리 집합입니다.

라이브러리 작성은 Kotlin으로 되어 있습니다.

안드로이드 레이아웃을 XML을 통하지 않고 쉽게 만들 수 있게 도와주는 DSL(Domain-Specific Language) 입니다.
Android에서는 View를 디자인 할때 XML Layout을 통해서 표현해야 하는데, XML 을 사용하게 되면 Java코드로 변환하는 작업을 하게 되면서 CPU나 배터리 소모를 하고 코드의 재활용이 불편하다는 단점이 있습니다.

anko 라이브러리를 통해 간단한 코드로 xml 을 대신하여 layout 을 작성 할 수 있습니다.

 

Layout 이외에도 많은 기능들이 포함된 라이브러리 집합이라 많은 곳에 사용 가능 합니다.

 

라이브러리는 크게 4가지로 분류 됩니다.

  • Anko Commons  :  인텐트, 다이얼로그, 로그등을 편리하게 사용하는 라이브러리
  • Anko Loayouts  :  안드로이드 Layout 을 코드로 쉽게 작성하기 위한 라이브러리
  • Anko SQLite  :  SQLite 를 쉽게 사용하게 도와주는 라이브러리
  • Anko Coroutines   :   멀티쓰레드를 위한 코루틴 라이브러리

용도가 많으니 필요한 부분에 적절히 사용하게 될 것 같습니다.

 

 

라이브러리 적용

라이브러리 사용을 위해서는 라이브러리를 빌드에 포함 시켜야 합니다.

라이브러리 포함을 위해서는 gradle 파일을 수정 해 줘야 합니다.

gradle script 중 (build.grandle) 2개가 여기에 관여합니다.

grandle

build.gradle (Project: 프로젝트이름) 파일에 우선 버젼 정보를 추가 하도록 합니다. (현재까지 0.10.5 버젼까지 사용 가능합니다.) ext.anko_version

ext.anko_version

build.gradle(Module:app) 파일에 dependency 를 걸어 주도록 합니다.

dependencies {
    // Anko Commons
    implementation "org.jetbrains.anko:anko-commons:$anko_version"

    // Anko Layouts
    implementation "org.jetbrains.anko:anko-sdk25:$anko_version" // sdk15, sdk19, sdk21, sdk23 are also available
    implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version"

    // Coroutine listeners for Anko Layouts
    implementation "org.jetbrains.anko:anko-sdk25-coroutines:$anko_version"
    implementation "org.jetbrains.anko:anko-appcompat-v7-coroutines:$anko_version"

    // Anko SQLite
    implementation "org.jetbrains.anko:anko-sqlite:$anko_version"
}

app gradle 파일에 기존에 있는 defendencies 에 implementation 만 추가 해 주시면 됩니다.

위 이미지 처럼 내용만 추가 하시면 됩니다.

 

마지막으로 프로젝트 sync 를 하시면 라이브러리가 자동으로 포함 되어 사용할 준비를 하게 됩니다.

sync

이제 anko 라이브러리를 마음 껏 사용 해 보시기 바랍니다.

저는 비동기 라이브러리가 마음에 들던데 아직은 layout editor 없이 Layout을 구성하기는 쉽지가 않네요

 

먼저 Editor 에서 구성한 내용을 기반으로 anko 로 변환하는 작업부터 시도를 해야 할 듯합니다.

이런 부분은 나중에 최적화의 영역이 되겠지요