BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Google Jetpack Composeが1.0に到達、JetBrainsはCompose Multiplatformのアルファ版をローンチ

Google Jetpack Composeが1.0に到達、JetBrainsはCompose Multiplatformのアルファ版をローンチ

原文(投稿日:2021/08/08)へのリンク

Googleが提供するKotlinべースのAndroid用宣言型UIフレームワークであるJetpack Composeが、バージョン1.0の安定版に到達した。開発者エクスペリエンスを向上する新たなツールも含まれる。Google版のComposeがAndroidのみをサポートする一方で、Kotlinの開発元であるJetBrainsは、ComposeをデスクトップやWebに拡張するCompose Multiplatformを発表した。

Jetpack Composeは、宣言形式を用いたUI定義によって、AndroidアプリのUI開発を促進することを目的としている。つまり開発者は、アプリの状態変化に対応する、構成可能なエレメントを組み合わせることによってUIを作り上げるのだ。Googleによれば、Composeを使うことで、従来よりも大幅に少ないコードでユーザインタフェースを開発することができる。既存プロジェクトへの適用を容易にするため、Composeを段階的に統合してViewに組み込むことや、その逆を行うことが可能になっている。

次に示すのは、標準的なAndroidアクティビティ内に、シンプルなCompose Textウィジェットを配置する方法である。

class MyActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...

        val greeting = findViewById<ComposeView>(R.id.greeting)
        greeting.setContent {
            MdcTheme { // or AppCompatTheme
                Greeting()
            }
        }
    }
}

@Composable
private fun Greeting() {
    Text(
        text = stringResource(R.string.greeting),
        style = MaterialTheme.typography.h5,
        modifier = Modifier
            .fillMaxWidth()
            .padding(horizontal = dimensionResource(R.dimen.margin_small))
            .wrapContentWidth(Alignment.CenterHorizontally)
    )
}

1.0リリースでは、Compose Previewなどいくつかの新ツールが追加されている。UIコンポーネント開発の簡素化を目的とするCompose Previewを使えば、デバイスやエミュレータ上にテストアプリをインストールして実行しなくても、さまざまな状態やテーマなどでの表示内容を確認することができる。物理的なデバイス上で、コンポーネントプレビューを独立的に実行して、インタラクティブなテストを行うことも可能だ。これらの新機能はすべて、Android Studio Arctic Fox内で使用することができる。

前述のように、Googleの発表に続いて、JetBrainsがCompuse Multiplatformのアルファ版をリリースした。Compose MultiplatformにはCompose for DesktopとCompose for Webが含まれており、Kotlin Multiplatformを活用することによって、さまざまなプラットフォームを数多くサポートする。Compose DesktopはGoogleのSkiaライブラリを使用して、Windows、macOS、Linux用のUIウィジェットを描画する。すべてのサポート対象OSで、ネイティブなルック・アンド・フィールに代わる統合的エクスペリエンスを提供する、というアプローチは、Flutterのそれと同じであり、React Nativeとは対照的だ。

Kotlinチームによると、Compose Multiplatformを使用することによって、Electronアプリに比較して、メモリ消費量の削減、インストールサイズ、UIレンダリングパフォーマンスなど、数多くのメリットが期待できる。

アルファリリースには新しいAndroid Strudioプラグインも含まれており、IDE内でのコンポーネントプレビュー表示のサポートなど、多数の付加機能が提供されている。

早期段階のアルファリリースであることから、JetBrainsは、その利用を概念実証(proof-of-concept)のための実装の記述と、今年中のリリースが予定されている安定版リリースの準備に限定している。

この記事に星をつける

おすすめ度
スタイル

BT