なのログ

だから見てて下さい・・・俺の・・・変身

Kotlin Fest 2019 に行ってきました

行ってきました。カンファレンス。Kotlin Fest 2019。
簡単に言うと、ド楽しかったです。その上で知ることも多かった。素敵ですね。

f:id:nanoyatsu:20190825155701p:plain

強気の1人参加をしました。
会社の同僚も参加すると言っていましたが、当日特に会うこともありませんでした。

名札はこんなかんじ。(はずかしい)

では早速。

基調講演

太郎さんのオープニングのあと、JetBrainsの中の人、 Svetlana Isakova さんが登壇されました。
全編英語だったんですけど、かなりハッキリ&ゆっくり喋っていただいてなんとかいくらかは理解できました。

だいたい2,3割くらいだと思うんですけど。

Kotlinコミュニティの話と、Kotlin1.3以降の言語機能紹介と、KotlinMPPまわりの話と、
Have a nice Kotlin ! ということを言っていた覚えがあります。ガバガバ。

言語機能のほうはInline-Class、Immutable-List、Contracts、Flowあたりのキーワードがありましたが、
Contractsとかは意識しないところでお世話になってそうで、Flowとかは今後使っていく機会がありそうですね。
というかいい加減コルーチン完全に理解しないといけないなという現実があります。機能に追いつけ俺。

そしてこの基調講演が、多くのセッションでネタ被りを見せました。残酷。

セッション

A,B,Cホールとあって、それぞれで同時にセッションが行われているので常に選択の必要がありました。
自分は以下の並びで聴講をしています。
・Kotlinの型実践入門 佐藤 隼
・改めて学ぶContracts 富田健二
・Kotlin Multiplatform Project入門 荒谷光
・フロントエンドもKotlinで書きたい! -WebページをKotlin/JSで作った軌跡- Subroh Nishikori
・公募によるLT大会

いやもう完全に毎回苦しい選択を迫られ続けてしまったんですが、
「コルーチン系統は常に人気の話題という印象があるので必要な時のググりに任せる」とかの判断の下で、
あまり聞いたことがない話題ではというものを中心に聞きに行きました。
では個別にすこしずつ。

Kotlinの型実践入門 佐藤 隼


「あまり聞いたことがない話題中心」じゃなかったんですかね(自問)

「入門」とタイトルにもある通りで、結構やさしいレベルから話していただけました。
その影響もあり、内容の情報量は詰まりまくっていて、途中それなりの内容になってくるとマジの入門の人はなんもわかんなくなりそうなレベルのところもありました。そういうときはスライドを見返しましょう。

個人的には、Kotlin特有の実装方法の視点からの理解が進んだのが(Nothingとか)うれしいポイントでした。
そしてそれらを利用して適切な型定義をすることが柔軟なプログラミングをしていくことを示す例も見ることができて、完全に「かくありたい」と思える内容でした。
ツイート的にはこんなかんじでした。↓

あと、ちょっとした流れで、二週間後くらいにも、今回のスピーカーのSatoShunさんが登壇する勉強会に参加することになりました。いってきます。

改めて学ぶContracts 富田健二

富田さんのアイスブレイクが上手すぎ問題。
まー素敵な内容でした。人がいい。そればっか言ってしまう。人がいい。

ものすごく正直に言うと、Contractsの機能自体がもたらすものは嬉しくとも、
書き方を学んで使おうという人はそんなに多くならないのでは、みたいな気持ちがどうしても拭えないものだと思うんですよね。
スマートキャストのおかげでかなりメリットが大きくなっているとはいえ、どちらかというと注釈系の機能なので、エンドの開発では結構めんどくさがられるものな気がしています。

それをこれだけ肯定的な印象に、理解の順を追って、例まで示して、更に楽しく伝えてくる能力、マジですごい。
と、いうところに乗せられて、自分もまんまと「使えるところ無いかな」みたいな気持ちになっています。
implies(返り値の指定)あたりは使えそうだな~と思っていますが、 callsInPrace(実行回数とかの指定?)とかはあまりイメージがわいていない感じです。
ちょっと具象的じゃなくなるとすぐワカラン宣言で恥ずかしい限りですが、スライドの4章あたりを見ていきます。
手元のアプリ開発でどっか入れ込めるといいですね。

あ、ここ基調講演のネタかぶり①です。

Kotlin Multiplatform Project入門 荒谷光

正直ぜんっっぜんついていけませんでした・・・(かなしい)

「Kotlin/JVMとKotlin/NativeとKotlin/JSがあるんだなあ」というのは理解しつつ(日本語レベルの話だよ)、
サーバーとAndroidをKotlin/JVM(普通のやつ)、
iOSにKotlin/Native(各CPUアーキテクチャに対応したバイトコード)、
WebにKotlin/JS(JSトランスパイル)
という野望ヤベエみたいなレベルより後は「はえーなんかすごい」でした。クッソ初学者。

具体例に入ってからは、サーバーのコード、iOSのコード...とやっていっていただいた訳ですが、
自分でも構成を組んで手を動かして見ていかないとわからんやつだ・・・、となってしまいました。

自分のSwift知識、更にはGradle知識までもが弱いのとかが明らかに影響しているんですが、
Kotlinの裾野を拡げたいときには、また戻ってきたい内容です。

~とか言いましたが、内容が内容ということで、どうやら完全にご本人織り込み済みでした。~


(「後日動画で~」の部分)

そしてここも基調講演のネタかぶり②でした。

フロントエンドもKotlinで書きたい! -WebページをKotlin/JSで作った軌跡- Subroh Nishikori

「なんかすっごいキャッチーな人出てきた」という会場の空気。

そしてタイトルですでにわかるネタかぶり。

といったホットな空気から始まりましたが、
「前日の言語アップデート(Kotlin1.3.50)で動かなくなっていたサンプルをすでに修正済・・・?」
「やってる事マジだしすげえ・・・」
「Kotlin/JSに絞り込んだだけあって初見の人間でもわかりやすい内容になってる」

などなどの点で強さを見せつけ、
結果としては「Kotlin/JS」という単語くらいしか被っていないという素敵な内容に仕上がっていました。

というか、AAkiraさんも「参考になる」と発言する内容(1.3.50更新部分)があったりして、
「カブりにふるえる後発発表者の内容が、むしろ先発発表者を救う」という胸熱展開を感じていました。(自分が勝手に。)

発表内容といえば潤沢な開発事例(自己開発)とハンズオンで、
「これならできそう、やってみよう」と思えるものでした。

そして僕も実際やりました。

・・・すみません大きく言いました、まだサンプルページがlocalhostで開けただけです・・・。

とりあえず小鳥さんとの勉強をしてみようかなという感じですね。いやほんとすげえよ。

公募によるLT大会

色々ありましたね。
拾えたぶんを貼ります。

「Propety-based-testingためになる」とか、
「GraphQLが気になってしまった・・・」とか、
「ウッやはり例外の丸め方はだいじ」とか色々とあったんですが、

推しが発生してしまいました。こんな紹介でいいのか。

彼です。コタニユウクさん。

別のセッションでKotlin/JSの話題が行われることが判明するや否や、
その話者である先述のキャッチーな人さぶろ~さんに連絡を取って内容を聞き、
自分の発表のテーマを急遽変更するという猛者。現役大学生。

そしてその上で、LTではその変態性レベルの高さと具体的な内容を示し、発表の内容も素晴らしいものでした。こっちまで「リポジトリ読みてー!」となる。なったはず。

これは皆さんそうでしたが、時間配分もだいたい5分ピッタリと、ほんと最高の会だなこれ・・・となりました。
懇親会に続きます。

懇親会

そう、そんなところまで参加しました。

ボッチ参加なのに。

とはいえ、なんとかだいたい3組の輪で会話をすることができまして、
①先述のさぶろ~さん、コタニユウクさんを含む5名程
②Contracts話者富田さんの同僚の方(実はちょっと個人的な縁がある)
この方この方のおふたり

これまたスーパーためになりました。自分主観ですがチョー楽しかったです。
本当にありがとうございました。
メッチャしゃべりましたが、お相手の方も楽しんで頂けていたらいいな・・・本当に・・・。

コタニユウクさんのスライド作り直しの背景とかは、このときに聞きました。マジで素敵な人でした。

だいたい以上です。それほど特徴的なレポートにもなっていない気がしますが、
「とにかくなんか書こう」というのが大事ということでお許しをば・・・何卒・・・。

Kotlin Fest 2019 登壇資料まとめ · GitHub

あと、延々ツイッター埋め込みを貼り付けましたが、スライド一覧はすでにまとまっています。
自分もいくらかかけて見直すつもりです。

ではお疲れさまでした。ありがとうございました!