Android

Anko 라이브러리

지 슈 2023. 1. 27. 22:15

Anko

- 안드로이드에서 코드를 작성할 때 복잡한 코드 또는 상용구를 제거하기 위해 JetBrains®에서 특별히 개발한 확장 기능 및 DSL 모음

 

https://github.com/Kotlin/anko 를 참조하여 Anko 라이브러리에 대해 참조할 수 있다.

 

Anko 의 구성은 총 네 가지로, 아래와 같다.

  • Anko Commons: 인텐트, 다이얼로그, 로그 등을 편리하게 사용하는 라이브러리
  • Anko Layouts: 안드로이드 레이아웃을 코드로 쉽게 작성하는 라이브러리
  • Anko SQLite: SQLite를 쉽게 사용하는 라이브러리
  • Anko Coroutions: 코루틴을 쉽게 사용하는 라이브러리

 

Anko 라이브러리 추가하기

1. Anko의 모든 구성 요소를 한 번에 추가하려면 아래와 같은 코드를 사용한다.

dependencies {
    def anko_version = '0.10.8'
    implementation "org.jetbrains.anko:anko:$anko_version"
}

2. 다른 기능을 추가하려면 아래와 같은 코드를 사용한다.

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

    // Anko Layouts
    implementation "org.jetbrains.anko:anko-sdk25:$anko_version" 
    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"
}

 

Anko를 이용하여 Toast와 Alert를 간단하게 작성해보기

 

1. Toast

// default
Toast.makeText(this,"안녕하세요.",Toast.LENGTH_LONG).show() 

// anko      
toast("안녕하세요.")

 

2. Alert

Anko 없이 alert를 작성하는 것은 번거롭다. 

DialogBuilder을 사용하거나 Dialog 클래스를 확장하는 두 가지 방법이 있다.

하지만 Anko 라이브러리를 사용하면 간단하게 alert 코드를 작성할 수 있다.

alert ("Are you sure?"){
  yesButton {toast("Thank you!")}
  noButton {toast("Okay!")}
}.show()

또는

alert {
   yesButton { "Aha!" }
   noButton { "Burrrr!" }
 }.apply {
   title = "Naaa"
   show()
 }

 

그 밖의 더 많은 코드를 간결하고 단순하게 작성할 수 있다.