Compose で XML テーマをマテリアル 3 に移行する

既存のアプリに Compose を導入する場合は、Compose コンポーネントで MaterialTheme を使用するようにマテリアル XML テーマを移行する必要があります。つまり、アプリのテーマ設定には、View ベースのテーマと Compose テーマの 2 つの信頼できる情報源があります。スタイル設定の変更は、複数の場所で行う必要があります。アプリが Compose に完全に移行されたら、XML テーマ設定を削除します。

色の移行には、マテリアル テーマビルダー ツールを使用できます。

XML から Compose への移行を開始するときは、テーマ設定を Material 3 Compose テーマ設定に移行します。

用語集

用語 定義
MaterialTheme Compose UI コンポーネントにテーマ設定(色、タイポグラフィ、シェイプ)を提供するコンポーズ可能な関数。
Shape MaterialTheme のカスタム コンポーネントのシェイプを定義するために使用される Compose オブジェクト。
Typography MaterialTheme のカスタム テキスト スタイル(フォント ファミリー、サイズ、太さ)を定義するために使用される Compose オブジェクト。
Color MaterialTheme のカスタム カラーパターンを定義するために使用される Compose オブジェクト。
XML テーマ ビューシステムで使用される、XML ファイルで定義された Android のテーマ設定システム。

制限事項

移行を行う前に、次の制限事項に注意してください。

  • このガイドでは、Material 3 への移行のみに焦点を当てます。別のデザイン システムから移行する場合は、マテリアル 2 または Compose のカスタム デザイン システムをご覧ください。
  • 最終的な目標は Compose への完全な移行であり、これにより XML テーマ設定を削除できます。このガイドでは移行方法について説明しますが、XML テーマ設定を最終的に削除する方法については説明しません。

ステップ 1: デザイン システムを評価する

XML View プロジェクトで使用されているデザイン システムを特定します。既存のデザイン システムを Compose の Material 3 に移行するための移行パスと必要な手順を分析します。

ステップ 2: テーマのソースファイルを特定する

テーマ設定に必要なすべての XML リソースとファイル(ライトモードとダークモードのカラースキーム、テーマ、シェイプ、ディメンション、タイポグラフィ、スタイル、その他の関連ファイル)を特定して見つけます。

文字列などのリソースはそのまま再利用できるため、移行する必要はありません。

ステップ 3: 色を移行する

ダークとライトのカラーパターンを XML からマテリアル 3 Compose の同等のものに移行します。

ステップ 4: カスタム シェイプとタイポグラフィを移行する

  • アプリでカスタムシェイプを使用している場合:

    1. Compose コードで、XML のシェイプ定義を複製する Shape オブジェクトを定義します。
    2. この Shape オブジェクトを MaterialTheme に渡します。

      詳細については、シェイプをご覧ください。

  • アプリでカスタム タイポグラフィを使用している場合:

    1. Compose コードで、XML のテキスト スタイルとフォント定義を複製する Typography オブジェクトを定義します。
    2. この Typography オブジェクトを MaterialTheme に渡します。

      詳しくは、タイポグラフィをご覧ください。

ステップ 5: テーマの移行を検証する

Compose の新しいマテリアル テーマの信頼できる情報源として、常に元の XML テーマの既存のテーマ値を使用します。ブランドの一貫性を維持し、視覚的な回帰を避けるため、移行中に新しいテーマ値を考案しないでください。

新しい Compose テーマの値が既存の XML の値と一致していることを確認します。移行した値をハードコードしないでください。