どちらでも
AI 中級者

Kotlinで進化するAgent to Agentの未来 〜Kotlin × ADK Javaが魅せる新たな可能性を探る〜

_subnaganaga なが

Agent Development Kit(ADK)は、Google Cloudが発表したAI Agentを開発するためのフレームワークです。Google I/O2025でJava版のADKが公開され、Kotlinを含むJVM環境からの利用が現実的な選択肢となりました。

本セッションでは、Java版ADKのSpring Boot + Kotlin環境での動作事例を起点に、KotlinがAI Agentの土台としていかに強力な選択肢となり得るかを探ります。
後半では、Model Context Protocol を介したAgent-to-Agent 通信の概念にも触れ、複数のAIが連携し、より高度なタスクをこなす「Agent to Agentの未来」をKotlinで実現する可能性を深掘りします。

みなさんもKotlinを用いたAI Agent開発の新たな可能性を共に探求してみませんか?

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

Kotlinで型安全にバイテンポラルデータを扱いたい!ReladomoラッパーをAIと実装してみた話

itohiro73 いとひろ

「バイテンポラルデータモデル」という言葉を聞いたことがあるでしょうか?ビジネス時間と処理時間の2つの時間軸でデータを管理する概念で、時制を扱う必要があるシステムを設計するにあたって非常に有用なデータモデルです。Reladomoは、これを透過的に扱える稀有なORMですが、残念ながらKotlinから使うには多くの壁がありました。

本セッションでは、バイテンポラルデータモデルの概要を説明するとともに、Claude Codeをペアプログラミングパートナーとして、Kotlinを用いた型安全な設計、拡張関数、DSL等を活用してReladomoをKotlin with Spring Boot で簡単に扱えるようにしたお話をします。

このセッションでは、実際のコードとデモに加え、Claude Codeとの対話ログも一部お見せし、AIエージェントとのリアルなものづくりの実態もお伝えします。

ショート(20分)
Webバックエンド/サーバサイド 初級者

Kotlin の高階関数とタイプエイリアスでドメインを技術的要素から解放する

garagara21kt 柄池 大輔

DI コンテナに慣れ親しんだ開発者が直面する課題として、ドメイン層への技術的依存の混入があります。ドメインサービスでフレームワークが提供する DI を使用しているのは、ドメインロジックが技術的要素に依存していないと言えるのでしょうか?
本セッションでは、Kotlin の高階関数とタイプエイリアスを活用することで、DI コンテナに依存せずにクリーンな依存関係の注入を実現する手法を紹介します。従来のクラスベースのドメインサービスから、純粋な関数としてドメインロジックを表現し、高階関数による依存関係の注入パターンを通じて、技術的関心事からドメインを完全に分離する実践的なアプローチを解説します。

Outline (案)

  1. クラスベースの DI に感じる課題
  2. ドメインサービスの関数型アプローチ
  3. 高階関数による依存関係注入
  4. タイプエイリアスによる可読性向上
  5. まとめ
1
ショート(20分)
Kotlin言語・プログラミング 初級者

「10億ドルの損失」を招くKotlin Null Safetyの落とし穴

hondaya14 本多康久

Kotlinは「The Billion-Dollar Mistake」とも呼ばれるNull参照問題を防ぐために、Null Safetyをサポートしています。しかし、完全に安心するにはまだ早いかもしれません。 Kotlinでのソフトウェア開発では、未だ、Kotlinのみのエコシステムで完結することは難しく、Java(JVM)の資産を活用する場面が多くあります。そして、Javaとの連携の境界線上には意外な落とし穴があります。
本セッションでは、実際のプロジェクトで遭遇したKotlinの型システムを突破してきたnullの問題を共有しつつ、KotlinとJavaの相互運用におけるPlatform Type、 Generics、Type Erasure、Deserialization、Reflection などの内容を踏まえ、KotlinのNull Safetyついてお話しします!!

3
ショート(20分)
Kotlin言語・プログラミング 初級者

Kotlinのnull安全と型で語る設計:sealed interfaceではじめる関数型的バリアント表現

AI_yamadaNLP Yamada

Kotlin は null 安全性を備えていますが、設計上「同一の概念に複数のタイプ(例:文字列・数値など)」を持たせたい場合、nullable プロパティや共通フィールドによる冗長で壊れやすい設計になりがちです。
本セッションではsealed interfaceを活用し、各バリアントを代数的データ型(ADT)として型安全に設計する関数型的アプローチを紹介します。null を排除し、型で制約を表現する設計によって、シンプルで堅牢なコードを実現できます。
さらに、

  • JVM バイトコードへの変換とその原理、パフォーマンス特性の分析
  • when 式による網羅性チェックがもたらすテスト容易性
  • バリアント追加時の拡張性と進化耐性
    といった実務において重要となる観点を踏まえ、単なる文法知識に留まらない設計判断の指針をお伝えします。
1
ショート(20分)
Android 中級者

Kotlin 2.0移行時のパフォーマンス計測:エンタメアプリでの実例

おうこだ

本セッションでは、月間アクティブユーザー約10万人規模のエンタメアプリにおける、Kotlin 1.9.25から2.0への移行の実例を共有します。

特に注目したいのは、Compose UIで頻繁に指摘されるUnstableCollections警告です。
13のComposable関数でList<>パラメータを使用していた当プロジェクトでは、この警告を「将来対応すればいい」と無視し続けてきました。
K2コンパイラの改善により、この問題がどの程度改善されたのか、実際の計測データを基に検証します。

主なトピック:

  • ビルド時間とアプリ起動時間の定量的な変化
  • UnstableCollectionsが引き起こすrecomposition回数の計測結果
  • ImmutableCollections導入による具体的な改善効果
  • 移行作業で遭遇した課題と解決策
2
どちらでも
Kotlin Multiplatform/Compose Multiplatform 中級者

Compose Multiplatformで真のマルチプラットフォームを目指す

kotambourine こた

Compose Multiplatform (CMP) は、KotlinのコードベースでAndroid、iOS、Desktop、WebアプリのUIを共通化できる画期的なフレームワークです。
しかし、Jetpack Compose及びKotlin Multiplatform Mobileの流れを汲むがゆえに、依然としてAndroidとiOSというモバイルの話に限定されがちです。

本セッションでは、CMPの中でも特にDesktopおよびWebに焦点を当て、Kotlinにおけるクロスプラットフォーム開発についてお話しします。

  • Compose for Desktop
  • Kotlin/JS, Kotlin/WASM
  • Compose for WebがExperimentalからAlphaに至るまでの歴史
  • CMPの便利なライブラリとフレームワークの紹介
3
ショート(20分)
ツール/エコシステム 中級者

ビルドプロセスをデバッグしよう!

yt8492 マヤミト

普段Kotlinを使った開発をしている中で、ビルドエラーに困ったことはありませんか?

単純なコンパイルエラーなら修正して終わりですが、Gradleプラグインのエラーなどは場合によっては原因の特定に時間がかかる場合があります。

また、ビルドが成功しても、ビルドした結果に疑問を持ったことはありませんか?自分はKMPでiOS向けにビルドする際、生成されたObjective-Cの型名や関数名にアンダースコアが付与されるなど、なぜこのようなビルド結果になるのかと思ったことがあります。

そんなとき、KotlinコンパイラーやGradleプラグインのソースコードに対してブレークポイントを貼り、普段のAndroidアプリ開発と同じようにDebuggerを使ってデバッグする方法を紹介します。

4
どちらでも
Kotlin Multiplatform/Compose Multiplatform 中級者

CMPでAIエージェントなデバッグツールを作ってみたい

nyafunta9858 nyafunta9858

AIエージェントの登場により自然言語ベースで複雑なタスクも自然言語で実行できるようになりました。既に多くのサービスがこの新しい世界と繋がるためMCP対応を進めており、今最も注目されている話題のひとつだと思います。
こういったシステムの登場により、人の手では再現が困難な不具合や冗長な操作手順を必要な事象の確認など、普段悩ましく感じられる課題を解消できないかと考えたことがあるのではないでしょうか。

実はKotlinでもAIエージェントなツールを開発することが可能で、その実現方法の中にはKMPに対応しているものやJVMサポートをしているものもあります。つまり、CMPを使った自然言語ベースのデバッグツール開発へ挑戦出来るんです。少しワクワクしてきませんか?

本セッションではCMPとMCPを活用したアプリ開発での知見や、実際に躓いた点などを共有出来ればと思います。

ショート(20分)
AI 中級者

フルKotlinで作る!MCPサーバー、AIエージェント、UIまで一気通貫したAIエージェントシステム

shuzo_create shuzo

KoogでAIエージェントを、Ktorと公式MCP-SDKでサーバーを、そしてCMPでUIを構築し、フルKotlinで実現するシステムの実践的なプラクティスを提示します。
ただライブラリを使うのではなく、各モジュールの責務の定義、拡張性の高い設計やKMPを活かしたIFの共通化などをどのように実現するのか。
体系的な仕組みと「Kotlinらしい」アプローチをコードと共に解説します。

■ この発表で学べること
・MCPサーバーの構築: Ktorと公式SDKを使い、外部の情報をAIに提供する方法
・AIエージェントの構築: Koogを使い、 MCPサーバーとの疎通やビジネスロジックを「ツール」としてAIエージェントから利用する方法
・UIの構築: AIからのストリーミング応答をCMPで扱う方法
・責務分離に基づいたシステム設計: 各モジュールの役割を分ける設計思想と、その具体的なパターン

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

Kotlin言語仕様書への招待 〜コードの「なぜ」を読み解く〜

yyh_gl Honda Yusuke

多くのプログラミング言語には、言語仕様書が用意されています。
言語仕様書を読むことで、その言語に対する理解を深めるのみならず、知らなかった機能を発見することもあります。

しかし、言語仕様書を読みたいと思う一方で、とっつきにくいと感じている人も多いのではないでしょうか。
本発表では、型システムや継承など普段からよく使用する機能を取り上げて、言語仕様の観点から解説します。

日頃何気なく書いているコードを体系的に理解することで、次の2点の達成を目指します。
・Kotlinのより深い理解: 表層的な使い方から一歩踏み込み、Kotlinの本質的な理解につなげる
・言語仕様書を読む意義の理解: 「なぜコードがそのように動くのか」の答えが見つかる仕様書の意義・魅力を知り、読んでみたいと思ってもらう

想定聴講者: Kotlinを業務・個人開発で使用し、より深く理解したい方(脱初級者を目指す方)

4
どちらでも
Kotlin言語・プログラミング 初級者

「関数」と「命令」で切り拓く単体テスト戦略〜デグレを防いで価値を生み続けるために〜

おはぎ

本セッションでは、どんな複雑なKotlinプロジェクトも、「関数」と「命令」の二つに分類することでテスト可能性を向上させる洞察を得ることができることを示します。

外部システムに依存しないロジックは「関数」として表現し、JUnitなどの軽量なテストフレームワークで徹底的なテストを行い、一方で外部システムとの相互作用や副作用を伴う操作は「命令」として捉え、最小限のMockフレームワークを利用し振る舞いを検証します。

Kotlinの強力な型システム(Null安全、Sealed Class/Interfaceなど)は、この設計戦略を強力にサポートします。コンパイルの段階で状態やイベントを網羅的に表現し、「関数」の純粋性を保証し、安全なリファクタリングを可能にします。

本セッションでは、Kotlinの強力な型システムと単体テストのアプローチを駆使して複雑なシステムを紐解いていく術を紹介します。

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

Kotlin Compiler Pluginで実現するCustom String Interpolation

be_hasee be-hase

一部の言語では文字列補間をカスタマイズすることで、リッチな体験を実現することができます。
例えばScalaのdoobieでは、SQLに値を埋め込むように書いても、実際には安全なplaceholder構文に変換することができます。
https://typelevel.org/doobie/

残念ながらKotlinにはこの仕組みはありませんが、Kotlin Compiler Pluginを使えば実現可能です。

そこで、Kotlin Compiler Pluginを活用することで前述したScalaのdoobieのようにSQLを書くことができる「kuery-client」というライブラリを開発してみました。
https://github.com/be-hase/kuery-client
このライブラリを題材に、Kotlin Compiler Pluginの開発事例をご紹介したいと思います。

4
どちらでも
Kotlinの活用事例(仕事や学業など) 中級者

Kotlin未経験からのサーバーサイド開発:なぜ選び、どう乗り越えたのか?

yusuke.shorei

近年、Webアプリケーションのサーバーサイドにおいて、Kotlinが採用されるケースが増えてきました。
私たちの開発チームも新プロダクト立ち上げ時にKotlinを採用しましたが、10人超えのチームにも関わらず経験者は1人もいない状態でした。

型安全性やJavaとの親和性など、Kotlinに何を期待するか取捨選択をしながら採用しました。
採用から2年、一定の成果が得られた一方で、「あの時こうしておけばよかった」「こうなるとは思っていなかった」といった悩みが生まれています。

  1. なぜ未経験チームがKotlinを選んだのか?
  2. 開発初期の意思決定(例: アーキテクチャ, FW, 言語仕様・構文の取捨選択)
  3. 採用した成果と見えてきた課題
  4. 今後の改善方針と、AIとの付き合い方

Kotlinに興味はあるがチーム導入に悩んでいる方、導入初期の悩みを持つ方の参考になれば幸いです。

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

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

h5mtakada Masatoshi Takada

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

2
どちらでも
Kotlin言語・プログラミング 中級者

プロポーザルから覗き見る、Kotlinの言語機能展望

black_bracken わらび

Kotlin 2.0が発表されて早1年、様々な機能と共に言語機能にも拡張が加えられました。
本セッションでは、そんなKotlinに直近追加された機能を振り返りつつ、公式の発表やプロポーザル(KEEPやYouTrack)を見ながら、今後加えられる可能性のある言語機能などを眺めていきます。
本セッションは、今後どのようにKotlinが変わっていくのか、その方向を知る風見鶏となることを目指します。

内容(登壇時には一部変更されている可能性があります)
・ Kotlinにおける言語機能の進化原則
・ Kotlin 2.2.0 から有効になった機能
・ Context Parameters (prev: Context Receivers)
・ Union Types for Errors
・ Explicit backing fields
・ Support immutability

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

Functional Calisthenics in Kotlin: Kotlinで「関数型エクササイズ」を実践しよう

lagenorhynque lagénorhynque/カマイルカ

書籍『ThoughtWorksアンソロジー』には「オブジェクト指向エクササイズ」(Object Calisthenics)と呼ばれる、手続き型プログラミングからオブジェクト指向プログラミングのコード設計の発想に親しむための訓練方法として(少々大胆で今や古めかしい?)ルール集が登場します。
関数型言語使い/関数型プログラミング実践者の立場から、静的型付きオブジェクト指向言語Kotlinに無理なく馴染み現実的にメリットのある形で関数型プログラミングを実践するための「関数型エクササイズ」(Functional Calisthenics)をご提案します。

構成(案)

  1. 関数型プログラミングの基本的な発想と道具
  2. 関数型プログラミングのコード設計に親しむための「関数型エクササイズ」(vs 「オブジェクト指向エクササイズ」)
  3. Kotlinらしい実践のしかた
2
ショート(20分)
AI 中級者

AIを活用したJavaからKotlinへの段階的リファクタリング手法

maehara_08 Maehara

本セッションでは、Javaで構築されたコードベースをKotlinへ段階的に移行する際に、AIをどのように有効活用できるかを具体的に解説します。単なる機械的なコード変換にとどまらず、言語仕様や設計上の意図を考慮しながら、実用的かつ精度の高い移行を実現するために取り組んだ工夫を紹介します。AIによる自動変換の利点と限界、活用時の注意点を押さえた上で、実際のプロジェクト事例を交えながら、コードの安全性や可読性を損なわずにリファクタリングを進めるための実践的なテクニックとノウハウを共有します。

2
ショート(20分)
Kotlin言語・プログラミング 初級者

Kotlin と React/Next.js を行き来して感じた UI とロジックの距離感

kyappamu たかまてぃー

JavaバックエンドとReact/Next.jsでのWeb開発を経て、Kotlinの世界へ。
サーバーサイドやAndroid開発を通じ、ReactとKotlinでロジックの置き場所や設計思想が大きく異なる点に興味を持ちました。
ReactではHooksなどでロジックがUIに寄る傾向にある一方、Kotlinは責務ごとにロジックを分離し、UIから遠ざける傾向を感じています。

本セッションでは具体的なコード例を交え、ReactとKotlinの設計思想の違いからロジックとUIの置き場所を考察します。フロントエンド開発者がKotlinに入門する上で活かせた知見やつまづきをシェアし、Kotlinの魅力や今後の開発に役立つヒントを持ち帰っていただくことを目指します。

対象者

  • 最近Kotlinを触り始めたフロントエンドエンジニア
  • サーバー/モバイル領域に興味があるフロントエンドエンジニア
2
どちらでも
Kotlin言語・プログラミング 初級者

アノテーションの内部実装を理解して、自分だけのアノテーションを作ろう

monaka_12 こたろう

Kotlinのアノテーションは日々の開発で触れているものの、その内部実装や作成方法を深く理解している開発者は多くありません。本セッションでは、アノテーションの基本概念から実際の活用事例まで、実践的な内容で学習できます。

まず、既存のアノテーションの内部実装を解剖し、どのような仕組みで動作しているかを解説します。次に、KSPを使った現代的なアノテーション処理の実装方法を学び、kaptからの移行メリットも説明します。

後半では、実際のカスタムアノテーション作成例を複数紹介します。ログ出力の自動化、データ検証、コード生成など、実務で即活用できる具体的なコード例を通じて、メタプログラミングの威力を理解できます。

参加者は、アノテーションの仕組みを深く理解し、自分のプロジェクトに合わせたオリジナルアノテーションの設計指針を身につけられます。開発効率を向上させるKotlinの力を発見しましょう。

1