ショート(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
ショート(20分)
ツール/エコシステム 中級者

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

yt8492 マヤミト

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

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

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

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

4
ショート(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で扱う方法
・責務分離に基づいたシステム設計: 各モジュールの役割を分ける設計思想と、その具体的なパターン

ショート(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
ショート(20分)
ツール/エコシステム 中級者

KDocとDokkaでいい感じのドキュメンテーション生活を送る

n_seki_ uwaseki

ライブラリについて知りたい場合、APIドキュメントを読めば手早くライブラリのインターフェイスを俯瞰することができます。
Kotlinで実装されたライブラリも例外ではなく「いい感じのAPIドキュメント」が公開されています。
例) OkHttp https://square.github.io/okhttp/5.x/okhttp/okhttp3/

実はKotlinではDokkaというライブラリを使うことで「いい感じのAPIドキュメント」をかんたんに作成することができます。

このセッションでは実際に業務で得た知見を中心に、Kotlinコードのドキュメンテーションに用いられるKDocの文法を紹介し、そこからDokkaがどのような公開用ドキュメントを生成できるのか解説します。

ライブラリ利用者のことを考えた、いい感じのドキュメンテーションの方法を一緒に学んでいきましょう!

1
ショート(20分)
Android 初級者

間違いを未然に防ぐ Kotlin 設計パターン入門

tsumuchan_jp つむちゃん

Kotlin を用いたプロダクト開発で以下のようなうっかりミスを経験したことはありませんか?

  • メソッドに Int 型の引数が2つあり、引数の順番を間違えて渡してしまった
  • enum や sealed class の when 式で分岐漏れが発生した
  • 本来参照してはいけないモジュールのクラスをいつの間にか参照していた

Kotlin の型システムや修飾子を正しく活用することで、こうした「うっかりミス」や「設計上の逸脱」をそもそも発生させない設計が可能です。

本セッションでは、Kotlin の型システムや修飾子(internal, private など)を活用し、間違いを事前に防ぐ手法を紹介します。

2
ショート(20分)
AI 初級者

AIとの協業で実現!レガシーコードをKotlinらしく生まれ変わらせる実践ガイド

nishimy432 nishimy

私たちは、レガシーコードのリファクタリングを通じてKotlinが持つ強力な言語特性を最大限に活かすための要素を模索し、「Kotlinらしいコードとは何か」という本質的な問いに向き合ってきました。

本セッションでは、AIを強力なパートナーとして活用し、単に動くコードを生成するだけでなくレガシーコードを「Kotlinらしい」真にモダンなコードに置き換える実践的なアプローチを深掘りします。

特に重要なのが、高品質な「Kotlinらしいコード」を生成させるための効果的なプロンプトです。本セッションでは、実際に試行錯誤を通じて得られた効果的な対話の例や、改善点、そしてそれによって生成されたコードの比較を具体的に示します。これにより、参加者の皆様が自身のプロジェクトでAIを用いてコードを刷新する際の実践的なヒントとノウハウを提供し、コードを生まれ変わらせる一助となることを目指します。

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

累計5000万DLサービスの裏側 - LINEマンガのKotlinで挑む大規模Server-side ETLの最適化

omelette_alpaca Akito Ono

LINEマンガは累計5000万ダウンロードを超え、日々多くのユーザーにレコメンデーションを提供しています。 一見シンプルなバッチ処理も、この規模になると、億単位のデータを高速に連携する必要があるなど、全く別の課題が生まれます。 私たちは、これらの大規模データ処理を、Kotlinで実装したETLバッチパイプラインで支えています。

本セッションでは、この大規模ETLシステムの構築で直面している課題と、改善に向けたリアルな試行錯誤を共有します。

本セッションのポイント:

  • 大規模データ処理における現実的な課題
  • Kotlin Coroutines/Channel/Flowを用いた様々なトライ&エラー
  • 失敗と成功から得られた実践的な指針

実サービスの試行錯誤を通じて見えてきた、Kotlinによる大規模データETLのリアルをお伝えします。

1
ショート(20分)
Android 中級者

RFC 9457 に準拠した Kotlin エラーハンドリング入門

tick_taku77 tick-taku

モバイルアプリ開発において API など外部サービスとの連携は不可欠な要素です。
しかし、その連携で避けて通れないのがエラーハンドリングであり、より堅牢で保守性の高いアプリケーションを構築する鍵となるのが RFC によって標準化されたエラー表現の活用です。
RFC 9457 "Problem Details for HTTP APIs" は、エラー情報を構造化された形で交換するためのチーム間における「共通言語」を提供してくれます。
この RFC 9457 に準拠した API のエラーハンドリングについての Android/Kotlin における実装例を紹介します。

内容

  • RFC とは?
  • RFC 9457 に定義されるフォーマットの紹介
  • Kotlin, OkHttpClient, Retrofit, Dagger を用いたエラーハンドリング
ショート(20分)
Webバックエンド/サーバサイド 初級者

JetBrains AIを味方に:Server Side Kotlin開発の生産性を加速させる実践知

kroyeeg Ogawan

サーバーサイドKotlin開発において、JetBrains AI(Junie + AI Assistant)は設計・実装・調査・ドキュメント整理など、あらゆる開発フェーズを加速できます。
私自身、導入前は3日かかっていたタスクが1日で終わるといった生産性向上を実感しています。

一方で、「動作が重い」「使いこなせない」といった声も少なくなく、ツールの性能以前に「どのように使うか」が共有されていない現状を感じています。

本セッションでは、JetBrains AIを日常開発にどう組み込み、JunieとAI Assistantをどう使い分けているかを実例とともに紹介します。
試したが合わずに離脱した方にも、再挑戦のヒントを提供します。

4
ショート(20分)
ツール/エコシステム 中級者

kotlin-jupyterで広がるKotlinの世界 - インタラクティブな実行環境がもたらす新しい開発体験

toliner_ トリナー

Kotlinの開発環境として、IDEやエディタ以外の選択肢があることをご存知でしょうか?

本セッションでは、Jupyter Notebook上でKotlinを実行できる「kotlin-jupyter」を中心に、インタラクティブなKotlin実行環境の魅力と活用方法を紹介します。
kotlin-jupyterは、コードの実行結果をその場で確認しながら開発を進められる環境で、グラフやテーブルなどの視覚的な出力も簡単に扱えます。また、コードと実行結果を一つのドキュメントとして保存・共有できるため、チーム内での知見共有や技術検証の記録にも最適です。

主に取り扱う内容 (予定)
-各種環境でのkotlin-jupyterの導入方法や基本的な使い方

  • 実務での利用例を元にした、kotlin-jupyterの実践的な活用方法やその魅力
  • Kotlinのインタラクティブ実行環境の比較
1
ショート(20分)
Kotlin Multiplatform/Compose Multiplatform 中級者

Androidプロジェクトを簡単にCross Platformプロジェクトに変えてみよう

Androidプロジェクトを簡単にCross Platformプロジェクトに変えてみよう(Kotlin Multi Platform)

Androidのみのプロジェクトを利用して簡単にIOSのアプリもビルドできるようにしてみよう。

Androidプロジェクトにいくつか準備ができていれば、意外と簡単にIOSにもリリースできます

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

ライブラリがスラスラ読める!Kotlinステップアップ言語機能

hiroaki08181359 hiro(Nosho Hiroaki)

Kotlinは簡潔な言語であり、初学者でも基本的な文法は問題なく理解できると思います。

しかしライブラリやOSSの内部実装を読んでいると、普段自分では書かないような知らない文法が出てきて戸惑ったり、自分はKotlinの力を活かしきれていないのではと感じることもあるでしょう。

そこで本セッションでは、Kotlinをより深く知るために、押さえておきたいKotlinの言語機能を紹介します。
その際はコード例、図表、背景、使い所を交えながら分かりやすさを重視して解説します。

これらの機能を理解すれば、OSS等のコード読解やデバッグが容易になり、保守性・パフォーマンスの高いコードを書くための大きな助けとなるはずです。

内容
・ジェネリクス(in/outなど)
・インライン化(inline, reifiedなど)
・委譲(Delegation)
など

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

Kotlin Java相互理解: デコンパイルで探る動作 の仕組み

Yuki Matsuura

Kotlinでは、val / var、sealed class、suspend 関数、when 式など、Javaにはない独自の構文が存在します。では、それらが実際にどのように動作しているのか、Javaに変換されたコードで確かめたことはありますか?

このセッションでは、KotlinのコードをJavaにデコンパイルして比較することで、言語仕様の裏側を一緒に読み解いていきます。

取り上げるトピック例:
・val と var の違いは、Javaではどう表現される?
・sealed class の継承制限はどのように実現されている?
・suspend 関数の正体は?
・when 式はJavaでどう書き換えられる?
・Kotlinの List / MutableList の中身は何者?

2
ショート(20分)
ツール/エコシステム 初級者

はじめてのKotlin RPC 〜リモート通信の仕組みを学ぼう〜

uesholib uesho

近年のマイクロサービスアーキテクチャにおいて、サービス間通信の信頼性と効率性はますます重要になっています。本セッションでは、Kotlinを使ってRPC(Remote Procedure Call)通信を実現する方法を初心者向けに解説します。gRPCの概要やProtocol Buffersによるインターフェース定義、Kotlinでの実装方法を、実例を交えてわかりやすく紹介。RESTとの違いや、RPCのメリット・デメリットにも触れながら、Kotlin開発者が押さえておきたいリモート通信の基本を学びます。

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

Kotlin 2.2が切り拓く:コンテキストパラメータで書く関数型DSLと新しい依存管理のかたち

_knih knih (Kenichi Suzuki)

Kotlin 2.2で安定化されたコンテキストパラメータは、関数型スタイルによるDSL設計と依存管理の在り方を根本から変える言語機能です。
このセッションでは、従来のDIフレームワークに頼らずに、文脈に応じた型安全な設計を可能にする新しい開発スタイルを、実践的なコード例と共に紹介します。

たとえば、設定、認証、ログ、トランザクション管理など、アプリケーションに不可欠な「コンテキスト」は、従来しばしば暗黙的でテストしづらい依存として扱われてきました。コンテキストパラメータを活用することで、それらを明示的かつ再利用可能な文脈依存の値として、安全に受け渡すことが可能になります。

本セッションのゴールは、Kotlinの型とコンテキストでコードを制御するという新しいパラダイムを体感し、従来の設計から脱却して、より堅牢で理解しやすいコードベースへ進化する方法を学んでいただくことです。