ロング(40分)
Kotlin言語・プログラミング 中級者

🎶 コードで音を奏でよう!Kotlinサウンドプログラミング体験

h5mtakada Masatoshi Takada

「プログラムで音を生成したいけど、何から始めればいいかわからない」「サウンドプログラミング始めるには数学的敷居が難しそう」— そんな風に感じたことはありませんか?
実は、Kotlinの表現力豊かな文法と標準ライブラリを活用すれば、数学的な複雑さを抽象化しながら、驚くほどシンプルに音声が出せるアプリケーションを作成することができます。
本セッションでは、「Hello, World!」ならぬ「Hello, Sound!」的な内容・知識から始まり、最終的には美しいドレミ音階を奏でるまでの道のりを、紹介していきます!

2
ロング(40分)
Kotlin言語・プログラミング 中級者

失敗から学ぶCoroutine・Flowテスト実践講座

h5mtakada Masatoshi Takada

▪️背景
 「CoroutineやFlowのテストがうまく書けない」「期待した値が取れない」「テストが安定して成功しない」、これらはCoroutine・FlowのUnitテストに挑んだ開発者なら誰もが1度は直面する課題ではないでしょうか?

実際のコードでは、リトライ処理、Exception、複数Flowの合成といった、テストには複雑なケースが数多く存在します。

本セッションでは、プロダクション開発でよくある複雑な非同期処理を例に、安定したテストを書くための実践的な手法を紹介します。失敗するテストを出発点に、失敗の原因分析から修正方法までを解説します。

▪️具体的な内容:
・よくある失敗パターンから学ぶ

・時間を制御するテクニック

・Flowテストの基本と応用

・複雑な非同期ロジックに挑む 

・MockK×Coroutineの活用法

・テストしやすい設計へのリファクタリング

1
ロング(40分)
ツール/エコシステム 上級者

もっとKotlinを乗りこなす!CompilerとIDEで拡張する新しいToolingの世界

kitakkun_pb kitakkun

Kotlin Compiler Pluginはコード中間表現の改変によって新しい言語パラダイムをもたらし、IntelliJ Pluginはツール拡張によって開発者を支援します。両者を組み合わせれば、もう1段階上の開発体験を作り出すことができます。

本セッションでは、IDEを経由してアプリ状態を巻き戻す、back-in-time-pluginを題材に、コンパイラ拡張とIDE拡張を組み合わせて、ユニークなToolingシステムを構築する実践的な例を紹介します。

アジェンダ:
・back-in-time-pluginのアーキテクチャ
・FIR/IR拡張による状態の追跡・巻き戻し
・IDEとアプリの連携方法
・Compiler PluginのIDEサポートの現在地

一見魔法に見える機能も、分割してみると単純な機能の組み合わせです。皆さんも大好きなKotlinで、魔法使いになってみませんか?

2
ロング(40分)
Kotlinの活用事例(仕事や学業など) 中級者

Kotlin 全方位戦略 〜 askenがバックエンドもモバイルもKotlinで統一した開発に挑戦 〜

_westten 株式会社asken エンジニアリングマネージャー 西秀和

株式会社asken では、バックエンドもモバイルもKotlinで統一した開発に挑戦してきました。

PHPからKotlinへのリプレイスを経て、KMP(Kotlin Multiplatform)導入、
iOS先行・Android後追いという試行錯誤、そしてKMPで職能の壁を越えて協業する開発体制へ。
ついにはBFFやAIネイティブな世界まで踏み込もうとしています。

Kotlinで広がる開発の可能性と、その奮闘の歴史を一緒に覗いてみませんか?
私たちのリアルな軌跡を紹介します。

6
ロング(40分)
Android 中級者

レガシーコードに挑む!kintone Androidチームが実践したKotlinコードの段階的リファクタリングの道のり

tonionagauzzi トニオ(tonionagauzzi)

kintoneのAndroidアプリは2019年にリニューアルして以来、技術の進化に伴い様々な変更が必要となりました。とくに問題となっていたのはデータフローの高い複雑性で、新機能の開発を阻害したり、新規加入者の学習負荷を高くしていました。

そこで、私たちのチームはアプリの保守性と再利用性を向上させる大規模なリファクタリングを実施しました。

具体的には、Googleのアプリアーキテクチャに基づきマルチモジュール化を行い、RxをCoroutinesに置き換え、シングルトンインスタンスを削減し、独自ユーティリティクラスの使用を最小限に抑えました。さらに、一部のViewをComposeに移行しました。手動テストと自動テストの使い分け方も見直しました。これらの変更を、段階的に実施しました。

このセッションを通じて、大規模リファクタリングの具体的な進め方、チーム開発のヒントを得ることができます。

ロング(40分)
ミドルウェア/フレームワーク 中級者

実践Dependency Injection 〜さまざまな手法の特徴とその使い所〜

jsoizo せきね じゅん

Dependency injection (DI) は保守性の高いアプリケーションを開発するために必須と言っても過言ではない設計パターンではないでしょうか。

Kotlinで開発をするときのDI手法として、言語機能を利用した手動DIや、KoinやDagger等のライブラリやSpring DIのようなサーバサイドのフレームワークに組み込まれたものを利用するなど、様々なアプローチが存在します。
このセッションでは、DIの目的や原則などについておさらいをしながら、各アプローチについて具体的なコードとともに触れつつ、それらを利用するメリットとどのような場合に使うのが良いかの解釈についてお話していきます。
また、それらの特徴を踏まえたうえで、私がDDD x クリーンアーキテクチャなアプリケーションを開発するうえでDIを使い分けている背景などについてもお話できればと考えております。

2