【Kotlin x Android】Android StudioでKotlin開発環境を作るには

ちょっと昔の話になりますが、2017年5月の Google I/Oにおいて、
プログラミング言語「Kotlin」(コトリン)がAndroidの開発言語として
公式サポートされるという発表がありました。

遅ればせながら、Kotlinでもさわってみようということで、
Android Studio での開発環境を構築した際のメモです。

Kotlinとは?

JetBrains社が開発したプログラミング言語です。
Javaとの互換性があり、同一プロジェクト内で混在させることができます。
JavaとHelloWorldを比較するとこんな感じです。

Java

public class HelloWorld {
	public static void main( String[] args ){
		System.out.println( "Hello, World!" );
	}
}

Kotlin

fun main( args; Array<String> ){
	println( "Hello, World!" )
}

 

Android Studio でのサポート

Android Developersにありました
Get Started with Kotlin on Android | Android Developers

ここによると、プロジェクトを作った際に
「include Kotlin Support」
というチェックがあるとのことですが、手元の環境にない…
よくよく見ると(というか1行目に書いてますが)
Android Studio 3.0 からのサポートとのこと。
3.0は今のところ(2017年8月現在)、プレビューバージョンがダウンロードできます。
Android Studio プレビューを入手する | Android Studio

手順

ということで、Android Studio 2系での構築手順です。

インストール

Android Studio を起動したら右下の「Configure」から「Settings」をクリック

左のリストから「Plugins」を選択し、「Install JetBrains plugin…」をクリック

真ん中付近にある「Kotlin」を選択し、「Install」をクリック

Install完了までしばし待機
終わったら、Android Studioを再起動します
これでインストールは完了

設定

次はプロジェクトごとの設定
とりあえず、プロジェクトを立ち上げます。(いつも通りで結構です)

通常通りプロジェクトを作ると、コードはすべてJavaで作られますので、
Kotlinのコードに変換します。
「Code」→「Convert Java File to Kotlin File」をクリック

.javaのファイルが、.ktのKotlinソースに変換されます。

Kotlinのコンパイル環境を設定します。
「Tool」→「Kotlin」→「Configure Kotlin in Project」をクリック

以上
これでデバッグなり実行なりできるようになります

 

ちなみに

KotlinのMainActivityはこんな感じ

import android.os.Bundle
import android.support.design.widget.FloatingActionButton
import android.support.design.widget.Snackbar
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.Toolbar
import android.view.View
import android.view.Menu
import android.view.MenuItem

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val toolbar = findViewById(R.id.toolbar) as Toolbar
        setSupportActionBar(toolbar)

        val fab = findViewById(R.id.fab) as FloatingActionButton
        fab.setOnClickListener { view ->;
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show()
        }
    }

    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        // Inflate the menu; this adds items to the action bar if it is present.
        menuInflater.inflate(R.menu.menu_main, menu)
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        val id = item.itemId

        if (id == R.id.action_settings) {
            return true
        }

        return super.onOptionsItemSelected(item)
    }
}

個人的に気になってるのは
・プロパティが使える
・Nullable
・layoutとの連携
あたりでしょうか。

Share

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Optionally add an image (JPEG only)