KotlinFest 2024に参加しました

Kotlin Fest 2024会場

先日開催されたKotlin Fest 2024に参加してきました。今年は5年ぶりのオフライン開催となり、フェンリルからはAndroid、iOSに関わらず9名のエンジニアが参加しました!当日の様子と、気になったセッションをフェンリルのメンバーが紹介していきます。

当日の様子

スポンサーブースの様子

@cffYoHaはKotlin Fest当日の運営スタッフとして参加し、午前中は受付対応をしていました。1つ目のセッションが終わった時点で既にスタンプラリーをクリアした方もいて「早くノベルティほしい!」という気持ちになりました。Kotlin Festのトリの缶バッチや、JetBrainsのピンバッチ2種からどれにするか悩まれている方が非常に多かったです。

スタンプラリーのピンバッチ

気になったセッションの紹介

宮邉

speakerdeck.com

Compose Multiplatformの基本的な機能や開発の方法を紹介していました。Compose MultiplatformでハマりがちなPreview方法を解説くださった点は参考になりました。Compose Multiplatformを利用してもAndroidとiOSそれぞれのプラットフォームに合わせたUIを作成できるため柔軟にデザインを作成できそうです。iOSのUIをKotlinで記述できることに加え、プラットフォーム毎にUIを表示分けできるのは良いと思います。

speakerdeck.com

Coroutinesで非同期処理を実行する際に、複数のスレッドから共有のリソースにアクセスする際の注意点について、多くの例を用いて解説してくれていました。複数スレッドで共有リソースにアクセスする場合、Coroutinesを使用している場合はMutexを使用し、suspendを使用しない場合はSynchronizedを使用するのが良いとのことでした。「できる限り共有リソースに複数Coroutinesからアクセスするシーンを作らないようにしていきたい」ではなく「スレッドごとの処理をシンプルにすることで競合が発生しにくい設計を心がけたい」ですね。

speakerdeck.com

多くのCollectionを操作するための関数を一通り紹介されました。普段の業務上よく使っている関数から、あまり使用頻度が高くない関数まで含めて、既存の知識の復習と新しい知識の勉強両方できてとても勉強になりました。 全く知らなかったAPIも数多く紹介され、使い方を知ることができました。便利な使い方もでき、Kotlinの凄さを改めて実感できました。

業務上、かなり大量のデータをダウンロードもしくは挿入するという場面があります。そういった場合において、今回紹介されたchunkedというCollectionを使うことでどれほどパフォーマンスを改善できるのかが気になりました。今後の業務で実際に試してみようと思います。

@cffYoHa

speakerdeck.com

Kotlinにおいて利用されているLinterについてのセッションでした。ktlintやdetektに加えて、Release1.0間近のKonsistも紹介されていました。それぞれのLinterの目的が示されていたことで、技術選定時に根拠をもって導入できるなと感じました。

KonsistというLinterがあることは知らなかったため、それだけで大きな収穫でした。ktlintやdetektがファイルレベルをスコープとしているのに対し、Konsistはプロダクトレベル全体をスコープにして、2種類のチェック(Declaration ChecksArchitecturalChecks)をするようです。決まったpacage配下のクラスの命名規則などをチェックできることで、エンジニアが把握すべきドキュメントが減るため積極的に使っていきたいですね。

公式ドキュメントを見ると親切にKotestのテストケースも記載されていました。↓のセッションと合わせて、両方使っていきたいですね。

www.slideshare.net

普段JUnit4でテストを書いている私としては、目からウロコのセッションでした。JUnitでう〜んと長らく思っているポイントが、Kotestでは快適にかけるようになっており「使いたい!」と思わせてくれました。

テスト名がテキストでかけるようになるStringSpecは、テスト結果の可読性が向上するため便利だと感じました。JUnit5では@DisplayName()でテスト名にテキストを設定できるようですが、JUnit4を使用してテスト名を書いている(中黒や句読点が使えない)私としてはどちらも眩しく映りますね(笑)。

セッション後のAsk the Speakerで登壇者の方とお話もできました。KotestはJUnitから段階的に移行できるようなので、推せるポイントから導入できないか試行錯誤してみようと思います。

まとめ

Kotlinに特化したカンファレンスということで、Kotlinをバックグラウンドに持つ様々なエンジニアの方と交流できました。セッションでは、多くの知見を得られ非常に刺激になりました!次回のKotlin Festも楽しみにしています。