SlideShare a Scribd company logo
1 of 88
Download to read offline
マテリアルデザインを
用いたデザインリニューアル
株式会社Fablic
ninjinkun,yuki930
@ninjinkun @yuki930
エンジニア デザイナー
ninjinkun
• 最近はDagger2に入門中
• http://ninjinkun.hatenablog.com/
yuki930
• 山口 有由希
• ずっとAndroidユーザー
• 福岡でデザイナー
• 2014年1月にFablicに入社
女の子のためのフリマアプリ
300万
ダウンロード
2014
Google
BestApp
Fril 2.x
Fril 3.x
時系列の説明
• 2014年6月 マテリアルデザインガイドライン公開
• 2014年7月 フリルAndroid版リニューアル計画スタート
• TV CMが決まってリリース日が10月末に確定
• タイミングが5.0と重なりそう
• どうせリニューアルするならマテリアル対応…
• 2014年12月 Google Play Best App 2014受賞
UIリニューアルの流れ
v2.5 v3.0 v3.1 v3.2
∼2014年10月 2014年10月 2014年11月 2014年12月
リニューアル前
体験改善!

自力Material
サポート

ライブラリ適用
タブレット対応
マテリアルデザインの

キャッチアップと実装について
今日お話すること
マテリアルデザインの理解と取り組み

デザイン編
Google I/O 2014
マテリアルデザインの理解
信じられるもの:ガイドライン
http://www.google.com/design/spec/material-design/introduction.html
リアルタイムに変わっていくから!
今もなお…
Material Design on Android Checklist
マテリアルデザインを理解する上でキーとなる4つのポイントの解説
Tangible Surfaces A Bold, Print-Like Aesthetic Authentic Motion Adaptive Design
手触りのある

表面の表現
印刷物デザインの

応用
修飾ではなく

意味を伝える動き
画面サイズの変化に
適応するデザイン
http://android-developers.blogspot.jp/2014/10/material-design-on-
android-checklist.html
マテリアル・デザインって何?

Androidデザイン責任者にインタビュー
どういう経緯で生まれたのか?が分かる記事
我々は誰もが使えて、その人のブランドやアイデンティティやニーズや能力を本当に表現できるデザイ
ンシステムを作りたかったんです。
それは巨大なデザイン空間で、超エキサイティングでした。それほど大きなデザイン問題に取り組んだ
人とか機会が他にあったかわかりません。そこにチームがひとつになって取り組めたのは素晴らしかっ
たです。みんな本当にのめりこんでいきましたからね。デザイナーを巻き込めば巻き込むほど、彼らは
「あのさあ、もうちょっと本気出せば、僕らだってこの問題は解けるよ?」と言ってくるんです。
http://www.gizmodo.jp/2014/07/_android.html
An exploration in Material Design
実際に上記ポイントを踏まえてリニューアルされたfeedlyの事例
https://medium.com/feedly-behind-the-curtain/an-exploration-in-
material-design-by-feedly-8c1a1cbdfdcd
公式動画に日本語字幕もつきました
http://googledevjp.blogspot.jp/2015/02/blog-post.html
プロトタイプ作成
ユーザーからの要望や

お問い合わせチェック
UIパターンの調査
ペーパープロトテスト
ユーザーテスト
がんばってAndroidの標準に

合わせたつもりだったが…
既存ユーザーの使い勝手を

悪くしてしまっていた
議論は

ユーザーテストで収束
デザインルール作成
カラー
フリルらしい配色のカラーパレットを作成
タイポグラフィー
日本語だと強くなりすぎてしまう点を考慮して

行間やフォントサイズを最適化
草案 最終的には値は変更しています
+1sp
ALL CAPSなし
デザイン起こし
sticker sheet
パーツのデザインが

ひと通り揃っています
Sketchのデータが扱いやすく

とくにおすすめ!
http://www.google.com/design/spec/resources/sticker-sheets-icons.html
アイコン作成
提供されているアイコン類
Githubでも管理
https://github.com/google/material-design-icons
足りないモチーフの書き起こし
IcoMoonで

アイコンフォント化
• ブラウザから簡単にフォントファ
イルが作成可能
• jsonファイルを利用すれば

誰でもブラウザだけで編集が可能
16KBまで削減でき、アプリの容量もダウン
実装のための準備
扱いやすい

カラー定義
基本的な配色ルールを

colors.xmlに定義
基本的にはそれらの色を参照する

形で色を設定すると

変更に柔軟になりとても便利!

カラー定義
基本的な配色ルールを

colors.xmlに定義
基本的にはそれらの色を継承する

形で色を設定すると

変更に柔軟になりとても便利!

定数定義
余白や基本的な

フォントサイズなどを

dimen.xmlに定義
ボタンの整備
影もdrawableで書いていたが

1dp単位で書いていたので荒すぎた
影を必死に描くのは不毛なので

影の背景画像、シェイプ、アイコンの
重ね技で色変更のしやすいボタンに
textAppearance

の活用
TextAppearanceを活用することで

styleの切り分けが容易に
スタイルがコンパクトになり、

かつ無駄に似たような

スタイルが増えすぎることがない
マテリアルデザインの理解と取り組み
実装編
Support Libraryが

ない状況での

マテリアル対応
実装と

ライブラリの変遷
実装・ライブラリの変遷
2.x 3.x
Activityまわり Activityべた書き Activity + Fragment
APIクライアント
AsyncTaskLoader

ベースの自作
Retrofit + RxJava
画像 Picasso Picasso
EventBus Otto Otto
View DI findViewById() ButterKnife
テスト なし >< JUnit4, Mocito
CI なし >< CircleCI
Activity + Fragment
• それまではActivityべた書きだった…
• 回転対応、タブレット対応を見据えてFragment化
Activity + Fragment
• ひたすらFragment化
Activity + Fragment
• ひたすらFragment化
Activity + Fragment
• 一通り対応が終わってからFragment批判が盛り上がって
辛い
• 【翻訳】Android Fragmentへの反対声明
• しかしFragment使って良かったと思ってます
• ViewPagerはFragment使わないと実装しづらい
http://ninjinkun.hatenablog.com/entry/2014/10/16/234611
Retrofit
Square製のHTTP Client
インターフェイスにアノテーション
を書くスタイルで読みやすい
JavaDocにAPIの仕様を

記述していくと良い感じ
RxJava
Reactive ExtensionのJava実装
FrilではPromiseとして使用
複雑なAPIコールを宣言的に記述
商品情報のPOSTと画像アップロード
を順に行う様子
商品情報POST
画像を4枚POST
レスポンス
レスポンス
MaterialTabHost
マテリアルスタイルで
ViewPager+Tabを実現する
NAVIGATION_MODE_TABSの代替
https://github.com/yanzm/MaterialTabHost
Calligraphy
アイコンフォントに使用
TextViewを拡張して外部フォントを
読み込み可能にしてくれる
https://github.com/chrisjenx/Calligraphy
Support Libraryがない状況での

マテリアル対応
Support Libraryがない状況でのマテリアル対応
• パラメータを えてそれっぽく見せる
• Floating Action Button
• Scroll to Full Screen
←お手軽
←お手軽
←ハード
Android 5.0 & Support Library 21がリリース前だった
パラメータを えてそれっぽく見せる
48dp
10dp
Fril 2.5
52dp
16dp
Fril 3.0
Googleに怒られるやつ
パラメータを えてそれっぽく見せる
Fril 2.5 Fril 3.0 Fril 3.2
FloatingAction
Button
ボタンを置くだけ
今はOSS実装もあります

makovkastar/FloatingActionButton
Scrollto

FullScreen
ScrollViewやListViewのAPIを調べ
てがんばって実装
ninjinkun/ScrollFullScreen
Scrollto

FullScreen
ScrollViewやListViewのAPIを調べ
てがんばって実装
ninjinkun/ScrollFullScreen
Scroll to Full Screen
• 今ならSupport Libraryでできます
• ActionBar. setHideOnContentScrollEnabled
• 細かいことがやりたければもっと良いライブラリも
• Android-ObservableScrollView
黎明期マテリアル対応の感想
• Googleの標準も固まってなかったりして暗中模索
• 先行実装しても損はしない
• Support Libraryリリース時の対応もすぐできた
• 先行実装でGoogleさんからの評価は上がった様子
おわりに
Androidの進化のタイミングはチャンス
いち早いキャッチアップはBest Appへの近道(かも)
でもユーザー視点は忘れずに
技術やデザインを自分たちのものにしようとする努力が大切
リニューアルの裏話
社外開発者との連携
• 手が足りないので助けてもらった
• 社内開発者のレベルアップにもなった
• Android開発の定石、ハマり処の伝授
• コードレビュー
社外開発者との連携
• ドキュメントの整備
• 継承の使い方で議論
ドキュメント整備
CONTRIBUTION.mdに集約
branch運用
コーディング規約
Layout XMLの規約
ドキュメント整備
CONTRIBUTION.mdに集約
branch運用
コーディング規約
Layout XMLの規約
JavaDoc整備
クラスとpublicメソッドにはJavaDoc
を書く
API Clientは特に丁寧に
継承で議論
• Activity, Fragmentの孫継承を使うかで議論に
• Android SDKは継承モデルだがしかし…
継承で議論
• 似たような出品画面、編集画面、下書き編集画面
• BaseItemEditFragmentみたいなのを作る?
継承で議論
• FrilではActivity, Fragmentの孫継承は使わない
• 差分プログラミングのための継承は見通しが悪くなる
• ベースクラスを弄る誘惑と戦う羽目になる
ご清聴ありがとう
ございました



More Related Content

What's hot

What's hot (20)

ゲーム開発とデザインパターン
ゲーム開発とデザインパターンゲーム開発とデザインパターン
ゲーム開発とデザインパターン
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
 
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
PlayStation®4向けARPGのUnity開発事例 最適化と効率化の秘密
 
コンセプト概論~出張ヒストリア編~
コンセプト概論~出張ヒストリア編~コンセプト概論~出張ヒストリア編~
コンセプト概論~出張ヒストリア編~
 
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザインCEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
CEDEC2016 「コントラスト」で考えるゲームデザイン・レベルデザイン
 
【Unity道場 2017】パーティクルエフェクト実践編 ~ヒットエフェクト制作プレイクダウン~
【Unity道場 2017】パーティクルエフェクト実践編 ~ヒットエフェクト制作プレイクダウン~【Unity道場 2017】パーティクルエフェクト実践編 ~ヒットエフェクト制作プレイクダウン~
【Unity道場 2017】パーティクルエフェクト実践編 ~ヒットエフェクト制作プレイクダウン~
 
【CEDEC 2017】過去のお約束を捨てることがVRの始まり ~ PlayStationRVR ヘディング工場のゲームデザインと演出
【CEDEC 2017】過去のお約束を捨てることがVRの始まり ~ PlayStationRVR ヘディング工場のゲームデザインと演出【CEDEC 2017】過去のお約束を捨てることがVRの始まり ~ PlayStationRVR ヘディング工場のゲームデザインと演出
【CEDEC 2017】過去のお約束を捨てることがVRの始まり ~ PlayStationRVR ヘディング工場のゲームデザインと演出
 
事例で学ぶデザインの原則 by Life is Tech !
事例で学ぶデザインの原則 by Life is Tech !事例で学ぶデザインの原則 by Life is Tech !
事例で学ぶデザインの原則 by Life is Tech !
 
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~
 
国際化対応におけるUI実装で気をつけるべきこと
国際化対応におけるUI実装で気をつけるべきこと国際化対応におけるUI実装で気をつけるべきこと
国際化対応におけるUI実装で気をつけるべきこと
 
【Visual Studio】開発効率を上げる25個の拡張機能
【Visual Studio】開発効率を上げる25個の拡張機能【Visual Studio】開発効率を上げる25個の拡張機能
【Visual Studio】開発効率を上げる25個の拡張機能
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
 
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい![UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!
 
ストリーミングサービス研究グループ
ストリーミングサービス研究グループストリーミングサービス研究グループ
ストリーミングサービス研究グループ
 
ゲームの仕様書を書こうまとめ
ゲームの仕様書を書こうまとめゲームの仕様書を書こうまとめ
ゲームの仕様書を書こうまとめ
 
カヤックコピー部のコピー講座
カヤックコピー部のコピー講座カヤックコピー部のコピー講座
カヤックコピー部のコピー講座
 
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
 
MMORPGで考えるレベルデザイン
MMORPGで考えるレベルデザインMMORPGで考えるレベルデザイン
MMORPGで考えるレベルデザイン
 
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
 
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
 

Viewers also liked

あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情についてあなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
Shinichi Kozake
 

Viewers also liked (20)

確実に良くするUI/UX設計
確実に良くするUI/UX設計確実に良くするUI/UX設計
確実に良くするUI/UX設計
 
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
 
Droid kaigiプレゼン
Droid kaigiプレゼンDroid kaigiプレゼン
Droid kaigiプレゼン
 
開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程
 
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
 
データモデルは時空を越える
データモデルは時空を越えるデータモデルは時空を越える
データモデルは時空を越える
 
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
 
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
 
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有
 
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情についてあなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
 
Java web application testing
Java web application testingJava web application testing
Java web application testing
 
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
 
Webデザイナーのためのタイポグラフィ入門1
Webデザイナーのためのタイポグラフィ入門1Webデザイナーのためのタイポグラフィ入門1
Webデザイナーのためのタイポグラフィ入門1
 
アクセシビリティからはじめる、WebサイトのUXデザイン
アクセシビリティからはじめる、WebサイトのUXデザインアクセシビリティからはじめる、WebサイトのUXデザイン
アクセシビリティからはじめる、WebサイトのUXデザイン
 
UXとデザインまとめ by 上野学 - presentation from UX まとめ 2015
UXとデザインまとめ by 上野学 - presentation from UX まとめ 2015 UXとデザインまとめ by 上野学 - presentation from UX まとめ 2015
UXとデザインまとめ by 上野学 - presentation from UX まとめ 2015
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
 
Sketchで変わるワークフロー
Sketchで変わるワークフローSketchで変わるワークフロー
Sketchで変わるワークフロー
 
いいデザインのために組織の一人ひとりができること
いいデザインのために組織の一人ひとりができることいいデザインのために組織の一人ひとりができること
いいデザインのために組織の一人ひとりができること
 
実践的なUXデザインとインタラクションデザインの考え方
実践的なUXデザインとインタラクションデザインの考え方実践的なUXデザインとインタラクションデザインの考え方
実践的なUXデザインとインタラクションデザインの考え方
 
レスポンシブサイト制作に効く デザインTipsあれこれ
レスポンシブサイト制作に効く デザインTipsあれこれレスポンシブサイト制作に効く デザインTipsあれこれ
レスポンシブサイト制作に効く デザインTipsあれこれ
 

More from YUKI YAMAGUCHI

EC-CUBEとここが違う!はじめてみようCS-Cart
EC-CUBEとここが違う!はじめてみようCS-CartEC-CUBEとここが違う!はじめてみようCS-Cart
EC-CUBEとここが違う!はじめてみようCS-Cart
YUKI YAMAGUCHI
 
ノンプログラミングでここまでできる!WebデザイナーのためのCS-Cartカスタマイズ講座
ノンプログラミングでここまでできる!WebデザイナーのためのCS-Cartカスタマイズ講座ノンプログラミングでここまでできる!WebデザイナーのためのCS-Cartカスタマイズ講座
ノンプログラミングでここまでできる!WebデザイナーのためのCS-Cartカスタマイズ講座
YUKI YAMAGUCHI
 
WordPressテーマの作り方
WordPressテーマの作り方WordPressテーマの作り方
WordPressテーマの作り方
YUKI YAMAGUCHI
 

More from YUKI YAMAGUCHI (14)

Think user first #2 フリルの機能改善における仮説と検証
Think user first #2 フリルの機能改善における仮説と検証 Think user first #2 フリルの機能改善における仮説と検証
Think user first #2 フリルの機能改善における仮説と検証
 
WordPressでサイト作成するときに知っておくといいことあれこれ
WordPressでサイト作成するときに知っておくといいことあれこれWordPressでサイト作成するときに知っておくといいことあれこれ
WordPressでサイト作成するときに知っておくといいことあれこれ
 
Abc words
Abc wordsAbc words
Abc words
 
WordCamp Tokyo 2012 画像のアップロード&アイキャッチ画像をしっかり理解しよう!
WordCamp Tokyo 2012 画像のアップロード&アイキャッチ画像をしっかり理解しよう!WordCamp Tokyo 2012 画像のアップロード&アイキャッチ画像をしっかり理解しよう!
WordCamp Tokyo 2012 画像のアップロード&アイキャッチ画像をしっかり理解しよう!
 
Sacss WordPress Special with Fireworks
Sacss WordPress Special with FireworksSacss WordPress Special with Fireworks
Sacss WordPress Special with Fireworks
 
Fukuoka.php 第一回勉強会 LTスライド
Fukuoka.php 第一回勉強会 LTスライドFukuoka.php 第一回勉強会 LTスライド
Fukuoka.php 第一回勉強会 LTスライド
 
Road Map 2012
Road Map 2012Road Map 2012
Road Map 2012
 
EC-CUBEとここが違う!はじめてみようCS-Cart
EC-CUBEとここが違う!はじめてみようCS-CartEC-CUBEとここが違う!はじめてみようCS-Cart
EC-CUBEとここが違う!はじめてみようCS-Cart
 
ノンプログラミングでここまでできる!WebデザイナーのためのCS-Cartカスタマイズ講座
ノンプログラミングでここまでできる!WebデザイナーのためのCS-Cartカスタマイズ講座ノンプログラミングでここまでできる!WebデザイナーのためのCS-Cartカスタマイズ講座
ノンプログラミングでここまでできる!WebデザイナーのためのCS-Cartカスタマイズ講座
 
CS -Cart勉強会
CS -Cart勉強会CS -Cart勉強会
CS -Cart勉強会
 
WordPressテーマの作り方
WordPressテーマの作り方WordPressテーマの作り方
WordPressテーマの作り方
 
Osc2010fukuoka
Osc2010fukuokaOsc2010fukuoka
Osc2010fukuoka
 
Word Camp Fukuoka2010
Word Camp Fukuoka2010Word Camp Fukuoka2010
Word Camp Fukuoka2010
 
WordcampFukuoka2010プレイベント
WordcampFukuoka2010プレイベントWordcampFukuoka2010プレイベント
WordcampFukuoka2010プレイベント
 

マテリアルデザインを用いたデザインリニューアル [フリル編]