Skip to content

Android 専用コンポーネント

Compose Multiplatformは、Jetpack Composeを基盤としています。Compose Multiplatformの機能のほとんどは、すべてのプラットフォームで利用可能です。しかし、Androidターゲットでのみ使用できるAPIやライブラリがいくつか存在します。これは、それらがAndroidに固有であるか、まだ他のプラットフォームに移植されていないためです。このページでは、Compose Multiplatform APIのこれらの部分を要約します。

時々、Jetpack Composeドキュメントやコミュニティが作成した記事で、Androidターゲットでのみ使用できるAPIを見かけるかもしれません。 commonMainコードでそれを使用しようとすると、IDEがこのAPIは利用できないと通知します。

Android 専用API

Android専用APIはAndroidに固有のものであり、他のプラットフォームでは利用できません。これは、他のプラットフォームがAndroidで使用される特定の概念を必要としないためです。このAPIは通常、android.*パッケージのクラスを使用するか、Android固有の動作を設定します。以下に、Android専用APIの一部例を挙げます。

通常、このようなAPIの一部を共通化する強力な理由はないため、androidMainのみに留めるのが最善です。

シグネチャにAndroidクラスを含むAPI

Compose MultiplatformのAPIには、シグネチャにandroid.*androidx.*androidx.compose.*を除く)を使用しているものの、その動作が他のプラットフォームにも適用可能な部分があります。

それらは将来、複雑さと需要に応じてcommonMainに移植される可能性があります。

パーミッション、デバイス(Bluetooth、GPS、カメラ)、IO(ネットワーク、ファイル、データベース)など、アプリケーション開発時に頻繁に使用されるAPIは、Compose Multiplatformのスコープ外です。

シグネチャにAndroidクラスを含まないAPI

APIの一部には、そのシグネチャにandroid.*androidx.*クラスが含まれておらず、他のプラットフォームにも適用可能であるにもかかわらず、Androidターゲットでのみ利用できるものがあります。その理由は通常、実装が多くのプラットフォーム固有の要素を使用しており、他のプラットフォーム向けに別の実装を記述するのに時間がかかるためです。

通常、このようなAPIの一部は、Androidターゲット向けのJetpack Composeで導入された後、Compose Multiplatformに移植されます。

Compose Multiplatform 1.8.2では、以下のAPIはcommonMainでは利用できません

Android APIの移植リクエスト

Androidから移植可能な各APIについて、Compose Multiplatform YouTrackに未解決のissueがあります。あるAPIがAndroidから移植され共通化できると思われる場合、それに対する既存のissueがない場合は、新規作成してください。