~/VibeHandbook
無料 PDF

アプリ / モバイル

developer.android.com

Android (Jetpack Compose)

概要

完成した部屋の様子を内装業者に伝える(「窓の下に青いソファを」)のと、自分で家具を一つずつ動かしていくのを思い浮かべてください。Jetpack Compose も同じように働きます。Jetpack Compose は Android のモダンで宣言的な UI「ユーザーインターフェース・画面に見える部分」ツールキットです。レイアウトを別のマークアップファイルで定義し、ビュー参照を通じて変更する代わりに、与えられた状態に対して UI がどう見えるべきかを記述する composable な Kotlin 関数を書きます。そして状態が変化すると、フレームワークが画面を再描画します。これは現在 Google が推奨するネイティブ Android インターフェースの構築方法です。ナビゲーション、ライフサイクル、データのためのより広範な Jetpack ライブラリと連携して動作します。

強み

  • 宣言的で Kotlin ネイティブ — UI とロジックが 1 つの言語に収まり、XML レイアウトは不要。
  • 状態駆動の再コンポジションが、画面を自動的に同期させ続けます。
  • 旧来の View システムよりもボイラープレートが少なく、強力で composable な構成要素を備えています。
  • Material Design コンポーネント、テーマ、アニメーション、アクセシビリティを標準搭載。
  • 既存の View ベースのコードと相互運用できるため、段階的に導入できます。

トレードオフ

  • 再コンポジションの挙動は微妙な場合があり、状態の置き場所を誤ると過剰な再描画やバグを引き起こします。
  • それなりに新しい Android ツールと、最小 SDK「Software Development Kit・アプリを作るためのツールやライブラリ一式」のセットアップが必要です。
  • メンタルモデルが旧来の命令的なアプローチとは異なるため、学習曲線があります。
  • 成熟した View 専用のライブラリの中には、まだ相互運用のラッパーが必要なものがあります。

最適な用途

Jetpack Compose は、モダンで保守しやすいコードベースと素早いイテレーションを求める新しいネイティブ Android アプリにとって正しい選択です。Kotlin やコルーチンと自然に組み合わさります。

バイブコーディングとの相性

Compose は AI 支援開発に適しています。composable は状態の小さく純粋な関数であり、単独で生成、プレビュー、検証しやすいからです。アシスタントには、composable から状態を巻き上げる(値は下へ、イベントは上へ渡す)こと、各 composable を 1 つの役割に集中させること、リストを不変データから駆動することを依頼しましょう。@Preview アノテーションを使えば、アプリ全体を実行せずに生成された UI を目視で確認でき、フィードバックループが短くなります。

@Composable
fun Counter() {
    var count by remember { mutableStateOf(0) }
    Column {
        Text("Count: $count")
        Button(onClick = { count++ }) { Text("Add") }
    }
}