既存のアプリに 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: カスタム シェイプとタイポグラフィを移行する
アプリでカスタムシェイプを使用している場合:
- Compose コードで、XML のシェイプ定義を複製する
Shapeオブジェクトを定義します。 この
ShapeオブジェクトをMaterialThemeに渡します。詳細については、シェイプをご覧ください。
- Compose コードで、XML のシェイプ定義を複製する
アプリでカスタム タイポグラフィを使用している場合:
- Compose コードで、XML のテキスト スタイルとフォント定義を複製する
Typographyオブジェクトを定義します。 この
TypographyオブジェクトをMaterialThemeに渡します。詳しくは、タイポグラフィをご覧ください。
- Compose コードで、XML のテキスト スタイルとフォント定義を複製する
ステップ 5: テーマの移行を検証する
Compose の新しいマテリアル テーマの信頼できる情報源として、常に元の XML テーマの既存のテーマ値を使用します。ブランドの一貫性を維持し、視覚的な回帰を避けるため、移行中に新しいテーマ値を考案しないでください。
新しい Compose テーマの値が既存の XML の値と一致していることを確認します。移行した値をハードコードしないでください。