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

探求!Kotlinコンパイラの限界に挑む

chigichan24 Kazuki Chigita

構文エラーではなくともコンパイラがエラーとして扱い、コンパイルできないコードがKotlinにはある。これはコンパイラの限界によるものである。
例えば、data class のプロパティは何個まで宣言できるだろうか?あるいは、true && true && ... と繋げられる限界は何個だろうか?
このセッションで、そんなコンパイラの限界を探求しようじゃないか。

セッションの概要は以下となる。

  1. Kotlinコンパイラの全体概要の紹介
  2. 例1 コンパイラのStack Overflowを回避する閾値の探求
  3. 例2 Backendによるコンパイラ挙動の違い<JVMによる制約>
  4. コンパイラの挙動の調べ方

ショートセッションでの採択の場合は、3と4の一部を省略する。このセッションを聞くことで、Kotlinコンパイラの内部構造と限界について理解を深めることができるだろう。

7
ロング(40分)
Webフロントエンド 初級者

(deleted)

(deleted)

(deleted)

どちらでも
Webフロントエンド 上級者

Kotlinでも真面目にWebフロントエンド開発がしたい!kotlin-reactのはじめかた

yt8492 マヤミト

Compose for Webの登場により、Kotlin/JSの注目度も高まってきました。
さて、Compose for Webの登場以前からKotlin/JSでリッチなWebフロントエンドを行う手段がありました。それがkotlin-reactです。

このセッションでは、kotlin-reactを使ってどのようにWebフロントエンド開発を行うのかを解説します。

以下トピック

  • kotlin-reactの紹介
  • ライブラリの実装から紐解くkotlin-reactのしくみ
  • Kotlin + kotlin-reactでの開発をTypeScript + Reactでの開発と見比べながら理解する
  • 周辺ライブラリの紹介
  • kotlin-reactに対応していないReact周辺ライブラリを自力でKotlin/JSでラップする方法
どちらでも
ツール/エコシステム 中級者

Plugin development by Kotlin

mitohato14 mito

Kotlinを使ってIntellij IDEA向けのプラグインを開発する手法を紹介します。
実際にプラグイン開発する手順を詳細に紹介しつつ、実装に利用するクラスの役割も含めて解説することでセッションで紹介する題材以外のプラグイン開発にも役立つようになることを目指します。
現時点で題材として扱うプラグインでは、選択した範囲の文字列に対して加工して文字列を置き換えるという動作を行い、読み取りと書き込み両方をカバーします。

Kotlin言語自体の仕様には触れないため中級者向けにしていますが詳細に説明することで誰でも理解できるように努めます。

6
どちらでも
ツール/エコシステム 中級者

Convert Java Library to Kotlin Library

n_seki_ uwaseki

KotlinがAndroid開発の世界にやってきて早数年。もともとJavaで書かれていたライブラリのKotlin移行も加速度的に進んでいます。しかし実際にライブラリをKotlinに書き換えようとすると、意外にも考えるべきことが多いことに気付かされます。

このセッションではJavaで書かれたライブラリをKotlinに書き換える際に考慮したい・気をつけたいポイントを実例を交えて解説します。
互換性維持やKotlinのデータクラスを公開APIにする場合の注意点、Javaコードからの呼び出しの配慮など、今まさにKotlinへの書き換えを検討している開発者はもちろん、すでにKotlinのライブラリをメンテナンスしている開発者の方にも改善のヒントになるかもしれません。

より開発者フレンドリーなライブラリを作っていきませんか?

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

Kotlinで音を自在に操ろう

entaku_0818 entaku

音声をKotlinで扱う方法について、基本的な考え方から実践的なテクニックまでを幅広く紹介します。
 

次に実践編として、Kotlinの各種ライブラリを活用した音声処理プログラミングに踏み込みます。

  • 音声ファイルの入出力(WAV, MP3など)
  • リアルタイム音声入力(マイク)からの信号処理
  • フィルタリングや特徴量抽出による音声分析
  • テキスト読み上げ(TTS)との連携
  • AIを活用した音声認識、音声合成

などを実際のコード例とデモを交えて紹介。Kotlinならではの簡潔で安全な記述で、音声プログラミングの敷居を大きく下げられることを示します。

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

リリースノートから読み解くKotlinの歴史と思想

iNoma_main いのま

KotlinはJetBrains社によって2011年にそのコンセプトが公開されてから今日に至るまで、幾つものバージョンアップを重ねてきました。
バージョン毎に公開されるリリースノートは、当時どのような課題があり、Kotlinがそれをどう解決したかを読み解くことができる非常に面白い歴史的資料です。
ユーザ目線でリリースノートを眺めることで、Kotlinの言語仕様の変遷を追うと共に、Kotlinが重要視している思想や、Kotlinはどのような言語であると言えるのか、一次情報であるリリースノートを読むときのtipsなどについてお話しします。

以下、扱うトピック
・リリースノートを読むことの楽しさ
・Pragmaticである、とは
・実際に当時のリリースノートを眺めてみる

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

About Kotlin Dynamic Types

coffeegyunyu 日向強

Kotlinには様々な型が存在します。
その中の一つに、dynamicという型があるのをご存知でしょうか?

本セッションでは、dynamicという型について説明します。
そして、dynamic型で一体何ができるのか、
dynamic型の使い方やdynamic型を使うことのできる環境セットアップを説明します。
また、他言語での同様なdynamicの扱いとの比較などを絡めて、dynamic型が備える特性を活かしての利用シーンなどを検討していくセッションとなります。

ロング(40分)
KMP(Kotlin Multiplatform) 中級者

Androidアプリから始めるMultiplatformアプリ開発

swiz_ard 久保出 雅俊

Kotlin Multiplafromに対応したライブラリは数多くあります。新しいライブラリだけでなく、途中からKotlin Multiplafromに対応したライブラリもあります。
Android JetpackはAndroid開発における公式が提供するライブラリ群ですが、JetpackでもMultiplatform対応が進んでいます。
これにより、AndroidアプリをMultiplatformアプリに進化できる可能性が出てきました。

このセッションでは、いくつかのライブラリを用いたAndroidアプリを用意し、そのアプリをMultiplatformに進化させていく過程を紹介します。
その中で気をつけるべきポイントや、ハマりどころ、実用性や将来性についても話します。

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

今までのKotlin Standard Libraryの追加APIを眺めてみよう

RyotaMurohoshi むろほし

Kotlin正式リリース後に追加されたKotlin Standard LibraryのAPIを、登壇者の独断と偏見でピックアップして紹介します。

2016年2月にKotlin 1.0が正式リリースされ、約8年が経ちました。正式リリース前から、趣味に、仕事にKotlinを使っていた方も多いのではないでしょうか?

一方でKotlin正式リリースから長い月日が経ち

  • 今でもKotlinは好きだけれど、最近仕事では別のプログラミング言語を使っている
  • 以前Kotlinを熱心に使っていたけれど、最近そこまでアップデートを追えていない

という方もいるのではないでしょうか?

本セッションではそのような方をメインターゲットに、Kotlin正式リリース後に追加されたStandard LibraryのAPIを、登壇者の独断と偏見でピックアップして紹介します。

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

Androidデバイスを保守カメラとして用いる

takashiho_2 たかっしー

CameraXは、Android端末のカメラを操作する際に強力なライブラリである。
しかし、メモリやGPUのリソースが限られている端末や、サポートされていない外部カメラを搭載した端末でCameraXのライブラリを使う際には、注意が必要となる。
本セッションでは、AndroidOSを搭載したデジタルサイネージを用い、正しく広告を投影しているかを遠隔で撮影して確認できる保守システムを例に挙げ、メモリやGPUなどの制限のある環境下で外部カメラを制御する方法について解説を行う。
また、MLKitの顔認識をバックグラウンドで行う方法を例に挙げ、GPUの負荷を抑えた画像認識能方法についても説明する。GPUの負荷を抑えるため、撮影時以外は解像度を落として顔認識を行う方法や、メモリ内に画像を1枚のみ格納し、解析が終わった際に確実にメモリを解放することでメモリーリークを防ぐといった方法について紹介する。

4
どちらでも
ツール/エコシステム 初級者

Amperを使って様々なKMPプロジェクトを構成

yoppie_x Yoshiya Maeda

Gradleのプラグインとして開発されたAmperというプロジェクトを構成するためのツールが登場しました。
Amperを使うことでスムーズにプロジェクトを構成することができ、さらに開発者体験も向上します。

本セッションはAmperに関する知見を共有します。
概要は以下です。

  • Amperは最近開発されたツールであるため、あまり親しみのない方に向けてAmperを解説
  • Amperを用いて様々な種類のKMPプロジェクトを構成するまでの知見を共有

トピックは以下を想定しています。

  • Amperの説明
  • module.yamlの書き方
  • Fleetで利用できるmodule.yamlに関するコードアシスタンス
  • Kotlin Multiplatformを構成
  • Compose Multiplatformを構成
  • Gradleを用いた既存のプロジェクトと統合する方法と、移行する方法
1
ショート(20分)
Android 初級者

これから始めるAndroidアプリ開発 ~Todoアプリをハンズオン形式で(MVVM)~

対象

  • Kotlinは触った事があるが、Androidアプリ開発の経験はない or 少ししか触った事がない
  • JetpackComposeに興味がある

セッションの目標

  • これからAndroidアプリ開発を学習する人の手助けをする
  • MVVMでAndroidアプリを開発できるようになる
  • JetpackComposeを理解してKMPなどでも応用できるようになる
1
ショート(20分)
Webバックエンド/サーバサイド 中級者

LLMアプリケーション開発 in Kotlin 〜サーバーサイドKotlinプロダクトでLLMに取り組んだ一年を振り返る〜

ry0_kaga r-kagaya

この一年で生成AI・LLMを取り巻く環境は大きく変化し、今までAIに取り組んでいなかった企業・プロダクトも生成AI・LLMを用いた開発に取り組む例が増えた事を実感します。

しかし、世の中の事例はどうしてもPython環境が多く、KotlinでのLLMアプリケーション・機能開発に関しての情報は広く共有されていません。
例えば、Kotlin(JVM)環境でOpenAI APIにアクセスするためのライブラリはあるのでしょうか?どうしてもPythonでないと出来ないことは何でしょう?

本セッションでは、サーバーサイド言語としてKotlinを採用している企業・プロダクトでLLMに取り組んだ一年の体験談・悩みも交えながら、
KotlinでLLMアプリケーション・機能開発を取り巻く環境や、実際にどのような構成・考え方で取り組んだかについて紹介します。

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

deleted

ry0_kaga r-kagaya

deleted

ショート(20分)
ミドルウェア/フレームワーク 初級者

Kotlinのcopy methodへの付き合い方とアーキテクチャテスト

mako_makok Makoto Kobayashi

Kotlinでdata class宣言を行うとequalsやhashCode, componentNなど、便利なメソッドが自動的に生成されます。
自動生成メソッドの中にcopyというメソッドがありますが、このメソッドは非常に便利な反面、利用シーンを間違えると不整合データが簡単に作れてしまうなどデメリットも併せ持っています。
今回は、copyメソッドとの付き合い方と、アーキテクチャテストでの解決方法についてお話します。

6
ショート(20分)
ミドルウェア/フレームワーク 初級者

SpringBootアップデート戦記 〜Kotlin + SpringBootのライブラリ選定を振り返る〜

mako_makok Makoto Kobayashi

現在SpringBootとKotlinで開発しています。
以前SpringBootの2系 -> 3系にアップデートをした際、周辺ライブラリの見直しも一緒に行いました。
実際悪戦苦闘した結果と、今改めてKotlin + SpringBootで開発するならどういうミドルウェアの選定を行うか?
について自分の考えをお話します。

5
どちらでも
テスト 中級者

Kotlinで保守性が高く変更容易なテストを書こう

wooootack Kyosuke Awata

普段から自動テストを書いていく上で、以下のような悩みを持っている方は多いのではないでしょうか。

・実行するたびに結果が変わってしまう
・1箇所だけ修正したはずなのに、色々なところのテストが落ちる
・そもそもどれくらいテストを書くべきなのか分からない
など

このセッションではKotlin以外の言語でも使えるテスト設計全般的な話と、それをKotlinで具体的にどのように実現するのかをお話しします。
テストコードを負債にしないためのテクニックや考え方をお伝えできればと思います。

具体的なテーマの例
・観点が明確なテストを書こう
・不要なテストを減らそう
・モックの使い過ぎには注意

※ 取り扱わないテーマ
・E2Eテストに関すること
・実際にデータベースと接続して行う単体、結合テスト

5
どちらでも
ミドルウェア/フレームワーク 中級者

KotlinでResultを取り扱う方法とライブラリ選定

mako_makok Makoto Kobayashi

KotlinにはJavaのように検査例外・非検査例外の区別はしません。
Java以外にも、他の言語にはエラーのハンドリングを強要させるような仕組みがありますが、Kotlinにはありません。
そのため、Kotlinにおける例外のthrowはすべて副作用となります。

このことから、Kotlinにおけるエラーハンドリングは多少工夫する必要があります。
そのための一つのテクニックとして、関数の戻り値にResult型という成功値もしくは失敗値を表現する型を利用する方法があります。
今回は、いくつかのライブラリの比較をしつつ、現場導入の際に考慮した事項と、実際にプロダクトへ導入した効果についてお話します。

9
どちらでも
Webバックエンド/サーバサイド 初級者

Kotlinで始めるMinecraftマルチサーバープラグイン開発

ken_kentan Kentaro Doi

Minecraftは世界で最も有名なサンドボックスゲームの一つであり、その魅力を拡張するのがマルチプレイサーバー上で動くプラグインです。
本セッションでは、Kotlinを利用してJava版Minecraftサーバーのためのプラグイン開発について取り上げます。
Kotlin初学者でも追いやすいよう、プラグイン開発の基礎から段階的にご紹介します。

  1. 開発環境の設定: Minecraftプラグイン開発に最適な開発環境の構築
  2. Minecraftサーバープラグイン開発の基礎: プラグインの基本的な構成要素、コマンド等の実装方法
  3. 実践的なプラグイン開発: コルーチンを使用した非同期処理など
  4. デプロイメント: Minecraftサーバーへのデプロイ方法

Kotlinを学びたい方、またはMinecraftプラグイン開発に興味のある開発者にとって有意義に学べる内容を目指しています。

3