JetBrains Fleetを使ってみる

# はじめに
昨日はkotlinFest2024、お疲れ様でした！
非常に学びの多い時間でしたが、中でもJetBrainsが提供しているFleetに関する情報が気になり、試してみたいと考えておりました。
そこでFleetの使い勝手などを確認する為、お試しでKMMプロジェクトを作成して構築し、実行まで行ってみようと思います。

# Fleetとは？
JetBrainsが提供している次世代の統合開発環境（IDE）になります。
Fleetは、現代の開発者のニーズに応える為に設計された軽量で柔軟なIDEであり、さまざまな言語やフレームワークに対応しています。
また、KMMプロジェクトの開発に適した環境も提供しており、Kotlinを使用したクロスプラットフォーム開発を効率的に行うことが可能です。

# 1. 導入準備
まず、環境構築を進める上で、環境がmacなのでmacを前提に進めていきます。

Fleetはまだ正式版ではありませんので、Toolboxより導入ができる状態です。
手元にJetBrainsのToolboxを導入していない場合は導入しておきます。

![スクリーンショット 2024-06-23 9.25.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/1b0bfe3a-f910-b694-4fdb-0968dbab439c.png)

Toolboxから上記を選択し、インストールより導入が可能です。

# 2. Fleedの初期設定
インストールが完了し、立ち上げると以下のような画面が表示されるので同意して進みます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/68d47199-dfe5-7bac-b611-9ea2c3fa57ac.png" width="320px">

同意して次に進むと、ワークスペースが表示されます。
このワークスペースからプロジェクトをインポートして調整していきます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/0ceee414-b75e-5d87-e09c-0641e854bf2a.png" width="520px">

# 3. KMMプロジェクトインポート
ワークスペースまで表示できたら、次にKMMプロジェクトを作成してインポートしてみます。
KMMのプロジェクトはKotlin Multiplatform Wizardにて作成可能です。

https://kmp.jetbrains.com/?_gl=1*fas060*_ga*MTY3MDY5MjgwOS4xNzAzNTE3MDY4*_ga_9J976DJZ68*MTcxMTE0OTMxNS41LjEuMTcxMTE1MDYxNi41OC4wLjA.&_ga=2.142849589.1877468280.1711118271-1670692809.1703517068#templateGallery

今回は以下を設定してダウンロードし、試してみようと思います。

![スクリーンショット 2024-06-23 13.47.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/ababfee9-7e92-46ef-d9d8-e42030189738.png)

上記を設定しダウンロードしたら、先ほどのワークスペースからインポートして次に移ります。

# 4. KMMプロジェクトをビルド実行する
早速先ほど作成したプロジェクトをインポートしたところ、早速エラーが発生しました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/61757524-f95a-2454-c33f-c44839da69e6.png" width="320px">

何が起こったのかと確認してみたところ、Xcodeを導入し忘れていてエラーになるという凡ミスでした、、、
KMMでios側も対象にするとなると当然Xcodeが必要となりますので、導入します。

また、Xcodeを導入してもシュミレーターを導入していないと以下のようにエラーになります。

![スクリーンショット 2024-06-23 9.54.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/64dafb8e-cd63-2531-2daf-bcb980964f74.png)

その場合下線の引かれている部分を選択するとダウンロードが可能です。

ダウンロードが完了するとXcode部分のエラーは解消されていると思います。
ですが、次はgradleがエラーになりました、発生しているエラーは以下になります。

```
BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 66
```
次は何が起こったのかと調べてみると、どうやらJavaのバージョンが原因とのこと。
現在設定しているJava22だと対応していないようなので、21まで落とす必要がありそうです。

![スクリーンショット 2024-06-23 13.25.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/2100adb5-9dd6-1460-f420-cf5524de77d8.png)

PreferanceからJavaと検索し、設定されているJDKを確認します。
やはりJava22が設定されていたので、Java21を設定することで解消しました。

上記を調整することで、ようやくビルドができるようになりました。
実行してみるとこんな感じで表示されます。

![スクリーンショット 2024-06-23 13.53.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/dc7d639c-55b7-bd79-00a7-dcb597d24b86.png)

上記はiosとデスクトップ版ですが、Androidも問題なく実行できています。
どうやらケーブルでAndroid端末を繋いでいると、実機で実行されるみたいですね。

# 注意点
先ほどのJavaバージョンですが、Java17まで下げてしまうとsetting.gradleが読み込まれない不具合が発生しました。
原因は不明ですがひとまずJava21を使っておくのが良さそうです。

# さいごに
Javaのバージョン部分は中々ハマるポイントですが、そこさえ解決すれば一旦は問題なさそうです。
プレビュー部分もAndroidStudioで開発するよりも便利に感じますし、KMMのIDEとしてFleetはAndroidでいうところのAndroidStudioのような関係性になりそうな気がします。
まだプレビュー版なので不安定なところはありそうですが、今後に注目かと思います。