Material You 風の ChMate テーマを作るアプリを作った【MY2ChMate】
Material You の Dynamic Color が適用された ChMate テーマを作れるアプリ、MY2ChMate を作ったのでその宣伝と作った感想を書いていく。
開発に至った経緯
Jetpack Compose の Material 3 が Stable になったので、なにかアプリを作ってみたいと考えていた。どうせなら最新の Android の機能に関するものが良いなと思っていたので、Google の新デザイン言語 Material You の Dynamic Color に関するアプリにした。
あと、あまり関係ないが停滞していた (?) ChMate の開発が再開されたのでその応援という意味もある。
なにをするアプリなのか
MY2ChMate は、現在のデバイスの Dynamic Color の配色に沿った ChMate のスキンを生成する。Dynamic Color は、Android 12 以降の機能で、設定されている壁紙の色を抽出し、UI の色にする機能。この色をアプリで取得して、ChMate のスキンを生成している。
故に、Android 12 以降でしかアプリが使えないようになっている。
学んだこと
Material 3 ライブラリが正式版になったので、Alpha リリースのときの知識が通用しないところもあった。基本的にはウィジェットをポンポン置いていくだけで Material You なアプリを作れるが、より「それ」っぽくするには手動での配色変更も必要だった。
また、Android 12 以降で追加された要素にも対応することにした、Themed Icon や SplashScreen API などが当てはまる。これらに対応するだけで、モダンな Android アプリ感が増す。12 未満の Android に対応しないので、これらの実装も楽だった。
テーマの生成に関して、アプリ固有ストレージの使い方とか、ZIP ファイルの作り方とか、ダウンロードフォルダへの保存などを初めて実装した。難しい要素はないけど、ZIP ファイルを作るというのはふつうの Android アプリではしないことなので新鮮だった。
これからどうするか
とりあえずテーマの生成ができるようになっただけなので、これから細かくカスタマイズできるようにしていきたい。あと星の色とかをまだ設定できていない (Dynamic Color にそんな色数がない) ので、その辺りをどうするか悩んでいる。
個人的にやりたいのが、アイコン画像の同梱。Material Symbols から適したアイコンを引っ張ってくる、というもの。Material You では微妙にアイコンに色が付いてると思うので、それも再現できたらなと考えている。SVG に色をつけてから PNG としてレンダリングする処理が必要になってきそう。
ぜひ ChMate をお使いの方は使ってみてほしい。