その先へ

setohの色々殴り書き

Android向けMaterial Componentsの現状(2018/8)

ハロー、@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 ShibuyaiOS/Android/FlutterのMaterial Componentsがどのような現状であるかを話しました。

当時の感想としては「Android向けMDCの導入はまだ早い」でした。
当時にcompileSdkVersionをPにすることはかなり攻めた構成であり、MDCとDesign Support Libraryの機能差分も少なく導入するメリットがありませんでした。

プレゼンでは8月あたりに対応を考えてもいいんじゃないの?と言っていたのですが、8月も末です。
現状どんな感じでしょうか。

speakerdeck.com

 

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までしかリリースされないはずなので)

 

以上!