ANDROID
[Kotlin] Anko 라이브러리 사용하기
keyman4949
2020. 8. 4. 17:51
코틀린 소스에 있어서 가장 많은 시너지 효과를 볼수 있었던것은 jetbrains의 Anko라이브러리였습니다.
코틀린 + Anko를 사용하게됨으로써 소스를 매우 많이 단축 시킬 수 있었습니다.
사용법과 예제를 통해 보겠습니다.
1. Anko라이브러리 사용 등록
build.gradle :project
buildscript{
...
ext.anko_version = '0.10.8'
...
}
buid.gradle :app
dependencies {
...
implementation "org.jetbrains.anko:anko:$anko_version"
...
}
- Anko Commons : 인텐트, 다이얼로그, 로그 등을 편리하게 사용하는 라이브러리
- Anko Layouts : 안드로이드 레이아웃을 코드로 쉽게 작성하는 라이브러리
- Anko SQLite : SQLite를 쉽게 사용하는 라이브러리
- Anko Coroutines : 코루틴을 쉽게 사용하는 라이브러리
Anko 라이브러리 깃허브 https://github.com/Kotlin/anko
2. Anko Commons 사용법
Intent
val intent = Intent(this, SomeOtherActivity::class.java)
intent.putExtra("id", 5)
intent.setFlag(Intent.FLAG_ACTIVITY_SINGLE_TOP)
startActivity(intent)
Anko Intent
startActivity(intentFor<SomeOtherActivity>("id" to 5).singleTop())
Toasts
Toast.makeText(this, "Short Toast Test!", Toast.LENGTH_SHORT).show()
Toast.makeText(this, "Long Toast Test!", Toast.LENGTH_LONG).show()
Anko Toasts
toast("Short Toast Test!")
longToast("Long Toast Test!")
SnackBars
Snackbar.make(View, "Test!", Snackbar.LENGTH_SHORT).show();
Anko SnackBars
view.snackbar("Test!")
Alerts
val builder = AlertDialog.Builder(ContextThemeWrapper(this, R.style.Theme_AppCompat_Light_Dialog))
builder.setTitle("Hi, I'm Roy")
builder.setMessage("Have you tried turning it off and on again?")
builder.setPositiveButton("yes") {dialog, id ->
}
builder.setNegativeButton("no") {dialog, id ->
}
builder.show()
Anko Alerts
alert("Hi, I'm Roy", "Have you tried turning it off and on again?") {
yesButton {}
noButton {}
}.show()
Anko Selectors
val countries = listOf("Russia", "USA", "Japan", "Australia")
selector("Where are you from?", countries, { dialogInterface, i ->
toast("So you're living in ${countries[i]}, right?")
})
Anko Progress dialogs
val dialog = progressDialog(message = "Please wait a bit…", title = "Fetching data")