LoginSignup
5
5

More than 5 years have passed since last update.

[ことクロ7] 2015年末時点のkotlin1.0beta + AndroidStudio1.5環境構築

Last updated at Posted at 2015-11-24

"Kotlinでスマートフォン・クロスプラットフォーム開発の試行錯誤を記録するメモ"、勝手に略して、"ことクロ"シリーズ その7。

iOS向けのJVMクロスプラットフォーム環境のRoboVMが試してみた時点で不安定で、かつ、クローズドソースになるというがっかりなニュースも入ってきて、Kotlinでクロスプラットフォーム開発に取り組む意欲が下がっていたのだが、新たなiOS向けのJVMクロスプラットフォーム環境Multi-OS Engine(インテル謹製)のお試しを開始したことで、やる気復活!

今回は、AndroidStudioをkotlin向けに2015年11月時点での基本的な設定を行い、hello kotlinするまで。
ゴールはこんな感じ(kotlin入れて、gradle書き換えて...フォントをみやすくして、日本語化する):
goal.PNG

[前提] Android Studioをインストール済(今回の実行環境はwindows 10)
[作業感想] 数ヶ月前のkotlin+AndroidStudio情報は概ねそのまま使える(ハマりどころなし)。

1) AndroidStudioをkotlin向けに設定

こちらに従うだけで、Kotlon1.0-beta向けの設定を問題なく行える。
http://dev.classmethod.jp/smartphone/android-kotlin-introduction-01/

ビルドは、"Ctrl+F9"で

ちょっとだけ、自分向けにわかりやすくしてみたClassでビルドした:

MainActivity.kt
class MainActivity : AppCompatActivity() {

    val msg="ことりんが、actionしてみますこと。"
    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, msg, Snackbar.LENGTH_LONG).setAction("Action", null).show()
        }
    }

    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        menuInflater.inflate(R.menu.menu_main, menu)         // Inflate the 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

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true
        }
        return super.onOptionsItemSelected(item)
    }
}

個人的な注目点は、クリックイベントのKotlin的な記述:

val fab = findViewById(R.id.fab) as FloatingActionButton
        fab.setOnClickListener { view ->
            Snackbar.make(view, msg, Snackbar.LENGTH_LONG).setAction("Action", null).show()
        }
  • FloatingActionButton型へのダウンキャストの書き方が、Swiftっぽい。#注、近時、Swift互換言語でAndroidしてみている
  • OnClickListenerの処理のアロー式でのクロージャ記法(view ->)と、メソッドチェーン記法Snackbar.make(...).show()の組み合わせがしっくりくる。

2) AndroidStudioを使いやすく。

フォントとフォントサイズの変更

AndroidStudioの設定で、ここが唯一ちょっと迷ったところ。こちらに従い、「Save As」を使って、設定開始。

日本語化

以下に従うのみ。ヒントも日本語化してくれる。
http://www.hiskip.com/pg-notes/ide/androidstudio/584.html

3)その他

genymotionのインストール

androidエミュレータを速く実行したい場合に導入。以下などを参考:
http://qiita.com/Sam/items/8d551f575b617fa0be7e
http://androidlover.net/genymotion

注、既にDockert等を使っていてVirtualBoxが入っている場合は、VirtualBoxなし版をインストールすること。

AndroidバージョンとAPIバージョンを見ながら、genymotion仮想マシンを導入するのが基本:
geny.PNG

iOS開発向けに、Multi-OS Engineを導入(釣り)

genymotionのインストール&仮想マシン起動までは、それなりに時間がかかるので、さみしいひとは、こちらに煽られて、KotlinでiOS向け開発を行うためのクロスプラットフォーム環境を整えておこう。

4)genymotionでの実行

Android Studioにgenymotionプラグインを導入:

geny2.PNG

Android Studioの再起動後に、genymotionでの実行ができるようになる。
注意点は、genymotion環境のAPIバージョンと、build.gradleが管理するbuild.gradleのバージョンとの整合性を取る必要がある。
今回のもともとのAPIバージョンは23:

build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.example.ktl.mykotlin"
        minSdkVersion 23
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
}
(以下、略)

先ほど入れたgenymotion仮想マシンのAPIのバージョンは22
この環境で実行したい場合、例えば、以下などを参考にbuild.gradleを書き換えていく。
http://qiita.com/tomoima525/items/870ac52ce3256e785c4c

今回はお試しなのでAPI23が動くGememotion環境のプレビュー版を入れてしまうこととした:
geny3.PNG

実行画面

mykot.PNG
ちゃんと、onClickListenerの処理が走っている。

次回以降

少しちゃんとしたandroidアプリをkotlinで書く。
そして、それにもとづいて、iOSアプリも書いてみる。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5