【KotlinConf '24】Keynoteを見てAndroidエンジニアの視点で記憶に残ったこと

## はじめに

本記事はKotlinConf '24のKeynoteを見てAndroid エンジニアの視点で記憶に残ったことの個人的メモになります。

KeynoteはYouTubeで視聴可能です。詳細はこちらをご覧ください。

https://www.youtube.com/watch?v=Ar73Axsz2YA

## 200万人のデベロッパーが定期的にKotlinを書いている

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/d1f37c29-80d4-f0fd-19ca-6a1a9a01f6c2.png)


## Kotlin 2.0 正式リリース

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/ed472d9b-c2c9-d052-78be-300e9bd83cf6.png)

## Kotlin 2.0 は2倍高速

あっと言う間にビルドが終わるからコーヒーを飲んで休憩する時間はないよ！すまん！とのこと。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/0f76f8d4-90c2-35c6-354e-9f07026a4981.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/ee74ba26-2dd9-b8d8-b709-55a36b5c7c4d.png)

## IntelliJ の K2 modeがまもなくBetaに到達

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/3bca1730-f19d-ee51-dd7f-391ced3e8cb5.png)

## Kotlin 2.0へは安全に移行可能

自動テストやパートナー、コミュニティの協力によりKotlin 2.0を徹底的にテストした結果これまでで最も高品質なリリースになったとのこと。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/b61b562e-4c6d-f703-834e-c9dd1763a64c.png)

## Android関連のプラグインはKotlin 2.0に対応済み

* Android Lint
* Parcelize
* KSP (Kotlin Symbol Processing)
* Compose Compiler Plugin
* など

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/74725d35-2c1f-7ca9-83e4-fb32ffec5136.png)


## Compose Compiler PluginのリリースはKotlinのリリースと統合される

これまでKotlinのバージョンとCompose Compiler Pluginのバージョンをマッチさせる必要がありましたがKotlin 2.0から不要になるとのことです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/796acfc5-0e02-34e3-128d-5e60644f6a18.png)


## JetpackライブラリのKotlin Multiplatform対応

Lifecycle, ViewModelsに加えRoomもKotlin Multiplatformに対応するとのこと。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/890e165f-2e14-4c13-5195-780d91851289.png)


## Direct Kotlin-to-Swift export

2024年のKotlin Multiplatformのロードマップでも示されていましたが、KotlinのコードからSwiftのコードを生成できるようになる?ようです。スタンドアローンツールとして提供されるとのこと。これまでのKotlin Multiplatformにはなかった方向性なので登場が楽しみですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/3e636da5-c16a-db5f-e1e4-7bf6cc2f9013.png)

https://blog.jetbrains.com/kotlin/2023/11/kotlin-multiplatform-development-roadmap-for-2024/

## Fleet

JetBrainsの次世代IDEであるFleetを使用するとKotlinとSwiftの行き来が容易になることが紹介されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/19755482-42a9-22fa-a1c6-6484a47c3943.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/559a7df5-1739-13c8-850b-8294d83b709b.png)

Compose Multiplatformのプレビューも可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/4f7efd00-d08f-496b-2892-e7f16fbdd57e.png)


https://www.jetbrains.com/fleet/


## Amper

ビルドツールのAmperも紹介されました。ビルド設定の記述が容易になるとのこと。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/35d29998-c32d-3115-e209-8fc2182877d5.png)


https://blog.jetbrains.com/amper/

https://github.com/JetBrains/amper

## Kotlin Multiplatformで最大100%のコードベースを共有可能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/c4d08ecb-fda4-db5c-7a1f-1c74d781da67.png)


## Compose Multiplatform for iOS がベータに到達

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/2afe5d32-6fc1-0629-2d79-84a09c890aec.png)

## Compose Compose Multiplafrom for Web がベータに到達

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/cd3a4d84-d781-1fa7-633a-5d3416b98b50.png)


## Kotlin に登場予定の新機能

### Guards

whenのType guardが拡張されるとのこと。Kotlin 2.1でBetaで登場。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/cbfa35b8-3f22-3f9c-2dfb-73966a024ec8.png)

### $-escaping problem

Multiline stringsにおいて`$$"""`というシンタックスが追加されるとのこと。このとき`$`はシンボルとして認識されるようになります。Kotlin 2.1でBetaで登場。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/1527c4d0-2c1c-fbf9-9995-2b8c5b2d9072.png)

### Non-local break/continue

`break`と`continue`がローカルでなくても使用可能になるとのこと。Kotlin 2.1でBetaで登場。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/13d153ed-20a1-138c-73ab-9d43159bf912.png)

### Context parameters(receivers)

Kotlin 2.2でBetaで登場。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/be0208ac-1352-21fd-7297-4c722e494b65.png)

## Universal Klib

すべてのプラットフォームで利用可能なUniversal Klibが登場するとのこと。Kotlin 2.1でExperimentalサポート予定。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56635/f284bd6b-4193-8aa0-7483-dde086ecfc8b.png)

## おまけ: Kodee

Keynoteの冒頭でKotlinのマスコットである[Kodee](https://blog.jetbrains.com/ja/kotlin/2023/05/the-kotlin-mascot-returns/)が登場しました。

https://x.com/kotlinconf/status/1793591474623225955

会場では一緒に写真も撮れるようです。

https://x.com/kotlinconf/status/1793654702183223341