ショート(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
ショート(20分)
Webバックエンド/サーバサイド 中級者

組織戦略とKotlin

r_naganuma_fgi RyoNagnauma

私たちベンチャー企業がサーバーサイド言語にKotlinを採用するメリットについて、「ビジネスモデル」「採用」「育成」の観点からお話します。

このセッションは、私たちならではの視点を多分に盛り込んだものとなる予定です。
私は言語選定と組織の戦略は密接に関わるものだと思っています。

まず、私たちのビジネスモデルを簡単にご紹介します。
そのうえで、そのビジネスモデルを実現するためにはどんな人を採用して育成していきたいかをお話します。
その中でKotlinが有用であると思える点についてお伝えします。
もし他の組織であればどの言語を選択していたか、など別の言語についても少しだけ言及したいと考えています。

興味を持っていただけると嬉しいです。
よろしくお願いいたします。

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

ゼロから学ぶKotlin DSL

akihiro_kokubo Akihiro Kokubo

DSL(Domain Specific Language)とは、特定の問題領域に特化して設計された言語のことです。
Kotlinの言語機能を活用すると、開発者は自身のニーズに合わせたDSLを容易に作成できます。
これによりプログラミングの生産性とコードの品質を大きく向上させることができます。

このセッションでは、HTMLをテーマにゼロからDSLを構築します。
より具体的には、ラムダ式、レシーバ付きラムダ、拡張関数を用いて、型安全なHTMLビルダーを作成します。
Kotlin初心者でもすぐに取り組めるDSLの基本から応用までを実践します。

5
採択
2024/06/22 13:50〜
トラック2(仮)
ショート(20分)
KMP(Kotlin Multiplatform) 中級者

Okioに愛を込めて

RyuNen344 RyuNen344

OkioはSquareが開発しているjava.ioとjava.nioの取り回しを楽にしてくれるラッパーライブラリです。言わずと知れたOkHttpやMoshiのベースにも使用されているライブラリです。
Kotlinで書き直された2.0.0よりMPP(KMP)対応が行われ、3.0.0でファイルシステム周りの機能が追加されました。
KMP(android, iOS)プロジェクトで実際に使用した私がありがたいと感じた部分についてお話しします。

本セッションでは下記のことを取り扱います。

・標準ライブラリが強力なKotlinでなぜOkioを見直すのか
・KMP実装にIO周辺実装での諸課題
・KMP実装においてもOkioがもたらすメリット
・Okioを使用する際の注意するべき前提

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

JetpackComposeでWebアプリを作る

r_wadada 和田陵佑

JetpackComposeを使ったアプリケーション開発はAndroidは勿論のこと、iOSやデスクトップアプリ、Webアプリも開発可能となっています。
その中唯一Web向けのものは以前はDom操作を行う形で実現されていました。
2022年頃に新しくskiaを利用した描画方式が登場し、Webでも他のプラットフォームと同様の仕組みでのUI描画が可能になりました。

このセッションではそんなCompose for Webがどんな仕組みで動いているかを簡単に見つつ、小規模なWebアプリ構築のTipsを段階を追って紹介します。

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

KMPでモバイル開発の課題を解決〜新規サービス開発での実践と考察〜

YuQinta 福島貴幸

モバイルアプリ開発は日々進化している状況ですが、Android/iOSの仕様差異、いつまでも定まらないバックエンドなど未だ現場には課題が山積みです。

私はKotlinFest2019でKMPと出会い、その可能性に衝撃を受けました。これまで抱えてきた様々な課題を解決できるのではないか、と。

その後、社内でKMP導入に向けた共有会や技術調査を実施して、新規サービスの開発にてKMPの導入を実現化し、無事リリースまで成し遂げることができました。

本セッションでは、そんな私の体験談を交えながら、

  • KMPとは何か
  • なぜモバイル開発にKMPを推すのか
  • 実際にKMPでどんな開発が実現できたのか
    をお話しします。

こんな人にオススメ!

  • モバイル開発で課題を抱えている人
  • KMPに興味がある人
  • KMPの導入を検討している人
1
ショート(20分)
テスト 中級者

KotestではじめるProperty Based Testing

jsoizo せきね じゅん

Property Based Testing(PBT)は、関数のテストにランダムに生成された入力値を用いることで、エッジケースの見落としを発見しやすくするテスト手法です。
そして、KotlinでPBTを行うための強力なツールとしてKotestがあります。KotestのPBT機能はKotest本体のテストフレームワークの機能とは独立しているため、JUnitなど他のフレームワークを利用していても簡単に導入が可能です。

このセッションでは、PBTのメリットについてJUnit + Kotestを利用したテストコードの例を用いて説明しつつ、独自型のランダム値生成などの利用機会が多そうな機能も紹介します。
また、私はPBTを行うことがクラスや関数の設計の堅牢さに対して良いフィードバックがあると実感しており、それを示す例ついても触れたいと考えています。

よろしくお願いします。

3
採択
2024/06/22 15:50〜
トラック2(仮)
ショート(20分)
Kotlin言語・プログラミング 中級者

withContextってスレッド切り替え以外にも使えるって知ってた?

getupmax T45K

KotlinではCoroutineを用いることで、非同期処理を手続き的に記述できます。
Coroutineの利用例として「ネットワークアクセスをwithContext(Dispatchers.IO)でラップすることでIOスレッドで行う」という例が紹介されることが多いです。
そのため、「withContextはスレッド切り替え時に使う」という理解をされている方は多いと思います。
しかし、実際にはwithContextはCoroutineContextを切り替えるために利用するものであり、スレッド切り替え以外にもさまざまな活用法があります。
本セッションでは、CoroutineContextについて触れたうえで、筆者のチームがwithContextをどのような場面で活用しているかを紹介したいと思います。

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

runCatchingの依存から脱却しよう!

akkiee76 Akihiko Sato

runCatching は、ブロックに定義された関数の実行が成功したかどうかを簡単にチェックし、例外をより安全に扱うことができる Kotlin の関数です。それゆえ、全ての Throwable を catch することが可能です。

一方、Kotlin では全ての例外クラスが Throwable を継承しており、チェックされる例外(checked exceptions)を持たない設計思想になっています。この思想の背景には、主に大規模なソフトウェアプロジェクトでの例外をチェックすることが生産性の低下やコード品質の向上に寄与しないといったことがあります。

では、どのようなケースでは例外をチェックするべきでしょうか?

このセッションでは様々な例外の具体的ケースをもとに、実践的な例外の扱い方を紹介します。是非この機会に runCatching の依存から脱却しましょう!

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

detektを使ってコードを健全に保つ

STAR_ZERO Kenji Abe

Kotlinの静的コード解析ツールのdetektについて紹介します。

detektは強力な解析ツールとなっており、コードスタイル・パフォーマンス・複雑性・潜在的なバグなどを検知してくれます。
コードを健全に保つのに非常に役に立つツールになっています。

検知してくれるルールを紹介しつつ、基本的な設定方法や使い方などを説明していきます。
また、ルールのカスタマイズ方法や、既存プロジェクトへの導入方法なども説明します。

1
採択
2024/06/22 11:30〜
トラック2(仮)
ショート(20分)
その他 初級者

Kotlinで愉しむクリエイティブコーディング

chooblarin 畠山 創太

クリエイティブコーディングを行うソフトウェアにおいてはProcessingが広く知られています。 OPENRNDR ( https://openrndr.org/ ) はKotlinで書かれたクリエイティブコーディングのライブラリです。
私はこれまでに、中高生や大学生にプログラミングの講義をする機会に恵まれてきましたが、その経験からKotlinとOPENRNDRがたのしくコーディングするために優れたものであると感じています。

本セッションのトークでは、皆さんが今すぐOPENRNDRを使ってクリエイティブコーディングを始めたくなるような紹介を試みたいと思います。

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

Flow Quiz N問N答

清水大夢

皆さんFlowを理解しながら使っていますか? 私はかつてはずっと雰囲気で使っていました。

数あるオペレータを使いこなしていますか? 私はcollectLatestくらいしか使っていませんでした。

このセッションではFlowに関する短いクイズの出題とその解答、解説を行い、その中でFlowの重要な概念に関して説明していきます。

クイズは実際の開発現場でのユースケースを想定した内容となっています。

一緒にFlowと仲良くなりましょう。

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

Kotlin製自作OSSを5年運用してきた経験を振り返る

doyaaaaaken 小山 健太

登壇者はkotlin-csvというKotlin製のOSSを自作し、5年運用してきました。
https://github.com/doyaaaaaken/kotlin-csv

その経験を振り返り、感想をシェアするセッションです。

なお2年前のKotlin Fest 2022にて、kotlin-csvをどのようにして普及させたのかについてはすでに語っています。
https://speakerdeck.com/doyaaaaaken/kotlinzhi-zi-zuo-ossnopu-ji-zhan-lue-kotlin-csvnoshi-li-woyuan-ni-at-kotlin-fest-2022

今年のセッションでは具体よりも、自身が5年の経験の中で得た知見について語ります。
楽しんでもらいかつ「自身もチャレンジしてみよう」と思ってもらえるセッションになるよう頑張ります。

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

Kotlin と GraphQL ではじめる CQRS でイベントソーシングなアーキテクチャ

sukechannnn Yosuke Obata

Spring Boot × Kotlin でバックエンドの開発をする時に悩むのがアーキテクチャだと思います。
世の中には様々なアーキテクチャがありますが、サービス立ち上げの時からアーキテクチャに凝りすぎると開発の速度が落ちてしまいかねません。
かと言って、何も決まりがない状態ではだんだんとカオスになってしまうと思います。

このセッションでは、Kotlin × GraphQL (DGS) × Spring Boot で CQRS アーキテクチャを実現し、責務を分離すべき部分はしっかりと、そうでもない部分は柔らかい状態を残しておく例をご紹介します。
併せて、Kotlin で CQRS と一緒にイベントソーシングを実現する例と、その際に便利な Sealed class の利用例についてご紹介します。

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

ArchUnit で始めるコーディングルールの自動検知

omuomugin omuomugin

ArchUnit (https://www.archunit.org/) というツールをご存知でしょうか?

Java、Kotlin のプロジェクトに対してパッケージの依存関係から付与すべきアノテーションやクラス名など様々なコーディングルールを直感的に記述することができるフレームワークとなっています。
これによって暗黙知になりがちでコードレビューなどで担保しているようなコーディングルールを読みやすく管理でき、CI などで自動的に検知することが可能になります。

本セッションでは、「明日からプロダクトに ArchUnit を導入して暗黙的なコーディングルールを自動的にチェックできる」を目指し、以下に触れる予定です。

  • ArchUnit の使い始めかた
  • プロジェクトにおける設定、マルチモジュール構成における設定
  • ルールの記述例をいくつか紹介
2
ショート(20分)
その他 初級者

Kotlin Notebook を使ってみよう

kgmyshin kgmyshin

このセッションでは、Kotlin Notebook について解説します。
Kotlin Notebook は データサイエンスの領域などで使われている Jupyter Notebook のための、 Kotlin カーネル を 使用できる IntelliJ IDEA用の プラグインです。 Community Edition では使えず、 Ultimate で使えます。
対話型でKotlinのコードをすぐに動かすことができ、コードとその実行結果に、テキストや画像を1つのドキュメントにまとめることができます。
本セッションではツールの紹介から始め、基本的な使い方、さまざまな利用用途について触れます。
データサイエンス分野はもちろんのこと、普段アプリケーションコードを書いている人にとっても有用なユースケースが多くあるのでそういった点についても説明します。

2
採択
2024/06/22 11:30〜
トラック1(仮)
ショート(20分)
KMP(Kotlin Multiplatform) 初級者

今こそ始めたい!Compose Multiplatform

ogi2ogi OGI

Jetpack ComposeのMultiplatform対応が安定版でリリースされ、1つのコードベースからAndroid/iOS/デスクトップなど複数のプラットフォームにネイティブUIを提供できるようになりました。
本セッションでは、Compose Multiplatformを用いてAndroid/iOSのアプリケーションを開発する流れを自身の経験を交えて初学者の方にもわかりやすく解説します。
あなたが既にKotlinに興味があったり触れたことがあるなら、Compose Multiplatformフレームワークを用いることで効率的にマルチプラットフォームアプリを構築できます。
マルチプラットフォームに興味はあるものの、何から始めたら良いか不安を感じている方も、本セッションを通してCompose Multiplatformへの第一歩を踏み出して頂けたら幸いです。

3