Java や Kotlin がほとんど普及していなかった会社で、本格的にサーバーサイド Kotlin を導入し全社的な標準技術として推進するために行った取り組みや、苦労した話を、技術的な面に焦点を当てて解説します。
最新の Kotlin 事情に合った技術選定や、新規 Kotlin プロジェクトを短期間で立ち上げ可能な環境整備を、実際に社内で行われた事例を基に一例としてご紹介します。
技術選定
環境整備
技術サポート
複雑な状態遷移、手続き的なロジック…これまでのAI開発の常識は、「自律型AI」の登場で過去のものになろうとしています。本セッションでは、ゲームAIの世界で生まれたゴール指向アクションプランニング(GOAP)という強力な設計思想と、それをKotlinでエレガントに実装したエージェントフレームワークEmbabelを紹介します。
GOAPは「何をすべきか(How)」ではなく「何を達成したいか(What)」を定義することで、エージェントが自律的に行動計画を立てることを可能にします。この動的なアプローチは、変化し続けるビジネス要求に対応するエンタープライズAIアプリケーションに革命をもたらす可能性を秘めています。
セッションでは、GOAPの基本概念から、EmbabelがKotlinのDSL構築力、コルーチン、型安全性をいかに活用し、この複雑な自律性を宣言的かつ堅牢に実装しているかをデモで解説します。
Model Context Protocol (MCP) の登場でAIと共存するアプリケーションへ変化しつつある今日において、
事実を残すことの大切さ、データの構造化・品質などが注目されています。
そんな時代にも活きる仕組みの一つとしてCQRS + Event Sourcingがあります。
本セッションでは サーバサイド Kotlin と Apache Pekko を用い、
CQRS + Event Sourcing で蓄積した「事実」を MCP 経由で AI に供給し、
活用するための道を実現する方法について解説します。
本セッションでは次の内容なども取り扱います
Projectionの活用やMCP Resource / Tool、推論結果の活用・ドリフト検知など
*発表時には内容が古くなっている可能性はあります
「rememberやderivedStateOfを使っているのにUIがもたつく…」そんな経験はありませんか?
パフォーマンス問題の多くは、再コンポーズの仕組み、特にComposition・Layout・Drawの3フェーズと、コンパイラが賢く再描画をスキップするための鍵となる「安定性(Stability)」への深い理解に、解決の鍵があります 。
本セッションでは、この「安定性」の仕組みを深掘りし、不要な再コンポーズを根本から防ぐ方法を解説します。Compose Compiler Metricsも活用しながら、不安定なクラスを特定・修正し、真に高速なUIを実現するための具体的なテクニックを学びます。
Kotlinでサーバーサイドアプリケーションを開発する際、Springは有力な選択肢の一つです。
今年はJetBrainsとの戦略的パートナーシップも発表され、さらにKotlinでの利用が活発になることが予想されます。
また現在のSpringは通常のサーバーサイド開発だけでなく、AIの使用やServerlessについてのサポートもあります。
そこで本セッションでは
・最新のSpring BootでのKotlinサポート
・Spring AIによるAIサービス連携
・Spring Cloud FunctionでのServerless開発
などを中心に、様々なシチュエーションでのKotlinのサーバーサイド開発のやり方について紹介します。
実際にこれらを活用して作成したアプリケーションを使いながら、解説していきます。
これからサーバーサイド開発の技術選定をする方の一助になればと思います。
私たちは、自社プロダクトのバックエンドを100% Kotlinでフルスクラッチ開発し、全面リニューアルを実現しました。
PoCや部分導入ではなく、Kotlinを採用したリアルシステム開発の結果を総括してお届けします。
特に設計方法として、DDDとクリーンアーキテクチャをKotlinと組み合わせることは非常に魅力的な選択肢であり、ぜひノウハウを紹介させてください。
プロダクトとしては、全国から収集したご家庭のテレビ視聴ビッグデータを解析してユーザに提供しており、toC向けとして "TVAL now" も公開しています。
Kotlinで本格的なプロダクト開発を検討中の方にとって、技術選定や体制づくりのヒントになる内容をお話しします。
長年にわたりKotlinを愛でてきた皆さんの中には、慣れ親しんだ「古き良き」書き方で開発を進めている方も多いでしょう。私もその一人です。しかしKotlinは進化し、最新バージョンでは設計を大きく改善できる新機能が豊富です。このセッションでは、皆さんのKotlin知識をアップデートし、最新機能がもたらす設計改善の可能性を探ります。
特に、使い分けに悩む数種類ある「class」について、それぞれの特性とユースケースを詳解します。
このセッションを通じて、「古き良き」良さを活かしつつ最新機能で設計を改善し、より質の高い開発を進めるヒントを得られるはずです。
Model Context Protocol (MCP) は、AI agentと外部を接続するためのプロトコルです。 JetBrainsにより公式Kotlin SDKがリリースされ、KotlinでもMCPサーバー/クライアントの実装が可能です。
本セッションでは、まずMCP Serverとは何かを説明した後、公式Kotlin SDKの内部実装を丁寧に解説します。基本的な技術の積み重ねで実現されています。
前半ではMCPの概要とユースケースを、後半では具体的な実装を扱います
・MCP Serverの役割と連携方法
・MCP Server プロトコルの基本構造
・Kotlin SDKのアーキテクチャ, Ktorを使ってる
・実際のMCP Server実装の解説
実際に動くコード例を交えながら、MCPをKotlinで扱う方法を基礎から実装まで体系的に解説します。
Kotlinでは、ベースとなるJavaで書かれたものを含めて、ライブラリが定義したGeneric Typeを安全にユーザー定義型と組み合わせて使えます。
皆さんも、日常的に List<User>, Map<ProductId, Product> 等の型を使ったコーディングを行っていると思います。
本セッションでは、この Generic Type について、型を越えたメソッドの再利用性以外の部分である、実際の継承関係にあるクラスと組み合わせたときの代入可能性を見ていきます。
タイトルの例は、まさに Java では×、Kotlin では○という、Kotlin をより安全たらしめる読み取り専用 List の例となっています。
このような活用について概念と実例の両方を理解し、Generics をより安全に利用・作成できるようになることをセッションのゴールとしています。
kotlin-metadata-jvmは、コンパイルされたKotlinクラスからメタデータを読み取るツールです。
kotlin-reflectよりも軽量で、よりKotlinに適したメタデータの取り扱いを行うことができます。
本セッションでは、kotlin-metadata-jvmの基本的な使い方と、実際の活用例を紹介します。
Metadataの概要を理解することでありがたみが伝わる、Binary Compatibility Validatorの「ビルドが壊れた」検知に触れます。
本セッションを通してkotlin-medadata-jvmを使ったメタプログラミングをより身近に感じてもらうことを目指します。
トーク予定内容
多くのKotlinプロジェクトで導入されるLinter/Formatter。
しかし、導入後に「警告が無視される」「設定が放置される」など、形骸化していませんか?ルールが機能しない状態は、一貫性を損ない、レビューコストの増大や技術的負債の原因となります。
Linterは一度設定して終わりではありません。チームの成長や議論を反映し、共に育てていく「品質基盤」です。
特にAI Agentによるコード生成が普及し始めた今、チームの合意を反映したLinterは、プロジェクトの品質を守るガードレールとなります。
本セッションでは、どうやって設定するか?からはじめ、放置された設定の見直し方、段階的な改善方法、Kotlinの言語機能を活かすCustomLintの活用、そしてチームの「理想のコード」を定義し、守る方法を探求します。
継続的にコード品質を高めるために、改めて設定を見直してみませんか?
Gradleでも使われているKotlin DSLはKotlinを利用してコンフィグなどのプロパティを記述することができる機能です 。
Kotlin DSLの一般的な利用方法と、変則的なKotlin DSLを使いこなすことでできることでできることを、実例を交えてお話ししたいと思います。
このセッションでは具体的に以下のことについてお話しします。
AIコーディングエージェントの真価は、言語固有の特性をどれだけ深く理解し、開発環境と統合できるかにあります。本セッションでは、JetBrains Junieの技術アーキテクチャを解剖し、IDE統合型アプローチがもたらす開発体験を技術的観点から解説します。
技術的に深掘りする内容
・Mellum LLMアーキテクチャの詳細
・IDE統合によるコンテキスト理解
・Kotlin開発における実践的活用方法
セッションでは、実画面を共有しながら、Junieがどのようにタスクを分解し、IDEの機能を活用して実行するかを可視化します。
また、他のAIツール(GitHub Copilot、Cursor)との技術的な比較を通じて、IDE統合型アプローチの優位性と現在の限界についても率直に議論します。
参加者は、AIエージェントの内部動作を理解し、最大限の価値を引き出すための具体的な知識を得られます。
Android Viewは既に公式にメンテナンスモードに入り、Jetpack Composeが次世代UIの標準とされています。しかしXMLレイアウトが膨大で部分移行が停滞し、全面導入を躊躇するチームも多いです。本セッションでは、既存Viewを止めずリスクを最小化しつつComposeの利点を即享受できる「ミニマムスタート戦略」を技術・組織運用の両面から具体的かつ実践的に紹介。技術負債を解消しつつ、モダンなUI開発の第一歩を踏み出しましょう。Compose移行の壁を突破し、組織で開発効率とUXを飛躍的に向上させます。
【セッション内容】
・新規画面/機能をComposeで実装
・ViewとCompose共存パターン
・Compose Preview/ホットリロード活用
・主要UIコンポーネント優先置換
・Material3テーマ共通化とAccompanist導入
・移行プロジェクトの組織戦略
私はKotlin愛好会、Server-side Kotlin Meetupという2つのKotlinコミュニティの運営に携わっています。
いずれも1〜3ヶ月程度のスパンで定期的に勉強会の開催をしていて、これまで多くの方とお話したり、様々なセッションを観てきました。
そこで2つのコミュニティの運営を通して知っている
・どんな雰囲気の場所か?
・どんなことを話しているのか?
・どういう属性の人が参加しているのか?
・運営メンバーってどんなことしてるの?
といった話を通じて、Kotlinコミュニティがどんな場所なのかや、コミュニティの意義や楽しさについて紹介します。
「勉強会に興味はあるけど、雰囲気がわからず不安・・・」そんな方に向けて、コミュニティのリアルな姿をお届けします。
またこのセッションを通して、聴講者のみなさんのコミュニティ参加や、新たな出会いのきっかけを作れればと考えています。
Server-side KotlinはKotlin活用におけるメインフィールドのひとつです。しかしプロジェクトが成長するとコンパイルやテストが低速化し、CI/CD体験が悪くなり、プロジェクト改善が回りにくくなります。CIが高速に実行できることは生成AI導入のためにも必要であり、今後も高速なCI/CDは必要とされます。
このセッションでは筆者がGradle, Koin, Ktor, KSP, OpenTelemetry (javaagent), kotest, Testcontainers, dokka, jibといった一般的な技術を採用したプロジェクトでGitHub ActionsでCI/CDを高速に実行するために、Develocityをはじめとした技術をどのように適用し、それがどのように高速化に貢献したかを紹介します。