34
もう一度 Kotlin の話をしよう 2015.1.31 #ndsmeetup4 中川幸哉 a.k.a なかざん

もう一度Kotlinの話をしよう #ndsmeetup4

Embed Size (px)

Citation preview

Page 1: もう一度Kotlinの話をしよう #ndsmeetup4

もう一度Kotlinの話をしよう

2015.1.31 #ndsmeetup4 中川幸哉 a.k.a なかざん

Page 2: もう一度Kotlinの話をしよう #ndsmeetup4

自己紹介中川幸哉 a.k.a なかざん/@Nkzn

最新技術ミーハー勢

Androidアプリエンジニア

Androidインフラエンジニア?

Gradle環境作りとか自動テスト環境の模索とか継続的インテグレーション&デリバリーとか

ウォーターセル社で農業者向けアプリ「アグリノート」作ってます

Page 3: もう一度Kotlinの話をしよう #ndsmeetup4

最近の活動Android技術者サークルTechBoosterの冬コミ本に寄稿しました

著者集合絵の俺かわいい

Page 4: もう一度Kotlinの話をしよう #ndsmeetup4

Agenda

もう一度Kotlinの話をしよう

KotlinがAndroiderから注目を浴びているワケ

Using Project Kotlin for Android

既存ソリューションとの相性

Page 5: もう一度Kotlinの話をしよう #ndsmeetup4

もう一度 Kotlinの話をしよう

Since March 2014

Page 6: もう一度Kotlinの話をしよう #ndsmeetup4

2014年3月15日 第36回長岡開発者勉強会

Page 7: もう一度Kotlinの話をしよう #ndsmeetup4

http://www.slideshare.net/Nkzn/nds36-kotlin-cute

Page 8: もう一度Kotlinの話をしよう #ndsmeetup4

その後

4月:TypeScriptたのしい(^q^)

5月:Android Annotations便利(^q^)

8月:Scalaたのしい(^q^)

12月:Groovy楽し・・・くない(́・ω・`)

1月:Swiftたのしい(^q^)

Page 9: もう一度Kotlinの話をしよう #ndsmeetup4

当時の言い訳

IntelliJ IDEA / Android Studio向けのプラグイン整備などが未成熟でつらみ

導入済みだったAnnotations Processingライブラリ、Android Annotationsとの相性が悪い

Page 10: もう一度Kotlinの話をしよう #ndsmeetup4

最近

Functional Reactive Programming流行ってきてるなあ

試してみたい

RxJavaとやらを使えばJava界隈でも?つまりAndroidでも試せる?

あっ、関数リテラルがある言語じゃないとあんまり意味なさそう

Androidでの動作が安定していて、関数リテラルがあるAltJava…?

アッ、コトリン=サン? (←ここまでが1月半ば)

Page 11: もう一度Kotlinの話をしよう #ndsmeetup4

いつの間にか公式ドキュメントがConfluenceベースじゃなくなってた

http://kotlinlang.org/

Page 12: もう一度Kotlinの話をしよう #ndsmeetup4

KotlinがAndroiderから注目を浴びたワケhttp://topsy.com/analytics

Page 13: もう一度Kotlinの話をしよう #ndsmeetup4

1月27日、Android界に激震走る

Page 14: もう一度Kotlinの話をしよう #ndsmeetup4

https://docs.google.com/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8/edit

Page 15: もう一度Kotlinの話をしよう #ndsmeetup4

Androidライブラリ開発者の雄、Jake Wharton

氏が、突如Kotlin推し報告書をGoogle Docsにて公開

Square社内での布教用に作ったものを公開してくれたらしい

JW神マジミスターアンドロイド

Page 16: もう一度Kotlinの話をしよう #ndsmeetup4

余談:JW神の功績

https://github.com/JakeWharton

Page 17: もう一度Kotlinの話をしよう #ndsmeetup4

ちらっと見てみましょう

Page 18: もう一度Kotlinの話をしよう #ndsmeetup4

–Jake Wharton

“Java 10 will push Optional onto the stack, but we'll all be dead before Android sees that.”

Page 19: もう一度Kotlinの話をしよう #ndsmeetup4

笑うところです(白目)

Page 20: もう一度Kotlinの話をしよう #ndsmeetup4

既存ソリューションとの相性Android Studio, Robolectric

Page 21: もう一度Kotlinの話をしよう #ndsmeetup4

つらみがあったはず

2014年夏時点ではAndroid+Kotlinはまだ少しつらみが残っていたはず

http://www.slideshare.net/bs_yagi/potato03

Page 22: もう一度Kotlinの話をしよう #ndsmeetup4

検証うまくKotlin認識してくれない時がある→直ってる気がする・・・?

オートコンプリートが重い→確かに重い

なぜかoverrideって書くと怒られる→直ってるっぽい

javaからkotlinが見えない→見えた(後述)

リソースにジャンプ出来ない→できた

対象バージョン:Kotlin M10 + kotlin-gradle-plugin:0.10.195

Page 23: もう一度Kotlinの話をしよう #ndsmeetup4

かなりプラグインが改善されたらしい

Page 24: もう一度Kotlinの話をしよう #ndsmeetup4
Page 25: もう一度Kotlinの話をしよう #ndsmeetup4

Robolectricは大丈夫?

Android SDK組み込みの自動テストツールは、実機やエミュレータなど、Android上で動かすことを前提にしている

Robolectricはandroid.jarランタイムの一部(ハードウェア依存の部分など)をモック化することにより、AndroidのテストをJVM上で行えるようにしたもの→環境がちょっと特殊

Page 26: もう一度Kotlinの話をしよう #ndsmeetup4

中略

Page 27: もう一度Kotlinの話をしよう #ndsmeetup4

Robolectricも使える!

Page 28: もう一度Kotlinの話をしよう #ndsmeetup4

そういえば似てるって言われるよね色んな言語と似てるって言われてたけどさ

Page 29: もう一度Kotlinの話をしよう #ndsmeetup4
Page 30: もう一度Kotlinの話をしよう #ndsmeetup4

http://qiita.com/shoma2da/items/31edef012f224f99323c

Page 31: もう一度Kotlinの話をしよう #ndsmeetup4

http://blog.jetbrains.com/kotlin/2015/01/mce2015-kotlin-session-and-jetbrains-booth/

Page 32: もう一度Kotlinの話をしよう #ndsmeetup4

個人的感想

ちょっと前までGroovy似てる説を信じてた

でも年末年始でGroovyとTypeScriptとSwiftを触る機会があって、ちょっとGroovy違うと思った

型安全教では、優れた型推論はタイプ数を減らしてくれる救世主だけど、動的型付けは悪魔の囁き

Kotlinの型推論が優れているのかはまた別の話だけど

Page 33: もう一度Kotlinの話をしよう #ndsmeetup4

まとめ

ひさびさにKotlin触ってみようと思った

関数型プログラミングやRxJavaをAndroidに持ち込みたいときに安定しているのは嬉しい

春くらいから弊社Androidチームで関数型プログラミング勉強会やろうと思います

Page 34: もう一度Kotlinの話をしよう #ndsmeetup4

宣伝

ウォーターセル株式会社では

Androidエンジニア Railsエンジニア

Webフロントエンド エンジニア

インフラエンジニア

node.jsエンジニア・・・?

を募集しています。

iOSエンジニア