📝

KotlinConf 2024 個人的まとめ

2024/05/25に公開

2024年5月22日~24日にデンマークのコペンハーゲンでKotlinコミュニティーのカンファレンス、KotlinConf 2024が行われました。
この記事は、ライブストリームのアーカイブを視聴し、内容について気になった部分をピックアップし、個人的にまとめたものです。
(内容は精査していますが解釈のミスで誤っている部分があるかもしれません。もし、内容に誤りがあった場合はコメントでご指摘頂けると幸いです)

Opening Keynote

https://www.youtube.com/live/Ar73Axsz2YA?si=rP-dG8eWuqER7S11

Opening Talk

カンファレンスのセッション情報などを閲覧できる公式KotlinConf Appの紹介がされていました。
このアプリは、KMP&Compose Multiplatformで開発されているようです。
iOS、Android、WASM、Desktopアプリケーションをサポートしています。
Kotlinでのマルチプラットフォーム開発の指針として中身を参考にしてみようと思いました。
https://github.com/JetBrains/kotlinconf-app

Kotlin 2.0

  • 新しいKotlin K2コンパイラを採用し、プラットフォームにとらわれない方法でより堅牢で迅速に言語機能を進化させる事が出来るようになった。
  • 新しい主要な言語機能などの追加を意図的に避け、既存のコードに影響を与えずに移行できるよう配慮されている。
    • 多くの開発者やプロジェクト、そして沢山の企業プロダクトによるフィードバックで品質が高められてきた。
  • 従来のコンパイラに比べコンパイル速度が2倍に高速化されている。
  • IDEで利用するKotlin Plugin-K2 modeというものの開発が進んでいて、こちらを使うとコードハイライトの速度も1.8倍速くなる改善がされている。Kotlin Plugin-K2 modeは現在古いIDEと同等の機能を提供する作業に取り組んでいて、まもなくbeta版に、IntelliJ 2024.3ではStableになる予定。
    (K2modeについて調べて知ったのですが、IntelliJ 2024.1以降オプションでK2モードというものが搭載されているんですね。K2 modeについてはこちらの記事が参考になりそうです。K2 Kotlin Mode (Alpha) in IntelliJ IDEA)

Googleからのアップデート

  • Jetpack ComposeコンパイラがKotlinレポジトリに統合され、Kotlinバージョンを上げる際に対応するComposeコンパイラのリリースを待つ必要がなくなる。
  • IDEサポートについて
    • Android StudioでのKotlin2.0言語機能サポートも進んでいる。
    • K2 Kotlin ModeはAndroid Studio Koalaで利用可能に。
  • Jetpack Compose今後の機能
    • Compose Bom 2024.07.00では以下の機能などが追加される
      • HTML support
      • Drag and Drop
      • Lazy List item navigation
      • Shared element transition
  • KMP-Jetpack libraries
    • Annotations,Collection,DataStoreがStableで利用可能に。
    • LifecycleやViewModels,そしてデータ永続化のためのRoomも対応が進んでいる。

KMP

  • iOSエコシステムとの統合について
    • Direct Kotlin-to-Swift export
      • Kotlin shareコードをiOSバイナリで生成するだけでなくSwiftコードに変換する。
      • (Kotlin PlaygroundではSwift exportの選択肢が増えており機能が利用できるようですね)
    • IDEを切り替える事なくマルチプラットフォーム開発ができるFleetを開発中。
  • 新しいビルドシステム
  • Compose Multiplatform
    • 共通APIとして、Navigation, Lifecycle ViewModels, Resourcesが追加(Experimental)
    • Compose Multiplatform for iOSがAlpha版からBeta版へ!
    • Compose Multiplatform for WebがExperimentalからAlpha版へ!

今後の言語機能

  • Guards(Beta in Kotlin 2.1)
    • when式での分岐条件は1つの条件のみという制限が撤廃され、1つの分岐に複数の条件を指定出来るようになる。
  • Non-local break/continue
    • let内でもbreak,continueが利用可能に。

Kotlin Ecosystem

  • Kover
    • テストカバレッジを収集できるKoverがBeta版に。
  • Universal Klib(Experimental in Kotlin 2.1)
    • プラットフォームに依存せず、あらゆるプラットフォーム向けに利用出来るライブラリ群

JetBrains AI Assistant

  • メソッドの説明やコミットメッセージを自動で生成できる
  • JetBrains AI AssistantもKotlinで開発されている

Opening Keynoteを通しての感想

全体的にクロスプラットフォーム関連の話題が多かったと感じました。Androidエンジニアである自分としては今までの知識を流用してクロスプラットフォーム開発出来るので、さらに発展していって欲しいと思っています。
また、Amperなどまだキャッチアップ出来ていない部分もあったので概要を知れるきっかけになりました。最近の最新情報に関する全体感を掴めるという面でカンファレンスを振り返ることのメリットも感じる事が出来ました。

Discussion