ショート(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分)
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分)
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 を用いたエラーハンドリング
1
ショート(20分)
Webバックエンド/サーバサイド 初級者

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

kroyeeg Ogawan

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

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

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

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

もう形骸化させない!detektカスタムルールで守るコーディング規約

chronotrg shuhei shitara

チームのコーディング規約、形骸化していませんか?
コーディング規約はチーム開発において不可欠ですが、曖昧なルール、チームメンバーの変化、レビューコストの増加など、コーディング規約を運用するのには様々な課題があります。

本セッションでは、KotlinのLinterであるdetektのカスタムルール機能を利用してコーディング規約を運用する方法について以下の内容を紹介します。
・コーディング規約を取り巻く課題
・プロジェクト独自の規約を直感的なKotlinコードで明文化する方法
・実際に運用してみて効果的だったルール

このセッションを通じて、明日から開発生産性の向上に取り組める実践的な方法を得ることができます!

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

Compose AnimationのAPIを使ってレイアウト変更を自在にアニメーションする

hiroaki08181359 hiro(Nosho Hiroaki)

直近のCompose Animationのアップデートで、Modifier.animateBoundsが追加されました。
レイアウトのアニメーションが簡単に実装できるようになっています。
このアニメーションはアプリのUIを美しくし、ユーザー体験を向上させます。

本セッションは特にModifier.animateBoundsと、その基盤となるLookaheadScopeを深掘りし、
多様なレイアウトの変化をアニメーションさせる方法を紹介します。

・Compose Animationの新機能・動向
・Modifier.animateBounds、LookaheadScopeの概要と使い方、しくみ
・movableContentOfなどと組み合わせて多様なレイアウト変化をアニメーションする方法
・Modifierの適用順などの注意点

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

EMだった私がサーバーサイドKotlinに初挑戦 ~実践と学びの記録~

ichien178 ichien

エンジニアリングマネージャー(EM)からエンジニアに戻り、初めてサーバーサイドKotlin開発に挑戦した実践と学びの記録です。
多言語でのプロダクト開発経験を持つKotlin初心者の私が、EM経験で培ったマインドを活用しながら、Kotlinやそのエコシステムをキャッチアップし、プロダクト開発にコミットした過程を紹介します。

以下のトピックを中心にお話しします。

  • 高速な学習フィードバックループの構築方法
  • Kotlinとライブラリの効率的な習得術
  • サーバーサイドKotlinとプロダクトの親和性
  • プロダクト課題の発見から解決までの実践
  • ペアプロによる知識共有の効果
  • AI活用の具体的な実例

これからサーバーサイドKotlinに挑戦する方へ、
苦戦したことも含めた実体験から「やってみたい!」と思える実践的なヒントをお届けします。

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

その実装漏れ、コンパイルエラーで表現してみないか?

okbee

既存の機能を拡張する際に、手順書や仕様書を頼りに実装したことはありませんか?
しかし、ドキュメントはすぐに陳腐化します。コードこそが最も正確で信頼できる唯一のドキュメントです。

コードが実装漏れを教えてくれれば、手順書や仕様書は不要になるはずです。その表現方法の1つとしてコンパイルエラーを用いることができます。
もし、実装漏れによってコンパイルエラーになれば、コードを実行すること・本番環境にリリースすることはできません。

本セッションでは、コンパイルエラーによって実装漏れを検知するための設計と、その実践事例、トレードオフについて紹介します。

キーワード
・コンパイルエラー、直和型、網羅性、interface、設計

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

Spring AI × Kotlin で構築するMCPサーバー

koneko59 Taiga Kishimoto

本セッションでは、生成AIの活用に特化した新しい仕組み「Model Context Protocol(MCP)サーバー」を、KotlinとSpring AIを用いてどのように構築したかをご紹介します。
MCPは、AIアプリケーションと外部のデータソースやツールを連携させるための標準化されたプロトコルであり、AIアプリケーションの柔軟性と再現性を高める注目のプロトコルです。
セッションでは、Spring AIを実際に使用した際の所感や、MCPサーバーとしての活用方法に加え、設計方針や実装上のポイントについて解説します。
次世代AIアーキテクチャの実践事例として、今後MCPの導入を検討している開発者の皆様に、具体的なヒントをお届けします。