-

Android で Kotlin を使ってみる

Kotlin は Android Studio 3.0 以降で完全に サポートされているので、 Kotlin ファイルで 新しいプロジェクトを作成したり、 既存のプロジェクトに Kotlin ファイルを追加したり、 Java 言語コードを Kotlin に変換したり することが容易にできます。Kotlin コードに対して、オートコンプリート、 lint チェック、リファクタリング、デバッグなど、Android Studio の既存の すべてのツールを使用できます。

すぐに使い始めるには、Kotlin サンプルを ご覧ください。Kotlin 言語の詳細については、 Kotlin の学習用リソースをご確認ください。

既存のアプリに Kotlin を追加する

Kotlin を確実に使用できるようにスキルを身に付けるには、 段階的なアプローチをおすすめします。

  1. まず、Kotlin でテストを記述することから始めます。テストはコードの回帰を チェックするのに便利で、コードのリファクタリングを行うための 良い練習になります。既存の Java コードを Kotlin に変換する場合に、 テストは特に便利です。テストはパッケージング時にアプリにバンドル されないので、コードベースに安全に Kotlin を追加できます。
  2. Kotlin で新しいコードを記述します。既存の Java コードを Kotlin に変換する 前に、小さな新しい Kotlin コードをアプリに追加してみてください。 小さなクラスまたはトップレベルのヘルパー関数から始めます。Java コード との適切な相互運用性を確保するために、関連するアノテーションを Kotlin コードに必ず追加してください。
  3. 既存のコードを Kotlin に更新します。新しい Kotlin コードの記述に慣れたら、 既存の Java コードを Kotlin に変換します。小さな Java 機能を抽出し、Kotlin クラスとトップレベル関数に変換することを検討してください。

    まず、Java ファイルのコードを Kotlin に変換する Android Studio コード コンバータを使用します。また、クリップボードから貼り付けた Java コードを Kotlin ファイルに変換することもできます。

Android API と Kotlin の例

Kotlin は Java 言語との完全な相互運用性を提供するので、 Android API を呼び出す処理は多くの場合、 対応する Java コードとまったく同じように見えます。ただし、これらのメソッド 呼び出しは Kotlin の構文機能と組み合わせることができるようになっています。

また、Google では、すべての Android API ドキュメントで Kotlin の言語特有の 参考資料を提供できるように準備を進めています。利用可能な Kotlin の参考資料へのリンクは Android の参考資料の概要に掲載されています。

Kotlin での Android API の呼び出しと、Java 言語での同じコードを比較した例を以下にいくつか示します。

アクティビティを宣言する

Kotlin

class MyActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity)
  }
}

Java

public class MyActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);
  }
}

on-click リスナーを作成する

Kotlin

val fab = findViewById(R.id.fab) as FloatingActionButton
fab.setOnClickListener {
  ...
}

Java

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
    ...
  }
});

アイテム クリック リスナーを作成する

Kotlin

private val mOnNavigationItemSelectedListener
    = BottomNavigationView.OnNavigationItemSelectedListener { item ->
  when (item.itemId) {
    R.id.navigation_home -> {
      mTextMessage.setText(R.string.title_home)
      return@OnNavigationItemSelectedListener true
    }
    R.id.navigation_dashboard -> {
      mTextMessage.setText(R.string.title_dashboard)
      return@OnNavigationItemSelectedListener true
    }
 }
 false
}

Java

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
    = new BottomNavigationView.OnNavigationItemSelectedListener() {
  @Override
  public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()) {
      case R.id.navigation_home:
        mTextMessage.setText(R.string.title_home);
        return true;
      case R.id.navigation_dashboard:
        mTextMessage.setText(R.string.title_dashboard);
        return true;
    }
    return false;
  }
};

おすすめの方法

Kotlin を学習する際には、次のガイドラインを参考にしてください。

  • コードの行数を最小限に抑えることよりも、読みやすさを優先します。Kotlin 構文を過度に使用しないようにしてください。
  • チームに最適なコーディング規則とイディオムを確立することをおすすめします。KotlinAndroid Kotlin のスタイルガイドには、 Kotlin コードの書式設定に関する 優れたアドバイスが記載されています。