Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
what's new in Material Design で気になったトピック
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
punchdrunker
May 26, 2023
Programming
670
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
what's new in Material Design で気になったトピック
punchdrunker
May 26, 2023
More Decks by punchdrunker
See All by punchdrunker
Kotlin2.0以降の新機能
punchdrunker
0
73
DnD in Compose
punchdrunker
0
370
7カ国語に対応したサービスでの翻訳管理システムの改善事例
punchdrunker
1
1.7k
Java Bytecode Vertical Tasting
punchdrunker
2
1.6k
getting started with dark theme
punchdrunker
2
1.1k
Practical Activity Transition in Android
punchdrunker
0
1.3k
今時のProgress indicator / Replacing ProgressDialog with ProgressBar
punchdrunker
0
760
レビュー評価4.7の秘密 / The Secret To A Better Reputation
punchdrunker
2
2.1k
Dynamic Feature Modules 入門
punchdrunker
2
2.8k
Other Decks in Programming
See All in Programming
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
1.3k
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
3
540
[2026-10-09]一枚の布で作らなくてもいい。 信頼性は「パッチワーク」で紡がれる~既存の運用と新しい可能性をつなぎ合わせてきたCREの話~
tosite
0
110
AmebaブログはKMPから卒業します
kmars0605
0
240
ChromeでローカルLLM
ryu1013
0
160
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
240
Groovy as a human and AI friendly programming language
paulk
0
120
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
180
dotNET_vulnclicker_intro.pdf
deka_morita
0
150
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
110
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.2k
AI-Powered Domain-Driven Design
ziobrando
0
320
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
330
The World Runs on Bad Software
bkeepers
PRO
72
12k
Producing Creativity
orderedlist
PRO
348
41k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
460
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
650
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Unsuck your backbone
ammeep
672
58k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Visualization
eitanlees
153
17k
Transcript
Google I/O 2023での Material Designまわりの話 @punchdrunker
mixi, Inc. What’s new in Material Design https://io.google/2023/program/630ffaa3-9b3d-4e30-a89f-91ef3e8052cf/intl/ja/
mixi, Inc. Materilal DesignとかMaterial Youとか - Material Design - 2014に発表されたデザインフレームワーク(Lollipopのプレビューが出た頃!!)
- 画面に配置する部品の設計方針などをまとめたガイドライン - ガイドラインに従った実装をサポートするライブラリ群 - 今は最新バージョンのMaterial 3とか M3とか呼ぶ事が多そう - Material You - Google I/O 2021で発表された - Material Desingの枠の中でユーザーに提供されるイイカンジの機能の総称 - アプリアイコンの形を設定で変えられる - 色の具合を設定で変えられる - 壁紙をイイカンジに変えられる
mixi, Inc. Material Design関連の主なライブラリ 従来のView用のライブラリとCompose用のライブラリは分かれているので、調査が若干大変。。。 - Compose Material (Jetpack)
- compose用のMDライブラリ - Compose Material 3(Jetpack) - Material Design 2もあった気がするけど3からパッケージ名が別名 - Material Components Android(非Jetpack) - 昔からあるView用のMDライブラリ - Javaで書かれてる - 別名MDC-AndroidとかMDC - Composeと並行してメンテされてる - Jetpackには入っていない
mixi, Inc.
mixi, Inc.
mixi, Inc. What’s new in Material Designで気になったトピック - Carousel -
RecyclerView用の LayoutManager が追加された - Dynamic Color - Content-based color - これまで壁紙に合わせたColorScheme(色のセット)はあったが、画像リソースや単色を指定して、ColorSchemeを作っ てくれる
mixi, Inc. Carousel 現状はMDCの方でしか実装されていないがComposeでも開発は進んでいる。 カタログアプリで実装されている。 https://github.com/material-components/material-components-android
- RecyclerViewのLayoutManagerとしてCarouselLayoutManagerが追加 - CarouselLayoutManagerにStrategyを渡して見せ型調整 - MultiBrowseCarouselStrategy - なるべく多くのセルを表示 - HeroCarouselStrategy - 1つ1つを強調して表示
mixi, Inc. Dynamic Color - Content-based color 2022くらいから端末の壁紙に合わせたColor schemeを選んでくれる仕組みはあった。(Android12以上)
画像リソースやColor resを渡すと最適なColor schemeを選んでテーマに組み込んでくれる仕組みが追加されるらしい。 https://m3.material.io/styles/color/dynamic-color/overview こちらも現状ではMDCでしか対応されていなさそう。 内部ではMaterial Color Utilityが使われている https://github.com/material-foundation/material-color-utilities - 渡されたbitmapをQuantizeしてScoreクラスで評価するとbaseSeedColorが得られる - baseSeedColorをもとにSchemeContentが作成されて、それをContextに反映してinflate - Pixel 6aで3秒くらい掛かったので、いろんな部品に使いまくるものではなさそう(200kBのpng)
mixi, Inc. 5 Key colors
mixi, Inc. Content-based colorの使い方(Activity) @Override protected void onCreate(Bundle savedInstanceState) {
// Invoke before the view is inflated in your activity. DynamicColors.applyToActivityIfAvailable( this, new DynamicColorsOptions.Builder() .setContentBasedSource(bitmap) // @ColorRes Intも渡せる .build() ); setContentView(R.layout.xyz); }
mixi, Inc. @Override public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle
bundle) { Context context = DynamicColors.wrapContextIfAvailable( requireContext(), new DynamicColorsOptions.Builder() .setContentBasedSource(sourceColor) .build()); return layoutInflater.cloneInContext(context).inflate(R.layout.xyz, viewGroup, false); } Content-based colorの使い方(Fragment/View)
mixi, Inc. Content-based colorの使いどころ UIのどこにコンテンツが存在し、コンテンツに基づくカラーが人の体験を向上させることができるかを考えてみま しょう。独立した画面や画面の一部など、明確に定義されたスペースにあるコンポーネントやコンポーネントのク ラスターを探します。これらのコンポーネントが個人のコンテンツと関連している場合、コンテンツベースの色を 継承する効果的な機会がある可能性があります。
mixi, Inc. Androidアプリエンジニア採用してます https://team.mitene.us/jobs
mixi, Inc. おわり