ショート(25分)

Ktor2アップグレード戦記

doyaaaaaken 小山 健太

登壇者はKtorをv1.0.0-betaの頃に導入し、4年近く自社サービスの本番環境で利用していました。
そしてつい先日、2022/4にリリースされたKtor v2へのアップグレードを実施しました。

Ktor v2のメジャーバージョンアップグレードでv1と何が変わったのか、どのようにアップグレードを進めるべきか、どういったトラブルに直面するのかなどについて、得た知見をシェアしたいと思います。

1
採択
2022/12/10 17:05〜
トラックA
どちらでも

Kotlin製自作OSSの普及戦略 ~kotlin-csvの実例を元に~

doyaaaaaken 小山 健太

このセッションでは登壇者が自作しているOSS "kotlin-csv"(https://github.com/doyaaaaaken/kotlin-csv )についてGithubのStar数450超になるまでどのようにして普及させたのかについて紹介します。

自作OSSというと『プライベートの時間を多く費やして』『自身の技術的ロマンを詰め込んだものを作る』イメージがあるかと思いますが、登壇者は『なるべく時間を使わずメンテでき』『技術的ロマンはなくてもいいので』『世界の人々から実際に使われる』ライブラリにすることを戦略的に目指して作りました。
なぜそういった目標を立てたのか、目標実現のために立てた戦略、開発中に直面したトラブル、開発後の運用で得た気づきなどについてなるべく具体的に共有することで、今後自作OSSを作る人・作りたい人の参考になる内容にしたいと思います。

3
採択
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
ショート(25分)

モバイル開発に使いそうな言語とKotlinを比較して良い言語機能をまとめてみた(Swift/Dart/C#と比較)

mdk_aza mdk_aza

Kotlinを用いたのAndroidアプリの開発、Swiftを用いてのiOSアプリの開発、Dartを用いてのFlutterでのiOS/Androidアプリ開発、C#を用いてのUnityでのゲーム開発など現代のモバイルアプリで使われている技術を経験してきた私が、それぞれの言語機能の比較を簡単に行い、Kotlinのこの言語機能が良い、この書き味が最高というのを紹介していこうと思います。
ボリュームの関係で何かの言語が削られたり、中身の比較の関係でTypeScriptやScalaが出てくるかもしれないですが、そこは暖かく見守ってください。

2
どちらでも

KotlinのGenericsとReflectionの応用と実務での活用

chimerast たけうち ひでゆき

KotlinのGenericsとReflectionの組み合わせは、reifiedキーワードの存在により、強く型安全なコードを書く事ができるようになっています。

Generic TypesのReflectionでどんな操作ができるのか、GenericsとReflectionをうまく組み合わせると何ができるのか、実務で使っているソースコードを基に実際の挙動を通してお話しします。

このセッションを聞くことで、下記のスライド(22ページ目)の内容が理解できるようになると思います。

Exposed DAOで、IDカラムをValueObjectのまま扱う
https://speakerdeck.com/chimerast/exposed-ying-yong-bian-nei-bu-shi-zhuang-to-mo-kuo-zhang?slide=22

3
どちらでも

【コンパイラプラグイン】ユースケースと共に解説するKotlinコンパイラプラグインの作り方

baseballyama_ Yuichiro Yamashita

このセッションでは、Kotlinコンパイラプラグインのユースケースと実装方法を解説します。

【アジェンダ】
👉 コンパイラプラグインの種類のご紹介
👉 ライブコーディング
👉 参考資料の共有

今回ライブコーディングで解説するコンパイラプラグインは以下です。
1️⃣ クラスAからクラスBを自動生成するプラグイン
2️⃣ 独自のコンパイルエラーをスローするプラグイン

ユースケース以下です。
1️⃣ 全ての独自型に対してプリミティブ型との相互変換クラスを実装する必要がある場合 (例えばORMの型マッピング)
2️⃣ 自動生成したクラスが正しく利用されているかを検査したい場合

今回は、ライブコーディングで実際に動作するコンパイラプラグインを実装します。

7
採択
2022/12/10 14:05〜
トラックB
ロング(45分)

フロントエンドもJetpack Composeで書きたい! -Compose for WebはモダンWebアプリケーションの夢を見るか?-

subroh_0508 Subroh Nishikori

Kotlin製のモダンUIツールキットであるJetpack Composeには、デスクトップおよびWebアプリのUI開発に対応したCompose Multiplatformという拡張版が存在します。Kotlin Multiplatformの機能をフルに活用し実装されており、その豊富な表現力はKotlinエンジニアに多大な恩恵をもたらします。

本セッションでは、発表者が自身のポートフォリオサイトをリライトした経験から、特にWebアプリのUI開発に対応するCompose for Webを利用し、モダンなSPAを実装・リリースするための一貫した知見を紹介します。また、Kotlin/JS + Reactの構成で実装した複雑なWebアプリをCompose for Webでリライトしながら得た知識も踏まえ、KotlinによるWebフロントエンド開発の現在地について詳しく解説します。

8