見出し画像

RIZAPのエンジニアが、Kotlin Fest 2024に初参戦! 【各講演のレポート集】

6月に開催された「Kotin Fest 2024 」にRIZAPエンジニアが初参加させていただきました。ここでは、会期中に開催された数々の講演について、メンバーがそれぞれの言葉で感想をまとめています
(メンバー別⇒参加した講演別に目次を分けています)。


↓↓↓ 現場レポートはこちら ↓↓↓

Androidエンジニア北村涼の感想まとめ

1. 2024年版 Kotlin サーバーサイドプログラミング実践開発

【概要】
現在 Kotlin でウェブアプリケーションを構築するなら、どのような技術選定があり得るかというお話です。

WebApp Framework、OR Mapper、DI ツール、テストフレームワーク、それぞれの特徴を取り上げ、その上でなぜ選択するのかを分かるやすく解説していました。

おすすめの構成は Ktor + Koin + JOOQ + Kotest とのことです。

【感想】
サーバサイド Kotlin は一昔前はまだ挑戦的なイメージを持っていたのですが、今となっては特にリスクなく検討できるものなのかなと感じました。

懇親会でサーバサイド Kotlin を選択されているお話を伺うと、JVM で Java にて構築していたがベターな言語が欲しくなり Kotlin を選びました、という方が多かった印象です。

確かに今、自分が JVM でサーバサイド開発を行う状況になったら、同じ選択をすると思います。

発表において DI ライブラリの話がありました。DI に関しては、自分はコンパイルタイムでのチェックが魅力であるため Dagger を使うと思います。Android 開発で慣れ親しんでいるというのも理由ではあります。

2.まだ JUnit を使ってるの? kotest を使って快適にテストを書こう

【概要】
Kotlin のテストフレームワーク Kotest の話です。Kotestを導入することで、少ないコードで価値のあるテストを構築することができます。

様々な便利な macher の存在や、suspend fun のための便利な記述方法、Nest テストでの書きやすさなど、JUnit より多くの利便性があります。

【感想】
僕らのチームは JUnit を使って Android のテストコードを記述しています。JUnit によるつらみは、このセッションでおっしゃる通りです。

Clue は嬉しいと思いました。テストがこけても大した情報は JUnit では表示されないので、解決の糸口になる情報を表示できるようになることには、大きなメリットがあります。

JUnit ではメソッド名に英語のメソッド名を記述しようとすると、長くよくわからない名前になることには前から気がついていて、テストメソッドの命名には日本語文字列を使うルールとしています。

発表の中では Kotest は安定しているというお話だったので、導入する頃合いかと思いました。Spek はもう選択肢にするのも難しいですからね......。


Androidエンジニア藤井 賢太郎の感想まとめ

3.Kotlin Coroutinesで共有リソースに正しくアクセスする

【概要】
Mori Atsushiさんによる発表で、Coroutinesを使用して値の更新を行った場合にどのようなケースで期待通り動作しないのか、どうすれば問題を回避できるのか、という点を解説されていました。

【感想】
問題が発生するケースを、図を使って説明されていて理解しやすかったです。

Coroutinesを使っている場合はMutexでの制御、suspendではない関数ではSynchronizedでの制御を行うとよいという学びが一番のキモと感じました。

発表の終盤では演習問題もあり、内容を理解できたかの確認を行えたのもよかったです。

4.あらゆるアプリをCompose Multiplatformで書きたい! -ネイティブアプリの「あの機能」を私たちはどう作るか-

【概要】
にしこりさぶろ〜さんによる発表で、プライベートにてKMPとCompose Multiplatformで作成されたMastodonクライアントアプリ開発で得られた知見の共有となっていました。

【感想】
開発を行った際に感じた壁が3つあり、それらをどのように解決していったのかについて発表されていました。

内容を聞いて感じたことは、プラットフォームごとの違いによる処理はexpect/actualで自前実装を頑張ることでなんとかなりそうだというものでした。

また、詰まった際にはkmp-awesomeなどでKMP対応された良いライブラリがないか調べていくとよさそうという学びを得ることもできました。


iOSエンジニア山野井 陽一の感想まとめ

5.Jetpack Compose: 効果的なComposable関数のAPI設計

【概要】
NOT A HOTEL の @haru067 さんによるセッションでした。Jetpack Composeをつかって開発するときにどのように引数を定義してあげるとよいかという内容でした。

【感想】
私はiOSのエンジニアなのでSwiftUIをイメージして考えましたが、UIの引数の考え方は非常に参考になりました。

特にデータクラスを引数にする場合は注意が必要で、仕様変更などによりデータクラスに変数が追加されてView側で使っていない変数でも変更されるたびに再Composeされてしまうので、基本的には必要な変数だけをprimitiveに記述して、多くなってきたらクラスでまとめるが良さそうです。この辺はiOSも同じだなと感じました。


バックエンドエンジニア 高城 友梨香の感想まとめ

6.クロージングセッション「Kotlinの歴史を可視化する」

【概要】
「可視化」のアプローチからKotlinの歴史を紐解くという内容です。

発表では、”可視化とは”から、実際にKotlin言語の可視化を通して得られた知見や情報を共有し、そこから考察までお話いただきました。

可視化結果を議論のタネとして、得られた情報をもとに議論を重ねることで新たな知見を手に入れられる重要性の高さを教えてくださいました。

発表中デモに用いた可視化結果:https://explorekotlin-split.streamlit.app/

Kotlin organization配下のrepositoryのコミット数:

【感想】
「可視化」の重要性をこのセッションを通して実感しました。

今回はKotlinの歴史を通して可視化について学びましたが、 ”可視化の結果を通して、議論を重ね、新たな知見を得る”ことはプログラミングのみならずさまざまな場面でとても有効だと思いました。何も分からないところから、可視化により気づきを得て、考察から議論を重ね新たな知見を得ることは本などから得る学びとは違う、”生きた学び”だと思いました。

普段私はRailsエンジニアとしてバックエンドに携わっています。自分自身が触っている言語にも可視化を用いて、考察することで新たな学びを得ようと思いました!

また、懇親会では本公演に登壇してくださったAyana Murakamiさんとお話ししました。なんと23卒で同期で、驚きました。SNS等を交換し、繋がりを持つことができました。自分と同じ年代の方が活躍されていると、自分自身とても良い刺激になります。

今回の貴重な経験を次に活かせるように、業務に励みたいと思います。


(了)


この記事が気に入ったらサポートをしてみませんか?