Android での Kotlin の使用に関するよくある質問

Kotlin が Android の第一級のサポート言語になったのはなぜですか?

Kotlin は、簡潔で表現力に富み、タイプセーフおよび null セーフとして設計された Android 対応言語です。Java プログラミング言語とシームレスに連携するため、Java に慣れたデベロッパーは Java を引き続き使用しながら、Kotlin コードを段階的に追加して Kotlin ライブラリを活用することが容易にできます。また、すでに多くの Android デベロッパーが、Kotlin を使用すると迅速かつ楽しく開発できるようになると認めており、Google では、これらの Kotlin ユーザーをさらにサポートしたいと考えています。詳しくは、Android の Kotlin ファースト アプローチをご覧ください。

Android Studio で Kotlin を使用するにはどうすればよいですか?

Kotlin は Android Studio で完全にサポートされています。Android Studio のすべてのリリースで、Kotlin ファイルを含めた新しいプロジェクトの作成、Java 言語コードから Kotlin への変換、Kotlin コードのデバッグを行えます。

Android Studio で Kotlin をデバッグするにはどうすればよいですか?

Kotlin のデバッグは、Java コードのデバッグと同様に操作します。異なる操作をする必要はありません。

Kotlin には他にどのような IDE サポート(lint、

オートコンプリート、リファクタリングなど)が用意されていますか?

Android Studio は Kotlin の完全なツールサポートを提供しています。

Kotlin の今後は?

Google が Kotlin を採用する理由の 1 つは、JetBrains によって精巧に設計された言語であるためです。Google は JetBrains と提携して、言語からフレームワーク、ツールに至るまで、デベロッパーの全体的な利便性を保証します。また、Kotlin 言語を非営利組織に移譲するために互いに協力しています。

Kotlin はオープンソースですか?

Kotlin の優先ライセンスは Apache Software License、バージョン 2.0(「Apache 2.0」)であり、Kotlin ソフトウェアの大半はそのライセンスを使用します。AOSP では、可能な限りこの優先ライセンスを採用するようにしていますが、個々の状況によって別のライセンスが採用される場合もあります。たとえば、Kotlin で使用される特定のサードパーティの依存関係で、別のオープンソース ライセンスが使用されていながら、Apache 2.0 ライセンスとの互換性を持つ場合もあります。

Java 言語と Kotlin 言語のどちらかを選択するには、どうすればよいですか?

どちらかを選択する必要はありません。両方使用することもできます。Kotlin が適しているかどうかを確認するには、Android で試してみるか、こちらの Kotlin のリソースを参照して詳細を確認することができます。

Android や他の Java 言語ライブラリ API を Kotlin から呼び出せますか?

はい。Kotlin には Java 言語との相互運用性があります。この設計により、Kotlin コードは Java 言語メソッドを透過的に呼び出すことができます。さらに、Kotlin のみの機能を Java コードに簡単に公開できるようにするアノテーションも使用できます。Kotlin 固有のセマンティクスを使用しない Kotlin ファイルは、アノテーションなしで Java コードから直接参照できます。これらの機能を活用して、Java コードと Kotlin コードをきめ細かく混在させることができます。詳細については、Kotlin の相互運用性ドキュメントをご確認ください。

Android API 用の Kotlin リファレンス ドキュメントはありますか?

はい、あります。Google では、すべての Android API ドキュメントで Kotlin の言語特有の参考資料を提供できるように準備を進めています。参照可能な Kotlin リファレンスへのリンクは、Android リファレンスの概要ページにあります。Kotlin 言語の主要なリファレンスをお探しの場合は、Kotlin 標準ライブラリ リファレンスをご覧ください。

同じプロジェクトで Java ファイルと Kotlin ファイルの両方を使用できますか?

はい。Kotlin の Java との相互運用性を活用して、Java コードに Kotlin を自由に混在させることができます。

C++ で Kotlin を使用できますか?

はい、JNI は Kotlin で完全サポートされています。JNI メソッドを外部修飾子でマークしてください。

新しいプロジェクトに Kotlin を追加するにはどうすればよいですか?

Kotlin は、新しいプロジェクトを作成する際に Android Studio で選択されるデフォルトの言語になりました。詳細については、プロジェクトの作成をご覧ください。

既存のプロジェクトに Kotlin を追加するにはどうすればよいですか?

[Project] ウィンドウでモジュールを選択し、[File] > [New] を選択します。Android テンプレートを選択し、[Source language] として [Kotlin] を選択します。詳細については、Kotlin を既存のアプリに追加するをご覧ください。

Java 言語コードを Kotlin に変換するにはどうすればよいですか?

Java ファイルを開き、[Code] > [Convert Java File to Kotlin File] を選択します。または、新しい Kotlin ファイルを作成([File] > [New] > [Kotlin File/Class])してから、Java コードをそのファイルに貼り付けます。プロンプトが表示されたら [Yes] をクリックして、コードを Kotlin に変換します。

Kotlin には並列ドキュメント、サンプル、コードラボ、テンプレートがありますか?

Google では、Java 言語と Kotlin 言語の両方のユーザーにとって、できる限り有益なドキュメントや資料を準備するために取り組んでいます。それまでは、Kotlin の Java 言語との優れた相互運用性と、Android Studio で Java 言語コードを Kotlin に自動的に変換する機能をご活用ください。

Kotlin のコルーチンは Android で動作しますか?async / await はどうですか?

Kotlin コルーチンは、バージョン 1.3 時点の Kotlin で安定しており、Android で想定どおりの動作を行います。Android でのコルーチンの使用に関する詳細については、「Kotlin コルーチンでアプリのパフォーマンスを改善する」をご覧ください。

Kotlin を使用するとパフォーマンスに影響はありますか?

Kotlin はパフォーマンスに直接影響を与えるものではありませんが、Java 言語と同様、使用方法については慎重に検討する必要があります。たとえば、新しいコレクション インスタンス間で繰り返しコピーすると、GC のパフォーマンスに影響を与える可能性があり、null 以外の型を受け入れるメソッドを呼び出すと、null チェックのメソッド呼び出しが追加されます(ただし、ランタイム null チェックは、コンパイラで -Xno-param-assertions を使用して無効にできます)。

Kotlin は Android のどのバージョンをサポートしますか?

すべてのバージョンをサポートしています。Kotlin は JDK 6 と互換性があるため、Kotlin を使用したアプリは古い Android バージョンでも安全に動作します。

Kotlin についてどこで確認できますか?

Kotlin を使い始めるための参考情報をご確認ください。