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

Kotlinバックエンドによる認証システムのフルリニューアル: 5年間のあゆみ

yu_rano Yuya Urano

このセッションでは、5年間にわたりKotlinで認証システムのバックエンドを開発・運用してきた経験を振り返ります。2019年からこのプロジェクトを開始し、段階的に実装と運用のステージに進んできた私たちの旅を共有したいと思います。

特に以下の点について深く掘り下げます:

  • バックエンド開発でKotlinを採用するにあたり、初期段階で実施したこと
  • Kotlinのバックエンド採用による成功事例と有益な点
  • Kotlinを採用して期待外れだったこと、解決されていない問題や改善点
  • チームの成長に伴うKotlinの特徴を活かした実装への変遷

セッションを通し、Kotlinのバックエンド開発に興味がある、あるいはKotlinのバックエンド開発プロジェクトを始めたばかりでまだ運用の知見がそれほど溜まっていないといった開発者の方々にとって有益な情報をお伝えしたいと思います。

採択
ロング(40分)
Kotlin言語・プログラミング 初級者

パフォーマンスと可読性を両立:KotlinのCollection関数をマスター

daasuu Masayuki Suda

KotlinのCollection関数の有効活用に焦点を当てたこのセッションでは、100を超える豊富な関数を概観し、それぞれの使用時の利点を探ります。
実際のコード例を通じて、どんなCollection関数があるか、どのシナリオでCollection関数を選択するか等学びましょう。

トピック例
・Kotlin Collectionの概要 - Collectionのフレームワーク基本構造と主要なインターフェースの説明
・Collection関数のカテゴリー分け - 変換関数、フィルタリング関数、集約関数、分割関数などに分けて関数を紹介
・高度な関数 - groupBy, partition, fold などの高度な関数の活用方法と例。
・パフォーマンスの最適化 - Collection関数のパフォーマンスに影響を与える要素と、効率的なコードを書くためのテクニック。for文の出番も?

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

元組み込みエンジニアがKotlinのビット演算を使ってみた

kharada_bt Kenta Harada

Kotlinのビット演算使っていますか?
おそらく多くの方はKotlinの入門書で見かけた程度で、実際のプログラミングで使っている方は少ないかもしれません。
実際何に使うものなのか?使ったことが無い方にとっては想像しにくいものです。このセッションでは、元組み込みエンジニアで現Androidエンジニアの私がデバイスとの通信でビット演算を使ってみた経験についてお話します。

対象者

  • Kotlinでバイナリを扱ってみたい方
  • BLE/USB/NFCなどでデバイスと通信するコードを書く方

お話する内容

  • 通信プロトコルの基本。デバイスとバイナリで通信する方法
  • ビット演算でデータを作る、値を取り出す方法
  • Kotlinでビット演算する時に使うテクニック
  • C言語のビット演算とKotlinのビット演算の違い
3
採択
ロング(40分)
KMP(Kotlin Multiplatform) 上級者

あらゆるアプリをCompose Multiplatformで書きたい! -ネイティブアプリの「あの機能」を私たちはどう作るか-

subroh_0508 Subroh Nishikori

本セッションでは、現在発表者が本番リリースに向けて開発中である、Mastodon用クライアントアプリの実装を通して得た経験から、Compose Multiplatformによるモダンかつ実用的なネイティブアプリを実装するための知見を紹介します。

「画像の表示」「動画の再生」「ファイルピッカー」のような、直接ユーザーが触れる機能はもちろんのこと、「ディープリンクの実装」「ローカルなデータストレージへの認証情報の保持」等の表から見えづらい部分まで、実用的なネイティブアプリの開発における頻出要素をどうすれば共通のKotlinコードで表現し、複数のプラットフォームに向けて実装できるのか、解説します。現時点でのCompose Multiplatformの実力を多くの方に知っていただき、"真のマルチプラットフォーム開発"への挑戦者を1人でも増やせるような発表にできればと思います。

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

Android Lintの理解を深め、Custom Lintでプロジェクトの保守性を高めよう!

yanmar_y2mtk yanmar

Android LintはAndroidプロジェクトの静的分析ツールとして登場しましたが、JavaとKotlin両方の分析を行えることから、GoogleではサーバサイドJavaとKotlinプロジェクトでも使用されています。

そんなAndroid Lintですが、その内部ではどのファイルが読み込まれていて、何がチェックがされているのかを本セッションで紹介します。
また、Lintをカスタムすることでコードの一貫性を保ち、プロジェクトでの人員の入れ替わりなどにも耐えうる実装例も併せて取り上げていきます。

  • Android Lintを詳しく知る
  • Lintがチェックしているファイルタイプと処理
  • Custom Lintの実装とテスト

このような内容で話を進めていきます。
すべてのKotlinプロジェクトで使用できるので、この機会に改めてAndroid Lintの理解を深めましょう。

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

ARアプリをKotlin+JetpackComposeで作ってみよう!

shiosioco40 ichimura

直近のGoogle I/O でも注目されているARCoreと、それを支えるSceneViewを活用したAR実装について話したいと思います。

現状の構想

  • 今ARを作るとしたら、どのツールが使えるか
  • ARCoreとSceneViewについて
  • 実装しよう
1
ショート(20分)
Kotlinの活用事例(仕事や学業など) 中級者

サーバサイド Kotlin によるプロダクトフルリニューアル

高橋明生

自社プロダクトのバックエンドを100% Kotlinでリニューアルしました。
プロダクトは、IOTデータ収集、ビッグデータ処理、SaaS Webシステムからなる中規模のものです。
PoCや新規テーマでの限定的活用ではなく、業務システムをフルスクラッチで開発した例として、
Kotlin採用でよかったことと苦労したことを中心に、実システム開発事例の共有としてお話しします。

・よかったこと、うまくいったこと
 ・基礎品質の向上 ケアレスミスの予防 実行時エラー起因の手戻りの少なさ
 ・アーキテクチャリファクタリング DDDの実践に必要不可欠
 ・概念モデル(データモデル)とコードの同期と調査のしやすさ
 ・ArchUnitの活用による全体構造の維持
・苦労していること
 ・ビルド時間短縮のために、プロジェクト分割している。
 ・値オブジェクトの実装 演算可能オブジェクト(数値類)が実装困難

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

0-1フェーズの Kotlin × Spring なプロジェクトでバグを産まないために採用してよかった知見を共有するよ

sugoikondo 近藤 豊峰

私が担当するプロダクトでは、全社的に Ruby と Go を採用するプロジェクトが大多数な中、 Kotlin × Spring という新しい技術スタックを用いて開発がスタートしました。
なかなか社内に技術知見がない中でのスタートとなりましたが、その状況下でもエンジニアの実装と設計より、リリースから1年2ヶ月に至るまで大きなバグやインシデント無しで運用をしてくることができました。
そこで、このプロダクトを 2 年開発してくる中で、取り入れてよかった設計、または反省点などを共有・議論できればと考えております。
同じく 0-1 フェーズをこれから経験される方や、自分のプロダクト開発をより良くしていきたい方に向けて少しでも学びがある発表とできたら幸いでございます。

ロング(40分)
Webバックエンド/サーバサイド 初級者

人生初めてのKotlinプロジェクトで毎秒50万プッシュ通知を処理した件について

trustin Trustin Lee

新年0時になると、人々はそれぞれの心を込めて大切な家族や友人にメッセージを送ります。LINEのメッセンジャーサーバーは、その心を伝えるために、APNsやFCMのプッシュ通知サーバーに多数のリクエストを送信します。毎年毎年プッシュ通知を処理してきましたが、2024年はKotlinで新規作成したサーバーがかなりの数のプッシュ通知を処理したという点が特別な年でした。 本発表では、Java開発はベテランですが、Kotlin開発は初めての立場で、大容量・高性能サーバーを開発した経験を以下の視点で共有します。

  • Java開発者が知っておくべきKotlinの特徴と機能
  • Jacksonユーザーのためのkotlin-serialization導入の話
  • Kotlin suspended functionとJavaの非同期APIとの共存について
  • APNsに安定的にプッシュ通知を送信する秘訣
5
どちらでも
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の歴史を可視化する

Ayana_moomin Ayana Murakami

現代では広く使われているKotlin言語ですが、2011年に公開されて以降、さまざまな発展を遂げてきました。

ソフトウェアは、利用者のニーズや開発環境の変化により日に日に「進化」します。ソフトウェア工学の研究分野においても、特に1990年代後半からソフトウェア進化は活発に議論され始め、今では研究手法、研究対象物、目的はさまざまです。中でも、SEV(Software Evolution Visualization)は、可視化を用いて対象とするソフトウェアの進化を分析するアプローチです。

このセッションでは、SEVの手法を用いてKotlinの進化を紐解きます。Kotlin開発当初の思想や目的、他の言語との関係についても触れつつ、可視化結果とその解釈を発表します。

9
採択
ロング(40分)
Webバックエンド/サーバサイド 中級者

2024年版 Kotlin サーバーサイドプログラミング実践開発

n_takehata 竹端 尚人

私は2021年に「Kotlin サーバーサイドプログラミング実践開発」という書籍を出版しました。
その中ではサーバーサイドKotlinで必要なフレームワークの知識、実践的なアプリケーションの作成もしています。
しかしそこから3年が経ち、執筆当時からサーバーサイドKotlinを取り巻く環境は変わってきています。

そこで、今回は書籍の内容からアップデートし、2024年現在のトレンドに則った

・フレームワーク
・アプリケーションアーキテクチャ
・各種ツール

でのKotlinのサーバーサイドアプリケーションの作成方法について紹介していきます。
「サーバーサイドKotlinを導入してみたい」と考えている方にとって、一つの道筋になるかと思います。

4