採択
2022/12/10 10:00〜
トラックA
ショート(25分)

能動的にKotlin情報を摂取して脱初心者!Kotlin1次ソースの歩き方

fumiya_kume Kuu 🍣

Kotlinが誕生してから11年が経過しました。たくさんの方に愛されているプログラミング言語なだけあって、多数のブログや勉強会にて最新情報をキャッチアップできます。しかし、ブログや勉強会で発表してる人のように自分からKotlinの情報を取りに行きたいですよね?

本セッションでは、Kotlinの1次ソースの活用方法を知って、あなたのお悩みを解決します!
・Kotlinの標準ライブラリを使いこなしたい
・Kotlin関連の最新情報をキャッチアップしたい
・ググって問題解決より突っ込んだ情報を得たい

セッション内容
・標準ライブラリの関数編
 ・公式ドキュメントの歩き方
 ・ソースコードの歩き方
・Kotlin+周辺ライブラリの最新情報編
 ・Release notesの歩き方
 ・PR/Issueの歩き方

10
採択
2022/12/10 10:00〜
トラックB
ショート(25分)

しっかり理解する Delegated properties

yanzm あんざいゆき

Android のモダンな UI ツールキットである Jetpack Compose では、State の持つ値に Delegated properties でアクセスすることがよくあります。
このセッションでは Kotlin の Delegated properties について解説し、Android のライブラリでどのように利用されているかを紹介します。

3
採択
2022/12/10 13:00〜
トラックA
ショート(25分)

Gradle Kotlin DSL と Gradle Plugin 開発

red_fat_daruma Jumpei Matsuda

Gradle Kotlin DSL の stable リリース(Gradle 5.0)からそろそろ丸4年が経ちます。しかし、Groovy による記述が Deprecated になったわけではありません。これは利用者側が2つの言語を理解できることを依然として要求しますし、Gradle Plugin を提供するなら2つの言語に対して頑強でストレスフリーなインターフェースを提供し続ける必要があります。

そこで本トークでは Gradle Kotlin DSL の仕組みを通して Groovy との対応といった具体例を紹介して理解を深めるとともに、Gradle Plugin を制作する上で Groovy/Kotlin DSL の相互運用性のポイントをいくつか紹介します。Kotlin DSL が絡まない Gradle Plugin 開発の Tips は特に紹介しません。

4
採択
2022/12/10 13:00〜
トラックB
ショート(25分)

型だけでバグを減らそう!Kotlinの型パワーをつかった実践タイプセーフエンジニアリング

Yuiiitoto 佐藤有斗

contracts や genericsなど Kotlinは静的型付け言語トップレベルの型機能を有しています。
しかし我々はそれらのリッチな型機能を上手に使いこなせているのでしょうか?
本セッションではKotlinの型機能を使ってコンパイルで検出できる実装ミスを増やしアプリケーションの品質を高める方法を説明します。
Kotlinの機能紹介のみに終始せず、具体的な実装ミス・バグを例にとりながら具体的な実装パターンを紹介していきます。

以下目次

  1. なぜ型を使いこなすことでバグが減るのか?
  2. 型によってバグが減らせる3パターン
    1. 標準の型をラップする
    2. 認可処理などの特定の処理をパスしたことを型で示す
    3. 型でデータの不整合をなくす
  3. まとめ
  4. 最後に: タイプセーフなポストモーテム
8
採択
2022/12/10 13:30〜
トラックB
ショート(25分)

Compose for WebでもDomじゃないCompose UIが使える?

seisuke YOSHIDA Seisuke

Compose MultiplatformではDesktopとAndroidのUIは共有できる部分が多く、コードも共通化することができます。しかしCompose for Webではそれができません。なぜなら通常のCompose UIと違い、web-coreモジュールによってDomでUIを作らないとならないためです。

10月にリリースされたCompose Multiplatform 1.2では、experimentalながらもDomではなく共通のUIをブラウザでも利用できます。

本セッションではSkia+WebAssemblyで実現されているこの機能が、現状どういったことができるのか紹介します。

2
採択
2022/12/10 15:00〜
トラックA
ショート(25分)

Server-side Kotlinを使うスタートアップでどんなDetektルールが育ったか

kengo_toda Kengo TODA

株式会社ヘンリーではサーバサイドをKotlin(gRPC, Ktor, Koin etc.)で書いています。サービスの品質を高めるため、また拡大期にあるチームへのボーディングを簡単にするため、Detekt拡張を実装して利用しています。
このセッションではどのような課題を解決するためにDetektを利用したか、その結果どのようにコーディング体験が改善されたかをご紹介します。

5
採択
2022/12/10 15:00〜
トラックB
ショート(25分)

うわっ…もしかして私のコード、遅すぎ…?

RyuNen344 RyuNen344

書いているコードが処理に最適化されているか心配になったご経験がある方はいませんか?
そんな不安を解消できるライブラリが公式からkotlinx benchmarkとして発表されています
kotlinx benchmarkを使用して処理速度を計測し、無駄なマシンリソースを消費しないコードを書きましょう!

話すこと

  • kotlinx benchmarkについて
  • JVMとその他Platformでの違い
  • 実際の計測
  • tailrecなどの言語レベルの最適化が及ぼす影響
採択
2022/12/10 15:30〜
トラックA
ショート(25分)

Kotlinとの邂逅 〜 KotlinとDDDで始める最高のサーバーサイド開発

secret_key_base tanida kazuki

私は主にRailsでサーバーサイド、Reactでフロントエンドを実装する開発者でした。

しかしある日「Kotlinやらない?」の一言から初めてKotlinと出会い、新規プロダクトのサーバーサイド開発をKotlin、GraphQLで始めることになるのでした。(*ExpediaのGraphQL Kotlinを使用)

・初めてのサーバーサイドKotlinで苦労したこと
・なぜ、チームで誰もGraphQL、Kotlinを触れたことないにも関わらず新規プロダクトの開発がスムーズに進んだのか?
・Kotlin独自の機能がDDDとマッチしたこと

このセッションではKotlinもDDDも新規プロダクトも初めての私がKotlinでの開発で魅了された点、苦労した点、サーバーサイドKotlinを選択してよかった!と思えた体験をお伝えし、サーバーサイドKotlinへ踏み出す一歩を後押しできればと思います!

3
採択
2022/12/10 15:30〜
トラックB
ショート(25分)

もう迷わないCoroutines〜suspend funとChannelとFlow〜

nyafunta9858 nyafunta9858

Kotlin1.3でstableになったCoroutinesは今では1.6となり、Androidアプリ開発においてはFirst Class Coroutines Supportとされてから3年が経過しました。私達のチームでも導入されており、もはやなくてはならない存在になったと感じています。
そんなCoroutinesですが、suspend function、Flow、Channel、使い分けられていますか?BroadcastChannelとMutableSharedFlowのどちらを使ったらいいか迷ったりしてませんか?

このセッションでは、kotlinx.coroutinesの最新バージョンをベースにCoroutinesの基本的な使い方を改めて抑えつつ、なんとなくで使っていたChannelやFlowなどをシーンに合わせて選択できるようになることを目指します。

2