JetBrains は、Google の Android 用 Jetpack Compose のポートである Compose for Desktop and Web をアルファ版にリリースしました。 ここに新機能があります。
聞いたことがない場合 Jetpack Compose、最近どこにいましたか? Google は、Android の標準 XML レイアウト エンジンを置き換えるために、この宣言型 UI フレームワークを作成しました。 Compose を使用すると、開発者はレイアウトと付随するロジックをすべて Kotlin で作成できます。 Kotlin を開発している JetBrains も Compose アクションに参加し、デスクトップと Web の両方への移植に取り組んでいます。
JetBrains Compose for Desktop and Web は、しばらく前から開発中です。 開発者が Compose でクロスプラットフォーム アプリを作成するために使用できる、プレアルファ版の「テクノロジー プレビュー」が公開されています。 個人的に使ったことがあるのは、 私のSamsung Firmware Downloaderアプリ、そしてそれはかなりうまく機能します。
現在、JetBrains は Compose のバージョンをアルファ版に昇格させています。 これは、API がより安定し、いくつかの新機能や変更が追加されたことを意味します。
Web 用に作成する
まずはウェブです。 Compose for Web は均等です デスクトップ用作成よりも新しい、かなり欠けています。 とはいえ、それが無駄だというわけではありません。 開発者はデスクトップや Android で利用できる派手なコア UI 要素を利用できないかもしれませんが、宣言的な設計原則に従って Kotlin で記述する利点は得られます。
現在 Compose はアルファ段階にあり、Web API はより安定しており、時間の経過とともに加えられる破壊的な変更は (たとえあったとしても) 少なくなります。
構成ウィンドウ管理
デスクトップに戻ると、開発者がアプリ内でウィンドウを操作する方法にいくつかの変更があります。
一つ目は新作です コンポーザブル ウィンドウ API. これにより、開発者はアプリ内のウィンドウを宣言的に操作できるようになります。 たとえば、ウィンドウのタイトルを状態に応じて変更できるようになり、状態に基づいてウィンドウを開いたり閉じたりすることもできます。
新しいウィンドウ API の別の部分では、開発者は新しいウィンドウを (固定ではなく) 適応サイズで開くことを選択できます。 つまり、Compose はコンテンツに基づいてウィンドウに必要なサイズを計算し、初期サイズを自動的に設定してからウィンドウを開きます。
プラグイン
JetBrains Compose には、コンパイルと実行を実行するための Gradle プラグインが常に含まれています。 アルファ版では、このプラグインのバージョンが向上し、いくつかのバグ修正も行われています。
ただし、Gradle プラグインの上には、 IDE プラグインになりました IntelliJ IDEA と Android Studio では、デスクトップおよび Web 用の Compose のサポートが向上します。 Compose for Android と同様に、このプラグインを使用すると、開発者はコンポーズ可能な関数にプレビューとして注釈を付け、IDE でレイアウト プレビューを直接表示できます。
プラグインは現時点では非常に基本的なものです。 現時点で備えている他の唯一の機能は、コンポーズ可能な関数名にタイトルケースを使用することに関する IDE lint 警告を削除することです。 ただし、ライブ プレビューなど、時間の経過とともにさらに多くの機能が追加される予定です。
アーキテクチャのサポート
JetBrains Compose の目標はクロスプラットフォームであることですが、まだすべての CPU アーキテクチャを完全にはサポートしていません。 アルファ版では、現在のサポートが次のように拡張されます。
- macOS: x86-64 (amd64)、arm64
- Windows: x86-64 (amd64)
- Linux: x86-64 (amd64)、arm64
- ウェブ: 最近のこと
もちろんこれですべてをカバーできるわけではありませんが、サポートは今後さらに改善されるでしょう。
今後の展開
Compose をアルファ状態に移行するという JetBrains の選択は重要です。 これは、最終的にはベータ版と安定版の段階で開発を継続することを計画していることを意味します。 そしてもちろん、さらに多くの機能があります。
結論
Compose が何をもたらすのかを見るのは非常に楽しみです。 Android では、古い (完全に使用可能ではありますが) レイアウト エンジンを置き換えます。 デスクトップと Web では、TypeScript ベースの言語よりも (少なくとも私にとっては) 使いやすい、厳密に型指定された言語を使用した宣言型デザインが実現します。 特にデスクトップでは、Compose は機能的なレイアウト エンジンのかなり大きなギャップを埋めるのに役立ちます。
JetBrains Compose を自分で試してみたい場合は、 GitHub リポジトリを確認してください 開始方法の詳細については、こちらをご覧ください。