お勉強ダイアログ

プログラミングの勉強した内容を自分のために書き残してるだけです

ankoの使い方

Androidアプリ開発で、記述を簡素にできるankoというライブラリがあります。
今回は、そのankoについて書いていきます。
ankoのGitHubgithub.com

ankoとは

ankoは、Kotlinを作っているJetBrain社が開発しているAndroid開発をより簡単に行えるようにするためのライブラリです。
開発がJetBrain社なので、使うことの安心感は多少あると思います。

ankoの導入方法

Project Gradleに以下を追記 (バージョンは、Githubを参照)

buildscript {
    ext.anko_version='0.10.8'
}

app Gradleに以下を追記

dependencies {
    implementation "org.jetbrains.anko:anko-commons:$anko_version"
}

startActivity

Activityを始める時、intentを用意して、データをputして、startActivityを呼び出して、めんどくさいですよね。
そういう時はankoを使いましょう。
ankoを使えば、楽にActivityを始められます。

まずはankoなし

val intent = Intent(this,OtherActivity::class.java)
startActivity(intent)

これが

ankoありだと

startActivity<OtherActivity>()

こうなる。

データを渡すとなると

ankoなしだと

val intent = Intent(this,OtherActivity::class.java)
intent.putExtra("item_name","item")
startActivity(intent)

これが

ankoありだと

startActivity<OtherActivity>("item" to "item_name")

これだけ。

データを渡し、さらに、flagを立てるとなると、

ankoなしだと

val intent = Intent(this,OtherActivity::class.java)
intent.putExtra("item_name","item")
intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP
startActivity(intent)

これが

ankoありだと

startActivity(intentFor<OtherActivity>("item" to "item_name").singleTop())

ここまで簡単になる。

データを複数渡す場合も、「,」で区切ればOK。

Toast

開発をしているとよく使う機能の一つがToastだろう。
しかし、この機能の最大の落とし穴が

.show()

をつけ忘れることだと思う。
(この前あった、モバイルアプリ開発者あるあるLTでもあった)

なんと、ankoを使うと、Toastを簡単に記述できる上に、show()つけ忘れ問題も解決する。

まずはankoなし

Toast.makeText(this,"Text",Toast.LENGTH_SHORT).show()

これが

ankoあり

toast("text")

これだけになる

長い表示時間の場合は

longToast("text")

でOK。

これで、show()をつけ忘れることもなく、contextをいちいち渡す必要もなくなった。

おわりに

ankoとても便利だと思います。
他にもまだまだ便利に使えることもあります。
次回、共有周りのめんどくさい記述をめちゃくちゃ簡単にできる方法をまとめます。