もやし日誌

日記のようなもの

KotlinでAndroidアプリをつくってみた話

お久しぶりです、もやしです。
最近流行り(?)の言語、KotlinをIkaStageWidgetに採用してみたのでメモ程度に残したいと思います。

Kotlinって何ぞ?

簡単に言うとJVM(あるいはDalvikVM,ART)上で動く言語です。Scalaとか知っているのであればそれを想像してもらえるとわかりやすいと思います。
ちなみにJVM上で動くものなので既存のJavaライブラリも全て使えます。
開発環境ですが公式ではIntelliJ IDEAがサポートされていて、何も導入しなくても使えます。IntelliJ IDEAの開発元がKotlin開発してるので当たり前っちゃ当たり前ですねw

控えめに言って最高なことりん

hogebutton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //do something here
    }
});

AndroidアプリをJavaで開発したことがあるなら誰もが一度は見るコレ、まあ長ったらしいですよね。
いや、一応Javaできれいに書く方法は色々ありますがどれもちょっとメンドイです。
Kotlinだとこうなります

hogebutton.setOnClickListener {
    //do something here
}

最高かよ。Kotlinマジ天使。ちゅんちゅんちゅんちゅん(ry

Javaソースと混ぜてもおk

既存のプロジェクトに一部分だけ導入する、みたいなことも可能です。
Java側からKotlinのコードを呼び出す(逆も可)ことも普通にJavaソースを扱うかのように出来ます。

たとえばNULL安全とか?

例えば

var hoge : String = "hogehoge"
hoge = null

みたいなことをしようとするとコンパイルエラーになります。Kotlinで変数にnullを代入できるようにするには

var hoge : String? = null

のような感じに書く必要があります。またNull許容型に対しメンバ関数などを参照する際には

hogehoge?.dosomething()

みたいな書き方をしなければなりません。これがsafe callです。safe callでは変数がnullであれば上記ソースのdosomething()にあたる部分は実行されず、無視されます。
ちなみにぬるぽ大好きおじさんはこんな書き方も出来ます

hogehoge!!.dosomething()

この場合はhogehogeがnullならぬるぽが起こります。ただメンバ変数を参照したいときはこの方がすっきりするかもしれないです。
他にもいろいろJavaより便利だったりする機能があるので、ちらっと公式サイトの方見てみてください。

Kotlinはランタイムがコンパクトでいいぞ

全部合わせて1MBに収まるぐらいのサイズです。最近はAndroid端末の性能も上がってきてるのでアプリのサイズを気にする人は減ってきてる気がするので、まあどうでもいいと言えばどうでもいい話ですがコンパクトなのは良いことです。

ことりんはいいぞ

まあ、まだ色々紹介したいものがあるのですが紹介しきれないので紹介はこのぐらいにしたいとおもいます。
ではまた~
play.google.com

ruby-gtk2のCocoaへの移植に挑戦してみる

俺にはruby-gtk2をCocoaに移植してX11に頼らないでmikutterを動かすという夢があった。

それがもしかしたら叶うかもしれない。という訳で只今コンパイル中ですがいろいろがんばってみます。

続きを読む