![見出し画像](https://assets.st-note.com/production/uploads/images/145141707/rectangle_large_type_2_42b787c5b7551aacc7fadd2aae0fd116.jpeg?width=1200)
【レポ】Kotlin Fest 2024に現地参加してきたよ
はじめに
こんにちは!なが(@naga_homelab)です!
普段はモバイル(Android/iOS)を主軸にvisionOS・ネットワーク・Web・デザインあたりを触っています。
Android開発歴としてはまだ半年ほどで、Kotlin/Composeの開発が95%くらいを占めています。
今回は、Kotlin Fest 2024に学生支援チケットで参加してきたので、参加レポートを書いてみようと思います。
カンファレンスへの参加は2回目で、try! Swift Tokyo 2024以来の参加です。
拙い文章ではありますが、どうか最後までお付き合いください。
第一印象
「Macユーザーがめちゃめちゃ多い!!」
try! SwiftはSwiftのカンファレンスだったので、全員マカーは違和感なかったのですが、まさかKotlin Festもかなりの数のマカーで埋め尽くされていたのでこちらも衝撃でした。
Apple Silicon Macめちゃめちゃ電池持ちいいですよね…
「知り合いがめちゃめちゃいる!!」
2024/03にCyberAgentさんの育成型インターン「CA Tech Dojo」に参加しており、たくさんのAndroidエンジニア、そしてAndroidエンジニアを目指す学生と知り合いました。
その結果、会場で運営・参加者含めてかなりの数の知り合いと再会することができました。ちなみに、最初の邂逅はKotlin Fest運営・インターン同期・NID.kt代表のひなりん(https://x.com/soleil_colza_)です。いつもお世話になっています。
![](https://assets.st-note.com/img/1719238299857-RTt7Mus2qw.jpg?width=1200)
会場の様子
Kotlin Fest 2024の会場はベルサール渋谷ファーストの2Fで、try! Swift Tokyo 2024の2つ上の階での実施でした。
わいわい#KotlinFest pic.twitter.com/pJnkZLvjYM
— naga | ながなが (@naga_homelab) June 22, 2024
セッションA・Bとスポンサー&休憩ブースがあり、到着早々インターンの同期と一緒にブースを回りました。
各社クイズやノベルティが充実していて、Kotlin愛を肌で感じることができました。
中でも印象深かったのがSMSさんのブースで、Xアイコンの缶バッチを作っていただきました…!!ありがとうございます!!
#KotlinFest います!!
— naga | ながなが (@naga_homelab) June 22, 2024
缶バッチはSMSさんのブースでいただきました🙌 pic.twitter.com/uzUKqGryB7
また、各社が出すクイズもコードレビューのようなものから実装に関する問題まであり、各ブースで唸りながら回答していました(笑)
次回はサクッと満点が取れるように、精進したいと思います!
また、スポンサーブースの横で出店されていたアルファベッティカフェさんのアメリカーノをいただきました。
アルファベッティカフェさんのコーヒーもtry! Swift以来で、私がエスプレッソに目覚めるきっかけとなるコーヒー体験でもありました。
tryswift以来のアルファベッティコーヒーさんのアメリカーノ!!☕️
— naga | ながなが (@naga_homelab) June 22, 2024
今回はアイスでいただきました🙌#KotlinFest pic.twitter.com/NOHY7QmHkX
オーナーさんに「アルファベッティカフェさんのコーヒーに感銘を受けて、エスプレッソ抽出を始めました!」とお声かけしたところ、try!Swiftで提供していた豆の種類を教えてくださったので、その場で注文しました!
「EAST TIMOR Ermera ー東ティモール エルメラー」というお豆です。
本当に美味しいのでみなさんも飲んでみてください、めちゃくちゃおすすめです。ちなみにアイスアメリカーノで飲むと最高に沁みます。
ノベルティ
どのグッズも本当に可愛いものばかりで、全部お気に入りです!!
JetBrainsピンバッジゲット!!!#KotlinFest pic.twitter.com/LtDcdyXixk
— naga | ながなが (@naga_homelab) June 22, 2024
これは素敵なノベルティとひなりん( @soleil_colza_ )手書きのKotlinロゴ#KotlinFest pic.twitter.com/9DkNUdQzAm
— naga | ながなが (@naga_homelab) June 22, 2024
セッションの内容
採択されたプロポーザル一覧を見た時から、初心者から上級者・サーバーサイドからモバイルまで楽しめるな構成だな〜と感じていました。
また、近年採用の話が増えてきたKotlin Multiplatform(以下:KMP)やCompose Multiplatform(以下:CMP)関連のセッションが多いと感じました。
参加したセッションのメモ
KotlinConf 2024 を後から256倍楽しむためのヒント
Fleetめっちゃ気になる #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
恥ずかしながら、このセッションJetBrains Fleetの存在を初めて認知しました。
KMP対応の多言語対応エディタで、SwiftもComposeのUIプレビューもサポートしている、いわゆるVSCode的立ち位置のものなのかな…?と認識しましたが、実際のところどうなんでしょうか…
ちなみに、現段階(2024/06/24)ではSwiftPMに非対応とのことで、自分のプロジェクトはビルドできませんでした😇
触ってるCMPのプロジェクトも〜v.1.6.0なのでPreviewできず…残念
早速Fleetを入れた#KotlinFest pic.twitter.com/DOCiYRSMw9
— naga | ながなが (@naga_homelab) June 22, 2024
FleetはAppCodeの生まれ変わり!と聞いたのでiOSプロジェクトを開いてみたけど、もしかしてSwiftPM非対応??https://t.co/dbUbJTmz62
— naga | ながなが (@naga_homelab) June 23, 2024
この記事に心から感謝
— naga | ながなが (@naga_homelab) June 23, 2024
Fleetでもシンプル構成のiOSアプリ開発ができることがわかった
visionOS SDKとSwiftPMは認識してくれなかったけど😇https://t.co/NcbIA7Tmb9
また、JetBrains コンテンツクリエータープログラムなるものもあるらしいです。提携するとライセンスをいただけるとか。
今こそ始めたい!Compose Multiplatform
個人的にはめちゃくちゃ刺さりました。
ビジネスロジック、UIなど、作り手が任意のレイヤーまで共通化できることはKMP/CMPの強みだと思います。
また、Kotlin→ネイティブ変換の流れや環境構築、開発手法等を分かりやすく説明されていたので、これなら自分でもできそう!と思えるようなセッションでした。感動。
共通化するものと個別対応するものを柔軟によしなできるのいいね #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
iOSのUIをKotlinで書けるのはよきすぎる #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
2024年版 Kotlin サーバーサイドプログラミング実践開発
サーバーサイドを書いた経験がなく、知見が全くなかったのですが、そんな自分でも現状のベストな構成でサーバーサイドKolinを始められるのでは?と思ってしまうセッションでした。
フレームワーク(API系、DI、ORM、テスト)それぞれのメリットとデメリットを解説しつつ、最後にベストな選定を示していただいたので、スッと納得することができました。
KtorとKoinとJOOQとKotestの構成で何か作ってみたい…!!
JetBrainsが開発してるフレームワーク多いな〜〜
— naga | ながなが (@naga_homelab) June 22, 2024
安心感すごい#KotlinFest
dslを利用したormのパフォーマンスってどうなんだろうか #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
サーバーサイドKotlin、触ったことないけど触ってみたくなった!! #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
KotlinのLinterまなびなおし2024
NID.ktにもいらっしゃるにゃふんたさんのセッション
KotlinのLinterといえばKtlintしか知らなかったので、こんなたくさんの種類のLintがあるのか…としみじみ
Konsistはアーキテクチャテスト(検査?)ができるとのことで、Linterの偉大さを感じました。
Konsist、アーキテクチャテストもできるのか #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
Kotlin Coroutinesで共有リソースに正しくアクセスする
恥ずかしながら「リソース競合」の概念についてはふわっと知っていたものの、用語を知ったのは初めてでした。
また、複数の解決法とその選定基準を知れて本当に勉強になりました。
よく非同期処理で事故っているので、今後は意識してみようと思います。
非同期書類、スレッド、奥が深すぎる #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
例外設計について考えて Kotlin(Spring Boot&Arrow)で実践する
「例外を考える」ことはあったものの、ビジネスと技術面に切り分けて考えたことはありませんでした。
そのため、「例外設計の4象限」はとても参考になりました。
昨年開発したプロダクトで、想定外の運用が発生した事例があったので、今後設計する時は積極的に取り入れたいと思います。
技術的例外とビジネス例外を混ぜて例外処理を考えていたかもしれない #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
運用したらこのパターンの問題もありました←うっ… #KotlinFest #B
— naga | ながなが (@naga_homelab) June 22, 2024
内容もりもりすぎる
— naga | ながなが (@naga_homelab) June 22, 2024
例外設計・監視の沼は深い #KotlinFest #B
まだ JUnit を使ってるの? kotest を使って快適にテストを書こう
テストを書いた経験がないので、非常に難しく感じました…
このセッションについては「精進します」としか言えないのが、非常に悔しいです。
とはいえ、Kotestの良さはものすごく伝わってきたので、テストを書くときはKotestを使ってみようかな…?と思います。
めちゃめちゃ濃密なセッションでした!!精進します!! #KotlinFest #B
— naga | ながなが (@naga_homelab) June 22, 2024
Jetpack Compose: 効果的なComposable関数のAPI設計
「シンプルなComposable」とは何か考えさせられるセッションでした。
コードの量が少なく、シンプルに見えても、プロダクト全体で見ると複雑化している…確かに、言われてみればそう。
シンプルなAPIを作るには、引数どうこうではなく、コンポーネントの外側を考えてやるのがいいのでは?
まさにこの通りだと思います。
また、Composableなラムダを引数にするやり方を「Slot API」というのは初めて知りました。
(多分、ReactでいうReactNode型みたいなものですよね)
あらゆるアプリをCompose Multiplatformで書きたい! -ネイティブアプリの「あの機能」を私たちはどう作るか-
KMP + CMPでできる現状と課題が明確に分かるセッションでした。
OAuthと動画再生は本当に大変そうです…
でも、CMPでここまでできるのなら一度挑戦してみたいです…!
にしこりさんとは懇親会でお話しさせていただきました。ありがとうございました。
Kotlin Wasmでポートフォリオサイトはなかなか… #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
Compose multiplatform上での動画再生かなりつらそう #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
Compose Multiplatform、進化中ゆえ無茶振り感が否めない
— naga | ながなが (@naga_homelab) June 22, 2024
#KotlinFest
めちゃめちゃKMP + Compose Multiplatform欲が上がった #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
Kotlinの歴史を可視化する
歴史の授業的なものかと思いきや、めちゃくちゃデータサイエンスで驚きました。
このようなアプローチを取れば、長く言語を触っていない開発者でも過去の動向を知ることができる事実に感動しながらも、ぜひどこかでJetBrainsさんと答え合わせをして欲しいな〜とも思ったりしました(笑)
言語の歴史をデータ分析するの面白いな〜〜 #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
このアプローチで可視化したデータをAIに学習させれば、いつでもベテランエンジニアを召喚できるのでは #KotlinFest
— naga | ながなが (@naga_homelab) June 22, 2024
休憩・懇親会
先代のCA Tech Dojo生・同期のDojoメンバーと一緒にご飯を食べました。みなさん本当に優しくて幸せな空間でした…
懇親会では、DroidKaigi代表理事のmhidakaさんとツーショットを撮らせていただきました…!!本当にありがとうございます!!一生の思い出です!!
(掲載も快くOKしてくださいました…ありがとうございます)
また、技術書典16の新刊「たすけて!ViewModel」の感想もお伝えすることができました。多分、終始限界オタクのような話し方だったと思います…
![](https://assets.st-note.com/img/1719239187337-sjUgmozIGu.jpg?width=1200)
休憩時間では、愛用している名刺管理アプリEightを開発しているSansanさんのエンジニアの方からeight cardをいただきました…!!
Sansanさんのエンジニアさんからeight cardをいただいてしまった…!!うれしい!! pic.twitter.com/30hxztJorB
— naga | ながなが (@naga_homelab) June 22, 2024
さいごに
Kotlin Fest 2024の運営のみなさま、スポンサー、スピーカー、参加者のみなさま、本当にお疲れ様でした!!
また、学生支援枠を設けていただき、本当にありがとうございました。
来年もまた参加できるよう、健康に気をつけながらエンジニアリングライフを送りたいと思います🔥
めちゃくちゃ楽しかったです!!
— naga | ながなが (@naga_homelab) June 22, 2024
お声かけくださったみなさま、一緒に写真を撮ってくださった日高さん、運営の皆様などなど、本当にお疲れ様でした!!#KotlinFest pic.twitter.com/zGSkHNWQdn