ハロー、@seto_hiです
Android向けのMaterial Components(MDC)のおさらいと現状について書きます
Material Componentsおさらい
Material ComponentsとはDesign Support Libraryの置き換えとなるようなライブラリです。
オープンソースで開発されており、ロードマップも公開されています。
Material Themingへの対応が図られており、ボタンの角丸が調整できたり角の切り落としができるようになっています。
Extended FABやBackdropといったコンポーネントの追加も行われる予定です。
必要環境
・Android Studio 3.2
・compileSdkVersionが28またはandroidx
Design Support Libraryとの差分
現状はDesign Support Libraryのv28と同等です。
以下Design Support Library v27との差分です。
新コンポーネント
Bottom App Bar、Chipsなどが追加されています。
コンポーネントの詳細は色々な方がまとめているのでググってください。
機能差分
MaterialButton
・角丸の値が設定できるようになった
・ボタンの縁取りができるようになった
iconという属性ができましたが、基本的にはandroid:drawableLeftなどでも再現できるものです。
MaterialCardView
・縁取りができるようになった
5月時点の感想
5月に行われた I/O Extended 2018 Shibuya でiOS/Android/FlutterのMaterial Componentsがどのような現状であるかを話しました。
当時の感想としては「Android向けMDCの導入はまだ早い」でした。
当時にcompileSdkVersionをPにすることはかなり攻めた構成であり、MDCとDesign Support Libraryの機能差分も少なく導入するメリットがありませんでした。
プレゼンでは8月あたりに対応を考えてもいいんじゃないの?と言っていたのですが、8月も末です。
現状どんな感じでしょうか。
2018/08 現状
全体的に開発が少し遅れているようです。
2018/5/9と2018/8/9のロードマップで比較を行いました。
Color theme対応
予定通りのようです。
8月のアップデートで、Checkbox、RadioButton、Switchが対応するようです。
Type theme対応
対応済みです。
Shape theme対応
R18(8月)リリース→R19(9月)以降のリリースになりました
しかし@ExperimentalなCutCornerTreatmentなどというクラスがあったりしてそろそろかな?という印象です。
新コンポーネント
まだまだ待ちのようです。
Backdrop
R17(7月)リリース→特に記載がなくなりました...
リリース未定ということでしょうか?
Extended FAB
リリース未定→リリース未定のまま
現状からの再判断
まだ対応するには早いかなと思います。
8月時点でのMDCは5月時点との差分が少なく、まだ対応する必要性は感じませんでした。
じゃあいつ対応すべき?
Shape theme対応などが完了した9月以降が本番なのではないかと思います。
現状はDesign Support Library v28と同等な機能しかありませんが、今後機能差分が出てきた際などには対応を考えるべきだと思います。
(Support Libraryは28.0までしかリリースされないはずなので)
以上!