[0] Kotlin導入の狙い。
背景
Kotlin関係、既に皆さんがいろいろと書いているので、軽く。
- Scalaなどと同様のJVM言語Kotlin。Java代替用途の他、Javascriptにも変換可能。簡潔な記述が可能で、最近、Android開発環境として注目されている。
- RoboVMがLLVM IRを介した、JVMコードのOS X/iOS環境への実用的な変換の道を切り拓く。
- Kotlinに近い立ち位置の、iOSのSwiftもClang経由でLLVM IRを活用(参考)。Kotlin/Swift双方で使える、永続化ライブラリRealmが(SQLite代替として)普及しつつあるため、必要に応じ、iOS開発はSwiftでいくとの決断の敷居も低い。
要するに、Kotlinで、今ちょっと頑張っておくことが、LLVM時代本格化の近い将来にクロスプラットフォームな何かで役に立つという予感がしてるということ... ^^
参考リンク① Android開発を受注したからKotlinをガッツリ使ってみた
参考リンク② 人間でもわかるLLVMバックエンド入門
#ブラウザ向けLLVMのWebAssemblyも熱そうだ。
私的狙い
既存のJVMライブラリ資産を活かしたクロスプラットフォーム開発を行いたい。
Kotlin開発元のJetBrain社のIntelliJベースの3つの環境を適宜試しながら、進めていきたい。
- IntelliJ (EAP15) @本家 => Kotlinの文法マスター、JavaFXの実行等に活用
- Android Studio(1.4) @グーグル製=> IntelliJベースの環境で、android開発。
- RoboVM Studio 1.0 EAP for Mac OS X => OS X/iOS開発
今回は、Android Studio(1.4)を導入
参考 AndroidプロジェクトのKotlin化
[1] Android StudioにKotlinを導入
Android Studio(1.4)をダウンロード後の初回起動画面"Welcome to Android Studio"で、Preferences > Plugins > Browse Repositoryで、以下をインストール後に再起動するだけ。
- Kotlin
- Kotlin Extensions for Android
[2] とりあえず、ハローワールド的なことを実行。
新規Androidプロジェクトを作成。
ターゲット機器として、Android5.0(API21)環境を選ぶ。
適当な雛形を選ぶと、...ビルドツールGradleがAndroidでのビルドに必要なファイルをいろいろダウンロードしてくれる。
JavaコードのKotlinコードへの変換方法
変換対象とするjavaファイルを選び、Ctrl + Shift + A を押してクイックアクションを起動し、以下のようにConvert。
(WindowsのAndroid Studio1.4では、Ctrl + Shift + Alt +Kというショートカットも利用できるのかな)
例題のテキスト等を適当に実行し、エミュレーターで実行してみると...1分ほどでエミュレーターは立ち上がるが、アプリは、FATALで落ちる。
buildscriptの設定
KotlinコードをAndroidアプリとして実行するには、build.gradleファイル内のbuildscriptの設定が必要。
先ほどインストールしたプラグイン”Kotlin Extensions for Android”のバージョンを調べ、dependenciesのclasspathを設定し、apply plugin: 'kotlin'する(下記参考)。そして、実行すると、無事動作っ。
[3] 感想
各所でいろいろ書かれているように、GoogleがJetBrain製IntelliJベースのAndroid Studioを採用した効果で、あまりわかっていなくても、とりあえず、実行まで持っていける(今回はと、インストール後の試行錯誤時間約1時間)。アプリのビルドには分単位の時間がかかった。Windows 10機でのメモリ使用量を調べるとブラウザやペイントなどのアプリがいくつか立ち上がった状態で6GB弱であったこと、参考値として。
次回は、Realmでの永続化に挑戦したい。
[復習] プログラミング言語Kotlin 解説の8.2 Androidアプリ開発
...復習というか、ちゃんと学ぶ意味で、、