ankoでAndroidアプリ連携を簡単にする方法
前回の続きで、ankoを使ってAndroid開発の記述の簡素化の方法を解説します。
今回は、共有関係についての解説です。
ankoの導入
ankoってなに?については前回のこちらを
ankoをどうやって入れればいいの?っていうのは前回のこちらで解説しています。
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を使うと、本当に記述が簡略化できます。
簡単に出来ることは簡単にして、プログラマが本来行うべき仕事をしっかり出来るようにしましょう!!