私は2021年に「Kotlin サーバーサイドプログラミング実践開発」という書籍を出版しました。
その中ではサーバーサイドKotlinで必要なフレームワークの知識、実践的なアプリケーションの作成もしています。
しかしそこから3年が経ち、執筆当時からサーバーサイドKotlinを取り巻く環境は変わってきています。
そこで、今回は書籍の内容からアップデートし、2024年現在のトレンドに則った
・フレームワーク
・アプリケーションアーキテクチャ
・各種ツール
でのKotlinのサーバーサイドアプリケーションの作成方法について紹介していきます。
「サーバーサイドKotlinを導入してみたい」と考えている方にとって、一つの道筋になるかと思います。
KotlinのCollection関数の有効活用に焦点を当てたこのセッションでは、100を超える豊富な関数を概観し、それぞれの使用時の利点を探ります。
実際のコード例を通じて、どんなCollection関数があるか、どのシナリオでCollection関数を選択するか等学びましょう。
トピック例
・Kotlin Collectionの概要 - Collectionのフレームワーク基本構造と主要なインターフェースの説明
・Collection関数のカテゴリー分け - 変換関数、フィルタリング関数、集約関数、分割関数などに分けて関数を紹介
・高度な関数 - groupBy, partition, fold などの高度な関数の活用方法と例。
・パフォーマンスの最適化 - Collection関数のパフォーマンスに影響を与える要素と、効率的なコードを書くためのテクニック。for文の出番も?
例外設計の深掘りと、Kotlin による自作エラー型を用いた例外設計の実践方法を発表します。
例外は、ほとんどの言語に搭載される機能のため、あまり考慮せずに実装されがちです。結果、コードの保守や障害原因の特定が難しい状況になります。そこで、例外に関心を持ちチームの方針を決めることで、プロダクト開発(開発・運用・障害復旧)の生産性に好影響を与えると考えています。
Kotlin のリッチな機能に加えて Arrow の Either 型により、例外設計を柔軟に表現可能です。Spring Boot も含めた実装方法を実践します。
一連の内容を下記の項目で発表します。
例外設計を考える
・背景
・ビジネス例外と技術的例外
・モデリング
・監視と O11y
Kotlin で実践
・Arrow の Either 型による自作エラー
・Spring Boot に組み込む
Kotlin Compiler Pluginは、KSPの制限を超えて、コードの生成だけでなく改変まで行える強力なツールです。
K2コンパイラの導入により、さらに柔軟なコンパイラ拡張が行えるようになりました。
私は大学の研究で、変数の監視や巻き戻しによるデバッグ(Time-Travel-Debugging, TTD)を実現するKotlin Compiler Pluginを開発しました。
本セッションでは、研究で得た経験をもとに、Kotlin Compilerの仕組みと、Kotlin Compiler Pluginの実装方法・活用例を紹介します。
アジェンダ
奥深いKotlinの世界をコンパイラの視点で探究してみませんか?
本セッションでは、現在発表者が本番リリースに向けて開発中である、Mastodon用クライアントアプリの実装を通して得た経験から、Compose Multiplatformによるモダンかつ実用的なネイティブアプリを実装するための知見を紹介します。
「画像の表示」「動画の再生」「ファイルピッカー」のような、直接ユーザーが触れる機能はもちろんのこと、「ディープリンクの実装」「ローカルなデータストレージへの認証情報の保持」等の表から見えづらい部分まで、実用的なネイティブアプリの開発における頻出要素をどうすれば共通のKotlinコードで表現し、複数のプラットフォームに向けて実装できるのか、解説します。現時点でのCompose Multiplatformの実力を多くの方に知っていただき、"真のマルチプラットフォーム開発"への挑戦者を1人でも増やせるような発表にできればと思います。
この春、K2コンパイラを使った、IntelliJ IDEAのKotlinプラグインのアルファ版が発表されました。見慣れたIDEが軽くなり、さらに、スイスイとコードを書ける感覚を目指したプラグインの開発がどんどん進んでいます。
K2の洗練された仕組みによって、コードの解析がかなり早くなりました。しかも、プラグインに新しいコンパイラが入っただけではありません。早くて安定するために、それぞれの部分をゼロから作り直したり、大幅に改善されたりしています。
Kotlinチームのメンバーとして、その変化について具体的にお話しさせていただきます。
難しそうだと感じる人もいるかもしれませんが、コンパイラやIDEの内部に触れたことがない人でもわかりやすい内容になっています。皆さんがよく知っているKotlinに、違う角度から触れてみましょう!