JetpackCompose

Jetpack ComposeでMaterial3テーマをカスタムする方法

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

MaterialThemeビルダーによる基本構造

Jetpack ComposeでMaterial3テーマを構築するには、MaterialThemeビルダーを使用します。このビルダーを使うことで、ColorScheme(カラーパレット)、Typography(フォントスタイル)、Shape(コンポーネントの角丸設定)などを一括で管理できます。

MaterialThemeの基本的な使い方

MaterialThemeは、アプリ全体に適用するテーマを定義するために使用します。以下に簡単なコード例を示します。

⚠️ 注意: Typography()はパラメータを指定する必要がある場合があります。Material3の最新バージョンでは、Typography(MaterialTheme.typography)のように既存テーマを継承することも推奨されます。


デフォルトテーマの確認方法

Jetpack Composeプロジェクトを作成すると、Empty Compose Activityテンプレートによってデフォルトテーマが自動生成されます。このテーマはmaterial3ライブラリに基づいており、以下のように確認できます。

  1. res/values/styles.xmlを開き、AppThemeの定義を確認
  2. またはMainActivity.ktMaterialThemeを使用している部分を探す

ブランドカラーを基にしたColorScheme作成

ブランドカラーを用いて、Material3のColorSchemeを作成する手順は以下の通りです。

カラーパレットの選定ポイント

  • 主なブランドカラー(Primary Color):最も目立たせる色として選びましょう
  • 補助色(Secondary Color):アクセントやアイコンなどに使用する色
  • 背景色(Background / On Background):ユーザーが見やすい色を設定

ColorScheme生成の手順

  1. Material Theme Builderツールを使用する
  2. Material Theme Builder でブランドカラーを入力
  3. 「Generate」ボタンを押すと、自動的にColorSchemeが作成されます

  4. 手動で定義する場合(例)

このように定義することで、アプリ全体に一貫したデザインを実現できます。


TypographyとShapeのカスタマイズ実践

Typography(フォントスタイル)やShape(コンポーネントの角丸設定)もテーマに組み込むことで、UIの個性を強調できます。

フォントサイズ・スタイルの調整

このようにTypographyをカスタマイズすることで、見出しや本文のスタイルを自由に設定できます。

角丸設定の最適化

コンポーネントごとに角丸を調整することで、デザインの一貫性と親しみやすさを高められます。


ダークモード対応の実装方法

ダークモードに対応することで、ユーザーがどんな環境でも快適にアプリを使用できるようになります。

Light/Darkモード切り替えの仕組み

  • システム設定に基づく自動切り替えLocalContext.current.resources.configuration.uiModeで判定
  • 手動での切り替え:ボタンなどを使って状態を管理

テーマの動的変更コード

⚠️ 注意: rememberSaveableを使用して状態を永続化する例が必要です。以下のコードを参考に実装してください。


カスタムテーマのエクスポートと活用

作成したテーマは、プロジェクト全体や他のコンポーネントで再利用できるように整理することが重要です。

設定コードの再利用方法

  1. Theme.ktファイルを作成し、以下のように定義

  1. MainActivity.kt内でこのテーマを呼び出すように設定

プロジェクト全体への適用手順

項目 補足
共通ファイルの作成 Theme.ktuiディレクトリに配置 他のコンポーネントが参照しやすい
依存関係の明確化 import com.example.app.ui.Theme.* モジュール間の依存関係管理
エクスポート機能の活用 Material Theme Builderツールで生成したコードを直接プロジェクトに貼り付け 最新のカラー・フォント情報を反映

まとめ

Jetpack ComposeでMaterial3テーマをカスタマイズする際には、以下の手順を意識してください。

  1. MaterialThemeビルダーで基本構造を定義
  2. ブランドカラーを基にColorSchemeを作成
  3. TypographyとShapeの調整でUIの個性を表現
  4. ダークモードに対応する仕組みを実装
  5. 作成したテーマをプロジェクト全体で再利用

記事内で紹介したステップを踏むことで、初心者でも独自のブランドイメージに合わせたMaterial3テーマを作成できます。サンプルコードをプロジェクトに適用し、あなたのオリジナルテーマを試してみてください。


スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-JetpackCompose