Studyplus Engineering Blog

スタディプラスの開発者が発信するブログ

Kotlin Fest 2019に参加しました

こんにちは、Androidチームの若宮 (id:D_R_1009)です。

Kotlin Fest 2019(2019年8月24日)にAndroidチームの3名(若宮、中島、隅山)で参加してきました。

kotlin.connpass.com

昨年度に参加した時のブログはこちらです。昨年に引き続き 勉強会・カンファレンス参加補助 を利用し参加させていただきました。

tech.studyplus.co.jp

当日の様子

会場が品川駅港南口方面だったので、品川駅の某所で待ち合わせて会場に入りました。 Peatixを利用したチケットの確認も大変スムーズで、待ち時間なく会場入りすることができました。スタッフの皆様に感謝。

blog.jetbrains.com

JetBrainsさんのブログの通り、会はたろうさんの挨拶から始まりSvetlana Isakovaさんの「Kotlin Fest 2019基調講演」となりました。 朝一番にこんなに面白いものを聞いてしまっていいの!? と驚きつつ、Kotlin Festが始まったんだなーと感じていたのを覚えています。

たろうさん

twitter.com

Svetlana Isakovaさん

twitter.com

当日の思い出

以下、3名それぞれの当日参加感想となります。

若宮(id:D_R_1009)

昨年参加できず、今年は参加できることが決まった日から楽しみにしていました。

KotlinはGoogle I/O17でAndroidの正式採用言語になることが決まってから触り出しているので、おおよそ2年ほど触っていることになります。 最初は varval の使い分けに混乱するほどでしたが、関数を引数とするなど徐々にKotlinに慣れ今ではなくてはならない言語となっています。

今回のKotlin FestではContractsが業務に生かせそうだな、と感じました。 アプリのモジュール化が進むにつれ、Utilクラスや拡張関数にContractsの利用するべきシーンが出てき始めたのかな、と感じています。 資料をもとに勉強し、活用していきたいと思います。

個人的な関心としては、Reactを使ったSPAの開発に取り組んでいるので、Kotlin MPPを利用したReactアプリ開発にチャレンジしてみたいなと。 Kotlin JSは発表や資料を読んでも、まだまだ開発途中っぽいなと感じました。ですが、今から開発に飛び込むとそれはそれで楽しそうだなとも!

全体的に「Kotlinを使うのは楽しいな」と感じる瞬間が多かったです。 懇親会も含めて、Kotlin Festは想像の数倍楽しかったです! また来年も参加したい!

中島

結論から言いまして、とても実りの多い体験となりました。

オープニングセッションであるSvetlana Isakovaさんの基調講演から、Kotlinの開発体制や精神だけでなく今後の新機能についてまで盛りだくさんの情報量でした。 特に、幅広いユースケースで使われそうな Contracts および ImmutableCollections について興味をそそられました。

午後からのセッションも 佐藤 隼さんの「Kotlinの型実践入門」富田健二さんの「改めて学ぶContract」 といった関連の強いものを聴講することで、より理解を深められたと感じられました。 特に Contracts は既に公式(1.3.50)拡張関数の内26メソッドに利用されているとのことで、自分でも積極的に使っていこうという気概が生まれました。

また「Kotlinの型実践入門」ではNothing/Nothing?型のユースケース、恥ずかしながら不勉強のまま放置していたジェネリクスなどについても色々勉強できたと思います。 セッションの最後にちらっと触れられていた、SAM変換問題に対する新しい型変換の開発についても、今後もKotlinの動向からは目を離せないと改めて思いました。

懇親会では普段あまりお話しできない、Android以外でKotlinを使っている方々との情報交換が色々とできてこれもとても有意義な時間だったと感じました。 Androidをやっていると静的型付けが基本ですし自分は他の経験言語でも同様だったので、型が明記されない言語からKotlinに変更した時の体験談などを聞けたのも楽しかったです。

最後に、聴講したセッション以外で特に気になったセッションが 八木俊広さんの「Kotlin コルーチンを 理解しよう 2019」 です。 資料を後から読みましたが非常に内容が濃く、自分があまり細かく理解しないで使っていたんだなと思い知らされました…。 Rxでいう通信処理のzipなど、単純な通信処理から少し外れたものをどう実装するのが本来正しいのか、しっかり把握できた気がします。

隅山

今回Kotlin Fest初参加でしたが、オープニングセッションでのSvetlana Isakovaさんの講演から始まり、全体的にKotlinの盛り上がりを感じることができました。既存のコードを壊さず、モダンに保つようアップデートとフィードバックを繰り返すことで言語をブラッシュアップしていることを知り、今後のKotlinにも非常に期待が持てました。 セッションは全体的に勉強になりましたが、特に勉強になったのが「コルーチン」と「Contract」でした。

コルーチンは業務で使っているのですが、何となくでしか理解できていないことをKotlin Festを通じて感じました。 例えば、スレッドよりコルーチンの方が軽量であることは知ってましたが、スレッドは1MB~2MBほどメモリを使うのに対してコルーチンは1KB程度のため、コルーチンを積極的に使うべきだと思いました。設計面では「コルーチンスコープとアプリケーションライフサイクルを合わせる」「suspend関数とコルーチンはメインセーフティを考慮する」と発表されていたため、今後はそこを気をつけながら開発していきます。

Contractは初見でしたが、isNullOrEmpty()でチェックした後からNonnullで扱えるようになるのはContractのおかげということがわかり、Contractの有り難さを感じました。 Kotlinでの開発中にいきなりNullableの値がNonnullで扱えるようになったりと、何気なく使えていて非常に便利である機能がContractでした。Contractは関数の振る舞いをコンパイラに適用することができるため、関数書く際はContractも考慮していきたいと思いました。

まとめとしては今回のKotlinFestを通して、自分の知識の抜け漏れを補たり、Kotlinへ熱意を感じることができたため非常にいい経験となりました。

終わりに

今年は1名がLT登壇申し込みに終わってしまいました。 来年こそは、弊社からも登壇していきたいなと感じています。

日本Kotlinユーザグループのみなさま、素敵なFestをありがとうございました!