Android の Kotlin ファースト アプローチ

Google は、Google I/O 2019 にて Android 開発での Kotlin ファーストを強化すると発表し、その取り組みを続けてきました。Kotlin は、表現力に優れた簡潔なプログラミング言語であり、よくあるコードエラーを減らします。また、既存のアプリに統合するのも簡単です。これから Android アプリを作成するという場合は、Kotlin を採用して、そのトップクラスの機能を活用することをおすすめします。

Google は Kotlin を使用した Android 開発をサポートするため、Kotlin Foundation を共同で設立し、コンパイラのパフォーマンスとビルド速度の改善に継続的に投資しています。Kotlin ファーストに対する Android の取り組みについて詳しくは、Kotlin に対する Android の取り組みをご覧ください。

Kotlin

Android 開発が Kotlin ファーストである理由

Google は、カンファレンスに訪れたデベロッパー、カスタマー アドバイザリー ボード(CAB)、Google Developer Experts(GDE)から得られた直接のフィードバックや、デベロッパーへの調査を通じて得られたフィードバックを見直しました。すでに多くのデベロッパーが Kotlin を利用していますが、Kotlin のサポートをより充実すべきという要望のあることが明らかになりました。Kotlin でのコーディングについてデベロッパーが評価しているのは次の点です。

  • 表現力と簡潔性: 短いコードで複雑なことを表現できます。アイデアを表現しながら、ボイラープレート コードを減らすことができます。Kotlin を使用するプロのデベロッパーの 67% が、Kotlin が生産性を高めていると答えています。
  • コードの安全性: Kotlin には、null ポインタ例外などの一般的なプログラミングの誤りを回避するための言語機能が多数用意されています。Kotlin コードを含む Android アプリは、Kotlin を使用しないアプリよりもクラッシュする可能性が 20% 低くなります。
  • 相互運用性: Kotlin から Java ベースのコードを呼び出すことも、Java ベースのコードから Kotlin を呼び出すこともできます。Kotlin は Java プログラミング言語と 100% 相互運用できるため、プロジェクトで必要なだけ Kotlin を使用できます。
  • 構造化された同時実行: Kotlin のコルーチンにより、非同期のコードをブロックコードと同じくらい簡単に記述できます。コルーチンにより、ネットワーク呼び出しからローカルデータへのアクセスに至るまでのすべてのバックグラウンド タスクの管理が大幅に簡素化されます。

Kotlin ファーストとは

Google では、Jetpack ライブラリ、サンプル、ドキュメント、トレーニング コンテンツなどの新しい Android 開発ツールとコンテンツの作成に際して、Java プログラミング言語からの API の使用もサポートしつつ、Kotlin ユーザーを念頭において設計します。

Java 言語 Kotlin
プラットフォーム SDK のサポート
Android Studio のサポート
lint
ガイド付きドキュメントのサポート
API ドキュメントのサポート
AndroidX のサポート
AndroidX の Kotlin 固有の API(KTX、コルーチンなど) なし
オンライン トレーニング 可能な限り
サンプル 可能な限り
マルチプラットフォーム プロジェクト ×
Jetpack Compose ×
コンパイラ プラグインのサポート × ○ - Kotlin Symbol Processing API は、軽量のコンパイラ プラグインを開発するために Google が作成したものです。

Google も Kotlin を使用しています

Google のエンジニアも Kotlin の言語機能を使用しており、現在 70 を超える Google のアプリが Kotlin で作成されています。Kotlin で作成されたアプリには、Google マップ、Google Home、Google Play、Google ドライブ、メッセージなどがあります。たとえば Google Home チームでは、新機能の開発を Kotlin に移行した結果、コードベースのサイズを 33%、NPE クラッシュの数を 30% 削減することに成功しました。

Android での Kotlin の詳細については、Android での Kotlin の使用に関するよくある質問をご覧ください。