Blogソーシャル経済メディア「NewsPicks」のMobileAppUnitの野口です。開催日から日が経ってしまいましたが、先月22日(土)ベルサール渋谷ファーストで開催された、テックイベントKotlinFestに参加してきたのでそのレポートです。(後半に一緒に参加した石井さんのレポートもあります)KotlinFestはその名前の通り、プログラミング言語のKotlinに関するカンファレンスで、6月22日に渋谷のベルサール渋谷ファーストで開催されました。前回2022年から2年ぶり、オフライン開催は2019年以来5年ぶりということで、前回のオフライン開催の時に参加させていただき、すごく楽しかった思い出のある筆者にとって心待ちにしていたカンファレンスでした。これを見かけて話しかけてくださった方も何人かいらっしゃって、それを元に交流することができたりしたので持っていってよかったです。会場では、セッションが行われている部屋のほかに協賛の企業の方々のブースもあり、休憩時間等は、そちらのブース等にお邪魔していました。どこも盛況で、休憩時間等ではあまり回れませんでしたが、アンケートやクイズ等に回答して、缶バッチや鳥のステッカーなどをいただきました。2024セッション参加したセッションの中から、個人的に気になったのをいくつかピックアップしました。大まかに発表は前後半2部に分かれており、発表の前半ではK2のコンパイラ自体の構造についての解説があり、特にK2コンパイラの一番肝となるフロントエンドの部分で、どのような処理が行われているのかについて時間が割かれていました。筆者にとっては、プログラムを解析する処理の流れが、Androidエンジニアに馴染み深い、Androidのライフサイクルのようなフェーズに別れて行われていることを知れて、一気にコンパイラを身近なものに感じることができました。個人的に、コンパイラ自体の挙動について全く詳しくないため、聞いても理解できるか不安でしたが、発表の構成/内容がわかりやすくて学びの大きい発表でした。この発表の内容だけで、K2コンパイラを使ってプラグインを作ることが可能そうで、今からでもプラグイン作者デビューできそうでした。IDEプラグインの中を覗いてみようK2コンパイラ、特にIDEプラグインについて、既存のコンパイラの問題点となぜK2コンパイラが必要だったのかの経緯についての解説が主だっと思います。一つ上で挙げたセッションの発表を聞いて、K2コンパイラの具体的な実装に関して解説していただいていたので、よりK2への理解を深めることができた気がします。身近な開発上のK2での恩恵として、今までIDE起動後の読み込みが完全に終わらないと使えなかったコードハイライトなどが、K2でのアーキテクチャの変更で並列に処理を行えるようになり、完全に読み込み完了する前に使えるようになってたのを知ることができてなるほど〜ってなりました。Kotlinで愉しむクリエイティブコーディング今日はよろしくお願いします。2024クリエイティブコーディングについては、普段全く関わりがない分野ですが、最近たまたま耳にする機会があったので、軽い気持ちで聞きに行きました。映像作品とかで見かけるカッコいいグラフィックであったりが、kotlinのコードで実現(それもそこまで複雑でないコードで)されてるのを見て、こんな利用方法もあるんだとなりました。自身がAndroidエンジニアということもあり、どうしてもKotlinをアプリ開発用の言語として見がちなのですが、Kotlinを使った様々なジャンルの発表が集うKotlinFestだから出会えたセッションの一つかなと思いました。Coroutinesで共有リソースに正しくアクセスするマルチスレッドプログラミングを一度でも経験している人にとっては、共有リソースを扱うのが凄く嫌ですよね。Coroutinesでも同じです。このセッションは、初級者の方にもわかりやすく説明してくれました。指針もシンプルにまとめてくれてました。Coroutinesの場合はMutexを使う(ブロック中は、そのCoroutineは中断状態になる)suspendでない場合はSynchronizedを使う(ブロック中は、スレッドを専有し続ける)など。複雑だから、できるだけ1スレッドにし、共有リソースはできるだけ減らす」という話は納得でした。withContextってスレッド切り替え以外にも使えるって知ってた?これも初級者が勘違いしそうなwithContextについてのセッションです。「withContextとは、引数で与えられたCoroutineContextを現在のCoroutineContextに加えてブロックを実行する」と定義し(何言ってるかわからないかもしれませんが、資料見ればわかります)、「ThreadLocalの代わりに使えるよ。ことはトランザクション管理で使えるよ」という話もしてました。ContextParamaterとの比較なども言及しており、勉強になりました。hoistingをしようと考える人がいます。「そうするとプレビュー表示しやすいし、いいことじゃん」と。hoistingしないことによるプレビュー表示の解決方法を提示するなど、僕は凄くいいセッションだなぁと思いました。僕は、一般的に良いとされることが愚直に正しいわけではないという考え方なので、こういうセッションが凄く好きです。まとめは、野口さんにお返しします!まとめ個人的には、もともと楽しみにしていた期待をめちゃくちゃ上回って、とても満足度の高いカンファレンスでした。この会でKotlinを愛でれたと思いますし、Kotlinを愛でる気持ちはさらに高まった気がします!?(※このイベントのビジョンがKotlinを愛でる)発表者の方々、この会を運営してくださっていた運営の方々ありがとうございました。次回があればぜひ参加したいです。reserved.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。