ショート(20分)
KMP(Kotlin Multiplatform) 中級者

Kotlin Multiplatformで実現するクリーンアーキテクチャ

horitamon Hori Tamon

エンジニアとしてある程度のキャリアを積んだときに多くの方が出会うであろう、「Clean Architecture 達人に学ぶソフトウェアの構造と設計」で語られる設計手法について、Kotlin Multiplatformを使用してアプリを実装する際にどのように利用できるのかを考えていきます。
MVC、MVVMといったアプリ開発でも用いられる設計手法と比較して語られることが多くありますが、実際は方法の違いはあれど、思想に多くの共通点があります。
本セッションは実際に用いられる手法をベースに、クリーンアーキテクチャとして語られる概念がどのようなものであるのかを、KMPのコードベースでお話ししていきます。

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

Kotlinで実現するモバイルアプリとサーバーサイドの統合プッシュ通知システム

arus4869 syam

プッシュ通知は、ユーザーとのコミュニケーションを強化し、アプリケーションの価値を高める重要な機能です。
このセッションでは、モバイルアプリとサーバーサイドの両方をKotlinで実装し、プッシュ通知についての基本的なプロセスを紹介します。
Androidでのプッシュ通知の設定方法から始め、Kotlinを用いたシンプルなサーバーサイドの通知送信の例までをステップバイステップで説明します。

またFirebase Cloud Messaging (FCM) の基本的な使用法を解説し、実際の通知の設定、テスト、デバッグ方法についても紹介します。

  • KotlinとFCMを使用したプッシュ通知の基本設定
  • シンプルなサーバーサイドの通知送信ロジックの作成
  • モバイルアプリでの通知のハンドリングとユーザーフィードバックの収集

このセッションは、プッシュ通知をこれから学び始める方に最適です。

ショート(20分)
KMP(Kotlin Multiplatform) 中級者

失敗から考えるKotlin Multiplatform導入 今ならどうする?

horitamon Hori Tamon

株式会社Voicyでは、かつてモバイルアプリの新規機能開発時にKotlin Multiplatform(KMP)を導入することに挑戦しました。
実際にAndroid版で使用するまで開発を進めましたが、最終的にiOS版では導入せず、最終的にAndroid版からもKMPのコードを取り除くに至っています。
本セッションではこの判断の経緯をお話ししながら、今導入するならどうするか?の視点でも考えつつ、お聞きの方がKMPの導入を検討する上で参考にしていただきたい項目をお伝えしていきます。

セッション内要:
・Kotlin Multiplatformの導入に至った経緯
・運用方法とその課題、iOS版への導入見送りの理由
・機能を保ちながら、Android版のKotlin Multiplatformコードを取り除く方法
・これから導入を検討するには何を考えるか?

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

Kotlinを用いたDSLによる宣言的なサーバーサイド開発

secret_key_base kazuki tanida

Kotlinはドメイン知識をコードとして表現するのに優れた言語だ!

実際そう感じた事例として既存の複雑なコードをKotlinの機能を用いてDSL的に宣言的に表現することができました。

その結果、開発者にコードの意図が伝わりやすくなるだけでなく重複処理を省くことや無駄な処理を省くことによってプロダクトの機能の大幅は速度改善に寄与できました。

このセッションではKotlin DSLを用いたサーバーサイド開発の改善について実例に沿った内容でご紹介していきます。

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

Kotlin/NativeでのサーバサイドKotlin開発

u6ec9 かとこう

Kotlin/NativeはKotlinの文法でバイナリが吐き出せるという夢のような技術ですが、実際の実装に当たっては辛く厳しい道のりが待ち受けています。
本セッションでは、Kotlin/JVMを使用してサーバサイド開発を行っている開発者を対象に、Kotlin/Nativeのサーバサイド分野での可能性を以下のような内容から探ります。

・VMが不要になることの利点
・C言語ライブラリとの連携方法
・Kotlin/Nativeにおける制限
・SSL通信の統合

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

Kotlinライブラリの運用を楽にするコツ

at_sushi_at Mori Atsushi

アプリケーション開発をしていて、何か素敵なアイディアが浮かんだら、ぜひそれをライブラリとして公開してみましょう。
一方で、ライブラリの運用には思ったより手間暇がかかります。

デプロイのフローやドキュメントの更新等、自動化できるものはできる限り自動化しましょう。
このセッションでは、私が実際にいくつかのライブラリを公開した経験をもとに、ライブラリを公開する方法から、それを楽に運用するためのコツについて紹介します。

  1. ライブラリ用のモジュールを作る
  2. ローカルにデプロイしてみる
  3. Maven Centralに公開する
  4. READMEを書く
  5. GitHub Actionsでデプロイを自動化する
  6. リリースノートを自動で作成する
  7. 依存関係を自動で更新する
  8. Dokkaでコードからドキュメントを自動生成する
  9. Docusaurusでリッチなドキュメントを作る
2
ショート(20分)
Kotlin言語・プログラミング 中級者

KSPから入るKotlinコンパイラ

kokoakuma

K2コンパイラによりKotlinコンパイラへの注目度が増してきています。しかし、業務を始めたばかりの状態でKotlinコンパイラ全般に対する理解を深めるのは中々に大変な道のりです。
この発表では、KSPのコード生成の仕組みを追いながら、Kotlinコンパイラを理解する入り口に立つことを目標としています。

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

LLM を含む機械学習を使用した実際的なソフトウェアにおける Kotlin と Python の分界点

baseballyama_ 山下 裕一朗 (baseballyama)

私は、株式会社フライル (以下弊社) で働いています。弊社はプロダクトマネジメントやVoC分析を効率化するSaaSです。
弊社はバックエンドを全てKotlinで実装しています。
弊社はこれまで、LLMを含む機械学習を使用した機能を10個リリースしました。
これらの機能には、単にLLMを呼び出すだけの機能もあれば、クラスタリングアルゴリズムを使用する機能もあります。

これらの機能を開発する際、技術的な論点として、「Pythonで実装するべきか」があります。
Pythonを選択するメリットとして、クラスタリングなどの機械学習処理が非常に充実している一方、
デメリットとして、PythonとKotlinの連携が必要になったり、そもそもPythonに慣れているエンジニアが少ない、などがあります。

このセッションでは、KotlinとPythonの分界点について、自社での経験を共有します。

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

Kotlin Generics徹底解説

h5mtakada Masatoshi Takada

Kotlinでよりアドバンスな抽象化を記述する際には、ジェネリックスの使い方をしっかりと把握しておく必要があります。
本セッションではジェネリクスの強力な機能を広く深く探求し、型パラメーター、変性、そしてreified genericsを含む、Kotlinの型システムを強化する要素を詳細に説明します。

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

初めてみよう!Konsistでコードの標準化

h5mtakada Masatoshi Takada

Konsistは、Kotlin言語用に特化されたstructural linterです。共通のコーディング規約の順守を保証することで、コードの可読性と保守性を向上させることを目的としています。
また、Konsist APIはJUnit4、JUnit5、Kotestなどの主要なテストフレームワークともスムーズな統合ができ、KMPにも対応可能です。

このセッションでは主に

  • Konsistとは?
  • ktlint, detekt, ArchUnitとの比較・違い
  • Konsistを用いたUnitテストやAPI Guidelines for Jetpack Composeルールの作成方法サンプル

の流れでKonsistを一緒に理解していき、Konsistの魅了を紹介していきます!

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

Kotlinを用いたDSL的な設計手法と使用上の注意

kohii00 Kohei Ishikawa

この発表では、Kotlinのコードでドメイン上の意図や意味を表現するテクニックとして、DSL(のような)手法を紹介します。
ビジネスロジックをDSLとして実装することでコードの意図や構造を明確に表現でき、可読性や保守性が向上します。一方で、設計には常にトレードオフがあるため上手に設計判断を行う必要があります。

発表ではKotlinの言語機能を活用したコード例を示しながら、設計の考え方やトレードオフについて話します。
さらに株式会社ヘンリーでの事例も紹介し、DSLを活用する際の留意点を共有することで、聴講者がこのような設計を行う際の指針を得られることを目指します。

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

Detektのカスタムルール作成入門

Yushi Okoda

DetektはKotlinの静的解析ツールであり、コード品質を担保するためのルールを提供しています。
しかし、開発をしていると、既存のルールだけではカバーしきれない場面も出てくるのではないでしょうか?
(例えば、Modifier.Paddingの引数の順番をstart/top/end/bottomに統一するなど)

このセッションでは、Detektのカスタムルールを作成する方法に焦点を当て、具体的な手順を示します。

現状の発表の内容の構想は以下のとおりです

  1. Detektの概要
  2. カスタムルールの作成手順
  3. カスタムルールのテスト方法
  4. カスタムルールの実際の適用方法
4
ショート(20分)
Kotlin言語・プログラミング 初級者

意外な落とし穴? 気をつけるべき日時情報の扱い方

yyh_gl Yusuke Honda

Kotlin(Java)では日時情報を簡単に扱うためのAPIが多く提供されています。
簡単に扱えるがゆえに間違った使い方をすると、思わぬ不具合を引き起こします。

本セッションでは、業務で実際に発生した日時情報に関する不具合を紹介し、
その不具合を通して弊チーム内でどのような対策をしているのか話します。

トピックは以下のとおりです。

・Kotlinの日時に関する機能を紹介
→ kotlinx-datetimeの紹介
→ Javaとの違いはある?
・業務で実際に起きた不具合の紹介
・日時情報に関するチーム内ルール
→ 日時情報の表現方法
→ 期間の扱い方

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

Kotlin Language Specificationを読もう ~ Keywordから入門する言語仕様の世界~

yyh_gl Yusuke Honda

多くのプログラミング言語は、Language Specification(言語仕様)がドキュメント化されており、だれでも閲覧できます。
Kotlinも例外ではありません。
言語仕様を読むことで、その言語に対する理解が深まり、知らなかった機能を発見することもあります。
しかし、言語仕様=とっつきにくいものと感じている人も多いのではないでしょうか。

本発表では、Kotlin Language Specificationで定義されているKeyword(予約語)を取り上げます。
いっしょにKeywordを見ていく中で言語仕様を読み解く楽しさを共有できればと思います。

トピック
・Language Specification とは
・KotlinのKeyword(予約後)を見てみる
→ Keywordをいくつか取り上げて深堀り
・Keywordについて読み、言語仕様を学ぶ意義(=楽しさ)を考える

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

ReduxKotlinで始めるAndroidアプリ開発におけるReduxアーキテクチャ

kako_351 kako

Reduxはアプリケーションの状態管理のためのライブラリであり、主にJavaScriptで使用されるアーキテクチャパターンです。しかし、JavaScript以外の言語やプラットフォームでもReduxは有用です。本セッションでは、Androidアプリ開発においてKotlinのReduxライブラリであるReduxKotlinを活用したRedux導入アプローチを紹介します。

トピック
・Reduxアーキテクチャについて
・MVVMとの比較
・ReduxKotlinを用いたRedux導入アプローチ

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

Androidアプリのためのkotlinx

urotarou urotarou

Androidアプリ開発ではKotlinが使われるようになって久しいです。
Kotlinを使って開発を行っているならばKotlinが公式に用意してくれているkotlinxを使うと開発体験をより良くしていけると思います。
このセッションではAndroidアプリ開発で使えるkotlinxの紹介を行います。

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

大規模コードベースを一気に書き換え ー Kotlinコード変換ツールktcodeshiftの活用

orangain Kota Kato

Sansan株式会社のインボイス管理サービス「Bill One」では、サーバーサイドKotlinをフル活用しています。数年に渡って開発を継続する中で、コードの書き方をより良いものに変更したくなったり、大きく依存しているライブラリを別のものに変更したくなったりすることがあります。そんなとき、大規模かつ安全にコードを書き換えられるツールがあると、チームの開発を止めることなくスムーズにコードベースを改善できます。

本セッションでは、発表者が開発したコード変換ツールktcodeshiftと、Bill One開発におけるその活用例をご紹介します。変換スクリプトを書く際に必要なKotlinの抽象構文木(AST)の知識についても解説します。

本セッションを聴講することで、Kotlinのコードを大規模に書き換えるために使えるツールを知り、具体的な変換イメージを描くことができるようになります。

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

振り返る Kotlin Coroutines の歴史とこれから

OK4D4 岡田 慶吾

Kotlin Coroutines は2017年の実験的導入から始まり、2018年にはKotlin 1.3で安定版としてリリースされました。それ以来、コルーチンは多くの改善を経て、多様なプラットフォームとアプリケーションにおいて中心的な役割を果たしています。
Kotlin 2.0 が来る前に一度立ち止まって、これまでのKotlin Coroutines の歴史を振り返ります。

トピック

  • 最初期の Coroutines について
  • 安定版での変化について
  • StateFlowとSharedFlowの登場
  • Flowを使用したステートレスなUI
2
ショート(20分)
Kotlin言語・プログラミング 初級者

FlowからStateFlowへの変換:戦略と最適な活用法

Hand-Tomi

このセッションでは、KotlinのFlowデータをStateFlowに変換する戦略と方法を紹介します。
特に、この変換において重要な役割を果たす「SharingStarted」コンポーネントに焦点を当てて詳しく解説します。

セッションのハイライト

  • FlowとStateFlowの違いと基本的な理解
  • StateFlowへの変換の理由
  • FlowからStateFlowへの具体的な変換戦略
  • SharingStartedの詳細な分析
  • ケーススタディと問題解決

このセッションを通じて、参加者はFlowデータをStateFlowに変換する技術を効果的に習得し、活用するための知識を深めることができます。

2
ショート(20分)
Kotlinの活用事例(仕事や学業など) 初級者

WebブラウザのレンダリングエンジンをKotlinで再実装する

yasuaki640 yasuaki640

昨今のWebアプリ開発において、Webブラウザは切っても切れない存在です。
このWebブラウザには、HTMLとCSSからテキストや画像を描画する「レンダリングエンジン」が含まれています。

これがどのような仕組みで動いているのか、その裏側についてはご存知でしょうか?

このトークでは、RobinsonというRust製簡易レンダリングエンジンをKotlinで実装することで、レンダリングエンジンの大まかな仕組みの理解を目指します。
また今回のトークで用いた、サンプルコードを他言語で再実装する勉強法も合わせてご紹介します。

このトークを聞き、レンダリングエンジンの裏側を垣間見ることで、Webアプリ開発におけるブラウザからの新たな視点を獲得できるでしょう。

  • 対象の方
    • Webブラウザの仕組みに興味がある方
    • Kotlinでなにか書きたいけど作りたいものがない方
1