10. http://habrahabr.ru/company/redmadrobot/blog/252773/
Легенда такова: президент Кеннеди инициировал программу
полёта человека на Луну. А большой начальник в Google Ларри
Пейдж исповедует принцип, что продукты нет смысла улучшать
на 10% — они должны быть в 10 раз лучше, чем у конкурентов.
Если уж запускать продукт, то сразу на Луну. Вот и здесь было
решено круто всё переделать.
19. Осмысленная анимация
http://habrahabr.ru/company/redmadrobot/blog/252773/
В реальном мире предметы не
возникают из ниоткуда и не исчезают в
никуда — такое бывает только в кино.
Поэтому в Material Design мы всё время
думаем о том, как с помощью анимации
в слоях и в «цифровых чернилах» давать
пользователям подсказки о работе
интерфейса.
25. Поверхность
http://habrahabr.ru/company/redmadrobot/blog/252773/
В основе своей это “контейнер” с тенью и ничего больше.
Нет необходимости заходить слишком далеко и
использовать текстуру, накладывать градиенты для
изображения светотени.
Не нужно давать визуальные свойства кожи как у
бабушкиной двери в квартиру — аккуратная тень может
выразить очень многое. Но у каждой поверхности есть
своя высота — расположение на оси Z. И каждая из
поверхностей отбрасывает тень на нижнюю, как и в
реальном мире.
27. Глубина
http://habrahabr.ru/company/redmadrobot/blog/252773/
В традиционном «плоском дизайне» избегают
таких теней, как всяческих проявлений
объема, но они исполняют важную функцию
обозначения структуры и иерархии элементов
на экране. Например, если подъем элемента
больше, то и тень у него больше. Эта
увеличенная глубина помогает сфокусировать
внимание пользователя на критически важных
вещах и сделать это изящно.
30. «Дно»
http://habrahabr.ru/company/redmadrobot/blog/252773/
Важно заметить, что у глубины есть “дно”.
Предполагается, что она ограничена толщиной
самого мобильного устройства. То есть, если
на смартфоне это сантиметр от стекла до
задней стенки, а у вас в интерфейсе есть
кредитная карточка, то её нельзя просто
перевернуть — она упрётся в стекло и заднюю
стенку.
32. Плавающая кнопка
http://habrahabr.ru/company/redmadrobot/blog/252773/
Многие считают, что стоит добавить её в
интерфейс: так это сразу становится Material
Design. Но она должна использоваться только
для ключевого действия в вашем приложении.
Если вам нужно закрыть какое-то окошко или
подтвердить действие, то не нужно
использовать плавающую кнопку. Для этого
есть другие элементы.
33. Не все должно быть на карточке
http://habrahabr.ru/company/redmadrobot/blog/252773/
Если у какого-то объекта есть много
форм и он содержит в себе много
разного контента, то карточка подходит.
А если нет, то, может, лучше сделать это
обычным текстом или текстовым
списком?
34. Это унылое диалоговое окно
http://habrahabr.ru/company/redmadrobot/blog/252773/
Дизайнеры Google постарались, чтобы
сделать диалоговые окна получше, но
всё равно для большинства задач
больше подходят Bottom Sheets. Есть
еще Snackbars. Диалоговые окна нужны
только чтобы задать вопрос
пользователю.
45. Размер шрифта
http://habrahabr.ru/company/redmadrobot/blog/252773/
На сайте google.com/design/spec есть стандартная
палитра шрифтов, которую можно смело
использовать. В палитре используется шрифт
Roboto, но его можно заменять своим фирменным
шрифтом, чтобы поддержать бренд. Важно всё
внимательно протестировать, так как на разных
устройствах рендеринг шрифтов может работать
по-разному. Обычно OTF шрифты работают лучше,
чем TTF.
54. dp — Device/density-
independent Pixels
Абстрактная ЕИ, позволяющая
приложениям выглядеть
одинаково на различных экранах
и разрешениях.
http://goo.gl/GkOHJr
55. sp - Scale-independent Pixels. То же, что и dp, только
используется для размеров шрифта в View элементах
pt - 1/72 дюйма, определяется по физическому
размеру экрана. Эта ЕИ из типографии.
px – пиксел, не рекомендуется использовать т.к. на
разных экранах приложение будет выглядеть по-
разному.
mm – миллиметр, определяется по физическому
размеру экрана
in – дюйм, определяется по физическому размеру
экрана
http://goo.gl/GkOHJr
58. На разных разрешениях рекомендуется
использовать dp. Его можно определить, как
масштабируемый px. За степень масш-ти отвечает
Screen Density. Это коэффициент, который
используется для вычисления значения dp.
На текущий момент есть 5 значений этого
коэффициента: - low (ldpi) = 0,75 - medium (mdpi) =
1 - tv (tvdpi) = 1,33 - high (hdpi) = 1,5 - extra high
(xhdpi) = 2
http://goo.gl/GkOHJr
59. Kогда для экрана стоит режим mdpi, то 1 dp = 1 px. Т.е.
кнопка шириной 100 dp будет выглядеть также как и
кнопка шириной 100 px.
Если, например, у нас экран с низким разрешением,
то используется режим ldpi. В этом случае 1 dp = 0,75
px. Т.е. кнопка шириной 100 dp будет выглядеть так
же как кнопка шириной 75 px.
Если у нас экран с высоким разрешением, то
используется режим hdpi или xhdpi. 1 dp = 1, 5 px или
2 px. И кнопка шириной 100 dp будет выглядеть так
же как кнопка шириной 150 px или 200 px.
http://goo.gl/GkOHJr
68. Цвет
http://habrahabr.ru/company/redmadrobot/blog/252773/
Основной используется для больших областей
вроде action bar, а в его более тёмную
вариацию красится status bar. Более яркий
акцентный цвет используется точечно в
элементах управления, кнопках, полосках,
индикаторах и т.д. Акцентный цвет призван
привлекать внимание пользователя к
ключевым элементам, таким как плавающая
кнопка.
70. Красивые фото
http://habrahabr.ru/company/redmadrobot/blog/252773/
В Material Design поощряется использование
фотографии и иллюстраций во всей красе.
Картинки в основном размещаются без рамок,
часто «навылет». Даже status bar специально
делается прозрачным, чтобы не мешать. При
этом каждая капля «цифровых чернил» на
экране имеет функцию, почти ничего нет
просто для украшения.
74. Не забывайте отступы
и “давайте воздуха”
http://habrahabr.ru/company/redmadrobot/blog/252773/
Базовая сетка в 8dp и отступ слева в 72dp
— практически правило. Пусть контенту
будет хорошо и свободно.
75. Осмысленная анимация
http://habrahabr.ru/company/redmadrobot/blog/252773/
В реальном мире объекты не могут просто появляться
из ниоткуда или исчезать в никуда. Это вызывало бы
недоумение и ставило людей в тупик. Поэтому и в
Material Design осмысленная анимация используется,
чтобы показать, что именно только что произошло.
Интересный момент в том, что активное движение
привлекает взгляд — это естественно для нашего
зрения. C помощью анимации мы управляем
вниманием пользователя.
77. Асимметрия
http://habrahabr.ru/company/redmadrobot/blog/252773/
Поскольку глубина интерфейса ограничена
толщиной устройства, все трансформации
объектов приходится производить в плоскости.
Это также приводит к тому, что анимация
трансформаций должна быть асимметричной
— то есть изменение ширины и высоты
объекта должно быть независимым. В
противном случае возникает иллюзия
приближения или отдаления от зрителя,
причём на очень большое расстояние.
78. Реакция
http://habrahabr.ru/company/redmadrobot/blog/252773/
Другой очень важный принцип анимации в
Material Design — реакция на действия
пользователя. Там, где это возможно,
эпицентром изменений в интерфейсе должно
быть прикосновение к экрану устройства.
Например, волна, которая появляется и идёт
от точки касания пальцем. Этот эффект без
проблем реализуется в Android L.
79. Микроанимации
http://habrahabr.ru/company/redmadrobot/blog/252773/
В Android L мы можем анимировать каждый
элемент приложения — будь это переходы
между контентом или маленькие иконки
действий. Каждая деталь приложения важна, и
микроанимации добавляют приложению
более полную детальность и отзывчивость на
каждое действие пользователя.
81. Четкость и резкость
http://habrahabr.ru/company/redmadrobot/blog/252773/
И последний, ключевой принцип анимации: движение
должно быть быстрым и чётким. В отличие от
банального ускорения в начале и замедления в конце
кривая анимации в Material Design более натуральная
и интересная. Объекты быстрее реагируют и
достигают целевого состояния, резче возвращаются
назад, но чуть дольше идут к состоянию покоя в конце.
В результате пользователю нужно меньше ждать (это
меньше раздражает). При этом там, где объект уже
вышел из сферы интересов пользователей, он
позволяет себе вести себя более естественно.
101. Адаптивный дизайн
http://habrahabr.ru/company/redmadrobot/blog/252773/
Самый распространенный приём —
уменьшение количества информации,
отображаемой на экране вместе с
уменьшением экрана. Если на большом экране
мы можем позволить себе показать и список, и
детальную информацию по выбранному
элементу, то на смартфонах сперва
отображается список, а для подробностей
нужен отдельный экран.
102. Отступы
http://habrahabr.ru/company/redmadrobot/blog/252773/
Размещение контента с помощью блоков сильно
упрощает работу со свободным пространством на
больших экранах. Мы знаем содержимое каждого
блока, понимаем, насколько широким он может быть,
чтобы не потерять в читаемости, а также насколько
узким, чтобы не было слишком тесно. На широких
экранах блоки растягиваются до своих пределов
удобочитаемости, а потом добавляются отступы от
краёв, которые вполне могут быть большими. Их
можно заполнять плавающей кнопкой и цветными
плашками.
103.
104. Whiteframes
http://habrahabr.ru/company/redmadrobot/blog/252773/
Идеи по организации пространства и отступам
для разных экранов можно подсмотреть на
сайте
http://www.google.com.ua/design/spec/layout/
structure.html в разделе Whiteframes. Это
отличное место, чтобы начать, понять общий
смысл и затем продолжить собственные
эксперименты.
111. Направляющие
http://habrahabr.ru/company/redmadrobot/blog/252773/
Направляющие задают нам отступы для
«чернил» на отдельных листах «бумаги». На
смартфоне у нас один лист и один хороший
отступ слева, а на планшете их два и в обоих
случаях есть отступ. Важно, что для этих двух
форм-факторов отступ будет разным. На
планшете это 80dp, а на смартфоне — 72dp.
Отступы от краёв экрана также разные.
119. Советы
http://habrahabr.ru/company/redmadrobot/blog/252773/
Далеко не всегда нужен navigation
drawer. Google очень часто использует
выдвижную навигацию. Но у Google
очень много задач, которые можно
решить с её помощью: разместить
помощь, настройки, логин/логаут,
информацию о пользователе и так далее.
Если у вас похожие задачи, то всё OK, а
если вы делаете простой инструмент, то
не стоит.
120. Советы
http://habrahabr.ru/company/redmadrobot/blog/252773/
Cмелее и остроумнее с тулбарами.
Возможность менять размер тулбара
динамически, делать его двойного и тройного
размера — это очень круто и удобно.
Большинство дизайнеров боится с этим
связываться и выбирают один размер раз и
навсегда, но тут можно и стоит быть смелее.
121. Советы
http://habrahabr.ru/company/redmadrobot/blog/252773/
Не надо делать из нижнего угла гетто для
плавающей кнопки.Плавающая кнопка
может быть где угодно: снизу, сверху, справа,
слева. Конечно, в углу до неё может быть
удобно дотягиваться, но это не единственный
вариант. Кнопка может перемещаться с места
на место в зависимости от задач.
122. Советы
http://habrahabr.ru/company/redmadrobot/blog/252773/
И смартфоны, и планшеты; и вертикально, и
горизонтально. Линейка Android-устройств
велика, и это не упрощает жизнь
разработчикам. Но правда в том, что у
пользователей действительно есть все эти
устройства, которые они поворачивают и так и
этак (даже если речь идет о смартфонах). Этот
момент надо отрабатывать.