もう一度kotlinの話をしよう #ndsmeetup4
TRANSCRIPT
![Page 1: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/1.jpg)
もう一度Kotlinの話をしよう
2015.1.31 #ndsmeetup4 中川幸哉 a.k.a なかざん
![Page 2: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/2.jpg)
自己紹介中川幸哉 a.k.a なかざん/@Nkzn
最新技術ミーハー勢
Androidアプリエンジニア
Androidインフラエンジニア?
Gradle環境作りとか自動テスト環境の模索とか継続的インテグレーション&デリバリーとか
ウォーターセル社で農業者向けアプリ「アグリノート」作ってます
![Page 3: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/3.jpg)
最近の活動Android技術者サークルTechBoosterの冬コミ本に寄稿しました
著者集合絵の俺かわいい
![Page 4: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/4.jpg)
Agenda
もう一度Kotlinの話をしよう
KotlinがAndroiderから注目を浴びているワケ
Using Project Kotlin for Android
既存ソリューションとの相性
![Page 5: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/5.jpg)
もう一度 Kotlinの話をしよう
Since March 2014
![Page 6: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/6.jpg)
2014年3月15日 第36回長岡開発者勉強会
![Page 8: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/8.jpg)
その後
4月:TypeScriptたのしい(^q^)
5月:Android Annotations便利(^q^)
8月:Scalaたのしい(^q^)
12月:Groovy楽し・・・くない(́・ω・`)
1月:Swiftたのしい(^q^)
![Page 9: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/9.jpg)
当時の言い訳
IntelliJ IDEA / Android Studio向けのプラグイン整備などが未成熟でつらみ
導入済みだったAnnotations Processingライブラリ、Android Annotationsとの相性が悪い
![Page 10: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/10.jpg)
最近
Functional Reactive Programming流行ってきてるなあ
試してみたい
RxJavaとやらを使えばJava界隈でも?つまりAndroidでも試せる?
あっ、関数リテラルがある言語じゃないとあんまり意味なさそう
Androidでの動作が安定していて、関数リテラルがあるAltJava…?
アッ、コトリン=サン? (←ここまでが1月半ば)
![Page 13: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/13.jpg)
1月27日、Android界に激震走る
![Page 14: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/14.jpg)
https://docs.google.com/document/d/1ReS3ep-hjxWA8kZi0YqDbEhCqTt29hG8P44aA9W0DM8/edit
![Page 15: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/15.jpg)
Androidライブラリ開発者の雄、Jake Wharton
氏が、突如Kotlin推し報告書をGoogle Docsにて公開
Square社内での布教用に作ったものを公開してくれたらしい
JW神マジミスターアンドロイド
![Page 17: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/17.jpg)
ちらっと見てみましょう
![Page 18: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/18.jpg)
–Jake Wharton
“Java 10 will push Optional onto the stack, but we'll all be dead before Android sees that.”
![Page 19: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/19.jpg)
笑うところです(白目)
![Page 20: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/20.jpg)
既存ソリューションとの相性Android Studio, Robolectric
![Page 21: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/21.jpg)
つらみがあったはず
2014年夏時点ではAndroid+Kotlinはまだ少しつらみが残っていたはず
http://www.slideshare.net/bs_yagi/potato03
![Page 22: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/22.jpg)
検証うまくKotlin認識してくれない時がある→直ってる気がする・・・?
オートコンプリートが重い→確かに重い
なぜかoverrideって書くと怒られる→直ってるっぽい
javaからkotlinが見えない→見えた(後述)
リソースにジャンプ出来ない→できた
対象バージョン:Kotlin M10 + kotlin-gradle-plugin:0.10.195
![Page 23: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/23.jpg)
かなりプラグインが改善されたらしい
![Page 24: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/24.jpg)
![Page 25: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/25.jpg)
Robolectricは大丈夫?
Android SDK組み込みの自動テストツールは、実機やエミュレータなど、Android上で動かすことを前提にしている
Robolectricはandroid.jarランタイムの一部(ハードウェア依存の部分など)をモック化することにより、AndroidのテストをJVM上で行えるようにしたもの→環境がちょっと特殊
![Page 26: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/26.jpg)
中略
![Page 27: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/27.jpg)
Robolectricも使える!
![Page 28: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/28.jpg)
そういえば似てるって言われるよね色んな言語と似てるって言われてたけどさ
![Page 29: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/29.jpg)
![Page 30: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/30.jpg)
http://qiita.com/shoma2da/items/31edef012f224f99323c
![Page 31: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/31.jpg)
http://blog.jetbrains.com/kotlin/2015/01/mce2015-kotlin-session-and-jetbrains-booth/
![Page 32: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/32.jpg)
個人的感想
ちょっと前までGroovy似てる説を信じてた
でも年末年始でGroovyとTypeScriptとSwiftを触る機会があって、ちょっとGroovy違うと思った
型安全教では、優れた型推論はタイプ数を減らしてくれる救世主だけど、動的型付けは悪魔の囁き
Kotlinの型推論が優れているのかはまた別の話だけど
![Page 33: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/33.jpg)
まとめ
ひさびさにKotlin触ってみようと思った
関数型プログラミングやRxJavaをAndroidに持ち込みたいときに安定しているのは嬉しい
春くらいから弊社Androidチームで関数型プログラミング勉強会やろうと思います
![Page 34: もう一度Kotlinの話をしよう #ndsmeetup4](https://reader030.vdocuments.site/reader030/viewer/2022032617/55ab1e611a28ab1a678b463a/html5/thumbnails/34.jpg)
宣伝
ウォーターセル株式会社では
Androidエンジニア Railsエンジニア
Webフロントエンド エンジニア
インフラエンジニア
node.jsエンジニア・・・?
を募集しています。
iOSエンジニア