人気の開発ツールを開発するJetBrainsは、GoogleJetpack Compose をベースに構築されたマルチプラットフォーム宣言型UIツールキットのサポートを拡大する、Compose Multiplatform for iOSのアルファリリースを発表しました。Compose Multiplatformは、Android、Windows、Linux、macOS、Webに対応していますが、今回、iOSを追加し、すべての主要OSをカバーすることになりました。
Compose Multiplatformは、対応するすべてのプラットフォームで同じAPIを提供することで、Jetpack Compose のAPIを複製してアプリ開発を合理化します。Androidのモダンなユーザーインターフェイスを作成するためにJetpack Compose を使用した経験を持つ開発者は、そのスキルを応用して、iOSとそれ以降をターゲットとするCompose Multiplatformを通じて共有UIを構築することができます。
Compose Multiplatformには、ステートマネジメント、レイアウトコンポジション、アニメーションが含まれています。このツールキットは、リソースロードなどOSに依存する機能にも対応し、移植性を最大限に高めるために、より高度な抽象化機能を使用しています。Kotlin用のSkiaとして知られるSkikoグラフィックライブラリを活用することで、Compose MultiplatformはiOSでキャンバスベースのレンダリングを利用します。Skikoは、GoogleがChrome、ChromeOS、Flutter製品に採用しているSkiaをベースにしています。
Flutterと同様に、このアプローチにより、Compose Multiplatformアプリケーションのサポートするすべてのプラットフォームで一貫したルック&フィールを提供します。Flutterとは異なり、ツールキットにはMaterialとMaterial 3ウィジェットがデフォルトで含まれているため、標準的なAndroidのデザインに似たアプリが作成できます。現時点ではiOSでサポートされているウィジェットのルックアンドフィールはMaterialのみですが、将来的にネイティブウィジェットのルックアンドフィールが実装されるかどうかは、JetBrainsでは確認されていません。
クロスプラットフォームアプリの開発において重要な要素であるOS SDKとの相互運用性に対応するため、Compose Multiplatform for iOSは、UIKitの上に双方向の相互運用レイヤーを提供しています。これには2つの主要なクラスが含まれます:UIKitView と ComposeUIViewController です。UIKitViewを使用すると、開発者はマップ、Webビュー、メディアプレーヤー、カメラフィードなどのプラットフォーム固有のウィジェットをCompose UIに組み込むことができます。一方、ComposeUIViewControllerは、UIKitやSwiftUI のアプリケーションにComposeの画面を挿入するために利用でき、既存のアプリケーションを徐々にComposeアプリケーションに変換することができます。
no-code やlow-code の開発環境が拡大し続ける中、Compose Multiplatform のようなツールやAppMasterのようなプラットフォームは、世界中の開発者にとってアプリ開発をより身近で効率的にしています。2022年のno-code 、low-code アプリ開発に関する包括的なガイドはこちらをご覧ください。