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

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

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

 

すでに Kotlin 言語を使用しているユーザーにとって、何か変更点はありますか?

今後短期間に予定されている大きな変更は、Android Studio 3.0 以上に、完全にテストされた Kotlin のサポートが導入されることです。Google では、これにより、はるかに簡単で安定した開発が可能になると考えています。

 

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

Kotlin は Android Studio 3.0 以上で完全にサポートされます。従来は Kotlin を使用するのに Kotlin プラグインを追加する必要がありましたが、Android Studio の今後のリリースにはすべてこれらのツールが組み込まれます。そのため、追加のステップを必要とせずに、Kotlin ファイルを含めた新しいプロジェクトの作成、Java 言語コードから Kotlin への変換、Kotlin コードのデバッグが行えます。「Kotlin を使ってみる」記事をご覧ください。

 

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

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

 

Kotlin には他にどのような IDE サポート(lint、オートコンプリート、リファクタリングなど)が用意されていますか?

Android Studio 3.0 以降、IDE では Kotlin の完全なツールサポートを提供します。ただし、いくつかの既知の問題と制限があり、現在、修正を行っています。

 

Kotlin の今後は?

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

 

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

Kotlin の優先ライセンスは Apache Software License、バージョン 2.0(「Apache 2.0」)であり、Kotlin ソフトウェアの大半は Apache 2.0 のライセンスを使用します。このプロジェクトでは優先ライセンスができる限り使用されますが、例外的にケースバイケースで処理されることもあります。たとえば、Kotlin で使用される特定のサードパーティの依存関係で、別のオープンソース ライセンスが使用されていても、Apache 2 ライセンスとの互換性を持つ場合もあります。

 

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 を追加するにはどうすればよいですか?

Android Studio で新しいプロジェクトを作成する際に、[Include Kotlin support] チェックボックスをオンにするだけです。詳細については、Kotlin を使ってみる際の説明をご確認ください。

 

既存のプロジェクトに 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 を使ってみる際の説明をご確認ください。

 

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

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

 

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

Kotlin のコルーチンは現在動作しますが、現時点では試験運用機能です。そのため、Kotlin または Android による今後の対応は保証されていません。

 

APK のサイズやメソッド数に Kotlin が与える影響は?

Kotlin ランタイムにより、デバッグ APK に約 7,000 のメソッドと約 1 MB が追加されます。プロジェクト内の他のライブラリ(Guava や RxJava など)を Kotlin で置き換えた場合、実際の影響は小さくなる可能性があります。このサイズはまた、他のアプリコードやライブラリと同様、Proguard でリリース用 APK を最適化すると小さくなります。

 

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

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

 

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

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

 

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

Kotlin の学習用リソースをご確認ください。