お勉強ダイアログ

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

ankoでAndroidアプリ連携を簡単にする方法

前回の続きで、ankoを使ってAndroid開発の記述の簡素化の方法を解説します。
今回は、共有関係についての解説です。

ankoの導入

ankoってなに?については前回のこちら
ankoをどうやって入れればいいの?っていうのは前回のこちらで解説しています。

SNS

SNSでの共有をankoを使わずにやろうとすると、こんな感じになります。

val number = "999-9999-9999"
val uri = Uri.parse("sms:$number")
var intent = Intent(Intent.ACTION_VIEW)
intent.apply {
    data = uri
    putExtra("sms_body", message)
}
startActivity(intent)

これが、ankoを使うと

sendSMS("999-9999-9999", message)

こうなります。

メール

メールの共有をankoを使わずに行おうとすると、こうなります。

val email = "nobody@example.com"
val subject = "タイトル"
val text = "本文"
val uri = Uri.parse("mailto:")
val intent = Intent(Intent.ACTION_SENDTO)
intent.apply {
    data = uri
    putExtra(Intent.EXTRA_EMAIL, arrayOf(email))
    putExtra(Intent.EXTRA_SUBJECT, subject)
    putExtra(Intent.EXTRA_TEXT, text)
}
if (intent.resolveActivity(packageManager) != null) {
    startActivity(intent)
}

正直、書きたくないw
これがankoを使うことで、

email("nobody@example.com", "タイトル","本文")

となる。

シェア

同じように、シェアをankoを使わずに行おうとすると、

val text = "シェアする時の文言"
val intent = Intent(Intent.ACTION_SEND)
intent.apply {
    type = "text/plain"
    putExtra(Intent.EXTRA_TEXT, text)
}
val chooser = Intent.createChooser(intent, null)
if (intent.resolveActivity(packageManager) != null) {
    startActivity(chooser)
}

これが、ankoを使うと、

share("シェアする時の文言")

ブラウザを開く

最後に、リンク等をブラウザで開く時、ankoを使わないと

val url = "https://google.com"
val intent = Intent(Intent.ACTION_VIEW)
intent.data = Uri.parse(url)
if (intent.resolveActivity(packageManager) != null) {
    startActivity(intent)
}

となるが、ankoを使うことで

browse("https://google.com")

で出来る。

おわりに

ankoを使うと、本当に記述が簡略化できます。
簡単に出来ることは簡単にして、プログラマが本来行うべき仕事をしっかり出来るようにしましょう!!