Fab tab что такое
Мобильные паттерны навигации
Как делать правильно и удобно
Подумал я о следующем: на чем же больше всего народу ломается в попытке сделать что-то хорошее? Вариантов, конечно же, тонна и маленькая тележка, но один из них самый страшный и ужасный — Навигация.
Начинающие свой путь в гуях и уиксах дизайнеры натыкаются на нее родимую сразу, а читать гайдлайны (где тоже про навигацию отведено где-то около 1/50 всего объема) никогда не было модно. Как и инструкцию от бытовой техники… Ну да Бог с ними, с гайдами, все равно потом прочтете и не один раз.
Какие паттерны бывают?
Как таковых, паттернов навигации не то чтобы вон как много. Давайте их перечислим:
Но прежде чем рассмотреть каждый из них, давайте разберемся с понятием “Погружение”.
Иерархия
Пользователь путешествует по аппу при помощи погружения внутрь (вниз по иерархии). Также этот термин зовут Pushin, drill down. Суть название не меняет ибо в 99.9% случаев в мобильных аппах навигация погружная.
На практике погружение означает следующее: Вася ткнул палец в какую-то ячейку (строчку, кнопку, иконку, картинку), и вдруг он буквально проваливается внутрь этого объекта и оказывается на другой экран. Этот другой экран обычно хранит информацию о верхнем объекте в развернутом виде.
Схематично выглядит это примерно так:
А теперь обратите внимание: слева на страницах “ООО “Рога и копыта” и “Профиль” есть стрелочка-кнопочка “Назад”! Тапнув по ней наш герой “поднимается” на уровень выше.
И самое главное! Кто заметил, что на главной странице “Контрагенты” нет кнопочки-стрелочки “Назад”?
Молодец, дорогой читатель, ее там просто НЕ МОЖЕТ БЫТЬ потому что подняться на уровень выше мы не сможем ибо некуда уже.
Это было просто. Но не все это понимают, к сожалению. Кстати, уровней иерархии может быть бесконечно много, но все же стоит спроектировать систему так, чтобы пользователь не мог гулять на 20 уровней иерархии вглубь аппа. 5–6 уровней вложенности будет за глаза иначе пользователь в какой-то момент гарантированно потеряется и будет страдать.
Сделайте паузу после интригующего предложения. Если клиент задаст вопрос — вы привлекли внимание
5 методов, которые увеличат ваши продажи.
Эксперт по продажам Альберт Тютин в книге «Проактивные продажи» утверждает, что большинство сейлзов не умеют продавать. Недостаток опыта, небрежно брошенная фраза или неумение интересно презентовать продукт — и клиент уходит.
Ранее мы уже писали о 4 лучших методах продаж: SPIN, SNAP, консультативных и Challenger Sale. Но мир на них не заканчивается. В розничной торговле за каждого покупателя идут нешуточные бои. Поэтому мы подготовили 5 дополнительных методов, которые помогут повысить результативность встреч и эффективность продаж.
#1. NEAT-продажи
Этот метод — ответ на новые тенденции в торговле программным обеспечением (SaaS) и в отрасли B2B, где финальное решение принимает несколько человек. Методика продаж NEAT появилась с пониманием того, что процесс продаж не является линейным.
Основа NEAT-продаж — Core Needs (основные потребности), Economic Impact (экономический эффект), Access to Authority (доступ к полномочиям) и Timeline (временная шкала).
— N: Core Needs. Какие потребности покупателя удовлетворяет ваш товар/услуга? На этом этапе важно найти основные точки боли. Например, с помощью вопросов:
— E: economic impact. Как эти потребности влияют на клиента в финансовом плане? На этом этапе сейлз представляет выгоды покупки.
Пример: потенциальный покупатель запустил форму регистрации на свой вебинар на сайте. Но посетители покидают страницу, так и не заполнив ее. Лидов мало, продажи не растут.
Ваше решение: улучшить UX-дизайн страницы и формы регистрации, автоматическое сохранение контактов из заполненной формы. Такие действия позволяют генерировать в N раз больше заявок, чем до внедрения пакета инструментов.
Помогите клиенту с помощью цифр и реальных выгод понять, какой эффект он увидит, если воспользуется вашим продуктом/услугой.
— A: access to authority. Кто принимает окончательное решение в процессе покупки? Как связаться с этим человеком?
Согласно исследованиям, в процессе принятия решения о покупке в B2B чаще всего участвует пять групп людей (так называемый «цикл согласованной покупки»):
#1. Пользователи (Users). Это сотрудники, которые используют продукты или услуги и получают от них выгоду для компании. Согласно Kotler & Armstrong, в большинстве случаев именно пользователи инициируют предложение о покупке.
#2. Влиятельные лица (Influencers). Группа людей, которые могут повлиять на решение о покупке. Например, разработчик может повлиять на решение организации купить новое программное обеспечение.
#3. Покупатели (Buyers). Это люди, которые ведут переговоры с поставщиками.
#4. Те, кто принимает решения (Deciders). Выбирают конечных поставщиков для продолжения процесса покупки. Так, финансовый менеджер компании решает, с каким поставщиком работать, исходя из затрат на конкретный продукт или услугу.
#5. «Сторожи» (Gatekeepers). Это секретари и администраторы. Они отвечают за коммуникацию с подрядчиками.
Один человек может играть более одной роли в цикле покупки. Цель продажника — определить ответственное за принятие решения лицо и получить доступ к этому человеку.
— T: timeline. Циклы продаж, особенно в B2B, могут затягиваться во времени.
Установите дату завершения продажи, чтобы избежать задержек в закрытии сделки. Для этого выясните, какое событие (compelling event) стимулирует потенциального покупателя принять решение в срок. Это может быть дедлайн — закрытие отчетного периода или конференция, до наступления которых клиенту необходимо закрыть свою «боль».
Еще один эффективный метод — ограниченное предложение от вашей компании. Например, возможность купить «пакет “Стандарт” + кастомные функции по запросу» до конца месяца.
Анимация Floating Action Button в Android
С момента возникновения концепции Material design одним из самых простых в реализации элементов стала плавающая кнопка действия — FAB, Floating Action Button. Этот элемент быстро обрёл широчайшую популярность среди разработчиков и дизайнеров. В этой публикации мы рассмотрим, как можно анимировать FAB и сделать её интерактивной. Но сначала разберём, как вообще добавить этот элемент в ваш проект.
FAB выглядит как цветной круг в правом нижнем углу экрана. Если в Android Studio создать новый проект Blank Activity, то в нём автоматически будет сгенерирована плавающая кнопка действия.
Floating Action Button
FAB может быть одного из двух размеров: 56 dp (по умолчанию) или 40 dp. Если вы хотите подробнее изучить принципы использования FAB в дизайне приложения, то обратите внимание на официальные гайдлайны Google.
В самых свежих Android-приложениях FAB реагирует на прокручивание списка элементов. Было бы логичнее скрывать её во время прокручивания. Вот что имеется в виду:
Что же делает данный класс? При каждой инициализации прокрутки вниз метод onStartNestedScroll() возвращает значение true. После этого метод onNestedScroll() отображает или прячет кнопку, в зависимости от её текущей видимости. Конструктор класса FloatingActionButton.Behavior() является важной частью описанного поведения вида (view) и извлекается из XML-файла.
Анимация выглядит хорошо, но можно сделать ещё лучше. Например, чтобы кнопка уходила за пределы экрана во время прокрутки — это более реалистичное поведение:
Здесь используется та же логика, что и в предыдущем варианте, за исключением способа исчезновения FAB. Анимация довольно проста. Кнопка уходит вниз с помощью LinearInterpolator. Расстояние, которое ей нужно пройти, равно высоте кнопки плюс ширина нижнего поля.
Меню из FAB’ов
Существует немало приложений, авторы которых создали красивые и хорошо работающие меню, состоящие из плавающих кнопок действия.
Давайте сделаем нечто подобное. Для начала создадим макет, содержащий три маленькие кнопки. Они невидимы и расположены в самом низу макета, под главной FAB. Содержимое fab_layout.xml:
Этот макет нужно включить в макет activity под главной FAB.
Теперь нужно добавить анимацию исчезновения и появления каждой из малых кнопок.
Примечание: здесь вы можете столкнуться с проблемой, связанной с отработкой нажатия на малые кнопки. Когда анимация завершается, реальное положение кнопки не меняется, перемещается только вид. Поэтому вы не сможете правильно обработать касание кнопки. Для решения этой проблемы можно настроить параметры макетов каждой кнопки с учётом их нового положения, и только потом выполнять анимацию перемещения вида.
Саму анимацию вы можете посмотреть в конце этой публикации. Порядок действий для всех кнопок один и тот же, различаются лишь координаты перемещения.
fab1 перемещается с помощью добавления в layoutParams полей справа и снизу, после чего инициируется анимация.
Процесс скрывания представляет собой обратное воспроизведение предыдущей анимации.
//Анимации одной из малых кнопок
Animation show_fab_1 = AnimationUtils.loadAnimation(getApplication(), R.anim.fab1_show);
Animation hide_fab_1 = AnimationUtils.loadAnimation(getApplication(), R.anim.fab1_hide);
Теперь создадим в папке res/anim/ файлы для каждой из анимаций. Делается это просто, но если у вас возникнут затруднения, то можете обратиться к документации.
Если вы посмотрите на тэг перевода (translate tag), отвечающий за движение вида, то увидите, что коэффициент перемещения (170% и 25%) соответствует коэффициентам, использованным при добавлении полей и извлечённым в Java-код.
Все вышеописанные шаги мы повторяем и для остальных малых кнопок. Различаются только коэффициенты перемещения: fab2 — 150% и 150%, fab3 — 25% и 170%.
Черта, преимущества, выгоды. FAB.
Всем привет! Хотелось бы поднять очень интересную тему — использование совокупностей «Черта, преимущества, выгода» при продаже и презентации продукта.
«Черта, преимущества, выгода» — пришла к нам с английского языка, что означает «Features, Advantages and Benefits». Более подробно я вам все объясню, но начать хотелось бы с примера.
Постоянно, каким бы ни был у тебя крутым отдел продаж, ты начинаешь задумываться на тему, а что еще улучшить? Или как бы зарабатывать еще больше денег? Но если твой отдела продаж еще мал или только рождается — FAB это как очень хороший витамин для быстрого роста твоих денег.
Что же такое, FAB? Это своеобразное рассмотрение твоего продукта в трех плоскостях:
Казалось бы, ну что может быть проще, а вот не тут-то было). Вы можете послушать себя или своих менеджеров, все имеют одну и ту же проблему!
Работаю в связках Черта-Выгода, Преимущество-Выгода, Преимущества-Черта и еще очень много комбинаций, я приведу вам несколько примеров:
Объясню на примере ТОП размещений на порталах по продаже разных вещей, допустим, недвижимость. У вас есть сайт, где очень много объявлений и если вы хотите быть в ТОПе и продать ваши апартаменты быстро, вам следует платить за это. Когда ваш менеджер звонит в компанию и начинает продавать это ТОПовое размещение:
Теперь давайте рассмотрим. Скорее всего нам это интересно, НО, почему именно вы? И может моя выгода продать не быстро, но дорого… Не убедительно. Почему? Какая ошибка? Давайте разберем:
Нам это было бы интересно? Возможно. Но как вы это сделаете? Почему ТОП работает? Похоже на лохотрон… Есть все, кроме свойств товара. Ну и опять же не понятны мои выгоды.
Как нужно то? Устал уже печатать)
Мы стартуем с того, что после «приветствия», «выявляем потребности клиента», т.е. понимаем, какие выгоды клиент хочет от нас. Допустим, продать недвижимость очень дорого, ок!
Ок, подведем итоги! Когда мы начинанием продавать продукт, нам необходимо понимать его «Черты, Преимущества, Выгоды» и уметь миксовать все, во время продажи.
А лучше подготовить подобную таблицу, которая будет всегда перед глазами:
FAB — не панацея для всех ваших продаж, но если вы умеете выстраивать схему продажи (Приветствие — Выявление потребностей — Презентация продукта — Работа с возражениями — Закрытие сделки — Прощание) и умеете понять, что именно нужно вашему клиенту, то FAB позволит провести презентацию продукта идеально и приведет вас к успешной сделке.
Если вам интересно узнать, как правильно выявлять потребности или более подробно понять, как выстраивать всю схему продаж, вы можете написать об этом в комментариях и я подготовлю для вас эти материалы.
32 отличия дизайна мобильного приложения под iOS и Android
Железный дизайнер из Redmadrobot Design Lab Артур Абраров делится наблюдениями.
Адаптировать дизайн под другую платформу — неотъемлемая часть работы дизайнера мобильных приложений. Цель этой работы — органично вписать дизайн в паттерны взаимодействия пользователя. К тому же, проработанная адаптация упрощает разработку за счёт использования нативных компонентов платформы.
Чтобы адаптировать дизайн правильно, нужно соблюдать гайдлайны платформ: Human Interface Guidelines (HIG) у iOS и Material Design у Android. И общаться с разработчиками, в идеале подключать их к дизайну как можно раньше, чтобы они могли сразу задать технические ограничения.
Но в чём именно отличается дизайн под iOS от дизайна под Android? В этой статье я разберу 32 конкретных отличия дизайна под iOS и Android. Они поделены на четыре группы:
Базовые отличия
Human Interface Guidelines vs Material Design
Почти все отличия этой статьи взяты из анализа этих гайдлайнов. Их суть на идейном уровне следующая. HIG — это про плоский, лёгкий, дружелюбный дизайн, пришёл он из постепенного отказа от скевоморфизма.
Material же имеет несколько основополагающих принципов: материал как метафора; смелый, графический, сознательный; осмысленная анимация; гибкая основа и кроссплатформенность. Если вы не знакомы с гайдлайнами, лучше их прочесть до того, как ознакомитесь со статьёй.
2. Единицы измерения: pt vs dp
Дизайн iOS-приложения создаётся в pt, а Android-приложения — в dp. Мы, как правило, создаём дизайн в 1x (или mdpi) и выгружаем в Zeplin. Zeplin отображает для iOS дизайн в pt и генерирует иконки и иллюстрации в 2х и 3х. Под Android отображает дизайн в dp и генерирует графику в hdpi, xhpdi, xxhdpi и xxxhdpi.
3. Размер экрана: 320 pt x 568 pt vs 360 dp x 640 dp
Предпочитаю проектировать iOS-приложение под наименьший размер — iPhone 5 с размером экрана 320pt х 568pt. Делаю это, чтобы избежать некорректного отображения контента на маленьких экранах. Некоторые предпочитают проектировать под iPhone 8.
Под Android есть общепринятый размер экрана — 360dp х 640dp.
При дизайне под iOS иногда создаю дизайн и под iPhone X (375pt х 812 pt). Это нужно, чтобы разработчик понимал, как правильно расставить отступы у экрана этого размера. Ещё при дизайне под iPhone X нужно помнить про Safe area — зону, вне которой не стоит размещать контент.
4. Системный шрифт: San Francisco vs Roboto
5. Android Navigation Bar
В отличие от iOS, у Android есть встроенный инструмент навигации назад. Это Android Navigation Bar.
Он либо физически встроен в смартфон, либо является частью интерфейса. С помощью стрелки пользователь перемещается на один шаг назад в хронологической последовательности (reverse chronological navigation). Навигация происходит как внутри приложения, так и между ними.
В начале профессионального пути в качестве дизайнера мобильных приложений я долго мучил Android-разработчиков вопросом: зачем нужны две кнопки назад? Одна есть внизу в Navigation Bar, вторая появляется в Top App Bar при переходе на дочернюю страницу.
Ответ такой. Есть два вида навигации назад: reverse chronological navigation (её осуществляем с помощью стрелки назад в Navigation Bar, зовем её Back).
И upward navigation (её осуществляем с помощью верхней стрелки, зовем её Up).
Представим, что у нас есть путь A-B-C, где A — это материнская страница, а B и С — дочерние. Представим, что пользователь попал напрямую из A в С. Если он нажмёт на кнопку Back, то вернётся на A. Но если нажмёт Up, то сначала попадёт на B — и уже по второму нажатию попадёт на A.
Это сложно реализовать и путанно для пользователя, поэтому сейчас эти две кнопки назад осуществляют одинаковое действие back, как в iOS. То есть если пришли из A в С, то из С вернёмся обратно в А.
6. Важность Elevation в Material
В iOS принципиально нет теней. Как исключение, тени можно обнаружить на главном экране App Store и в Health. Но в целом HIG никак не прописывает использование теней.
В Material тени играют большую роль. Они добавляют интерфейсу третье пространство (ось Z), за счёт чего у каждого компонента появляется своё строгое место на этой оси (от 0 dp до 24 dp). Причём эта ось Z существует не просто на идейном уровне: у разработчиков есть параметр elevation, в котором они задают положение компонента по этой оси.
Навигация и смена состояний сопровождается изменением elevation компонентов. Поэтому при дизайне под Android нам стоит осознанно подходить к созданию теней.
7. Отличия в нейминге
Отличий в нейминге много. Предлагаю рассмотреть эти пять.
a. Tab Bar vs Bottom Navigation Bar
b. Navigation Bar vs Top App Bar
Этот bar у обеих платформ выполняет примерно одинаковые задачи: сообщает пользователю его текущее местоположение в приложении, даёт возможность вернуться на предыдущий экран и предлагает одно или несколько контекстных действий. Подробнее об отличиях — ниже в статье.
c. Segmented Controls vs Tabs
d. Alerts vs Dialogs
Интересно, что в iOS описан только один инструмент предупреждения пользователя — Alerts. В Android их три: Snackbars, Banners и Dialogs.
Snackbar предназначен для сообщений низкой приоритетности и не требует действий. Dialogs блокирует взаимодействие с интерфейсом и требует совершить действие. Banners находятся между ними: не блокирует взаимодействие, но требует совершить действие.
e. Touch ID vs Android Fingerprint
Отличия в навигации и паттернах (UX)
8. Способы верхнеуровневой навигации
Начнём с самого верха. iOS рекомендует только один способ верхнеуровневой навигации — через Tab bar. У Android в ответ есть три способа: Navigation Drawer, Bottom Navigation Bar и Tabs.
Если количество верхнеуровневых страниц больше пяти, используем Navigation Drawer. Если меньше — Bottom Navigation Bar. Tabs нечасто применяют для этой навигации, но способ нам доступен. Однако Material рекомендует не совмещать Tabs и Bottom Navigation Bar, так как взаимодействие с данными компонентами влияет на контент страницы и пользователь может запутаться.
9. Отличия в поведении Tab Bar и Bottom Navigation Bar
Это отличие предлагает Material.
Если вы в iOS перейдёте от материнской страницы к дочерней, потом через Tab Bar переключитесь на другую материнскую страницу, то по возвращении на первую материнскую страницу вы всё также будете находиться на дочерней.
В Android всё строже — при переключении через Bottom Navigation Bar вы всегда переключаетесь между материнскими страницами. Если до этого вы были на дочерней, она сбросится.
Наши разработчики Android уверены, что такое поведение системы неверное. В случае переключения по Bottom Navigation стоит сохранять открытые дочерние страницы, как на iOS.
10. Особое поведение Tabs у Android
Это потому, что страницы табов находятся на одной высоте (elevation).
Это важно знать потому, что при использовании табов в Android нам не стоит добавлять в дизайн элементы с похожими жестами. Например, карусель картинок или взаимодействие с карточками с помощью свайпов.
В целом эти два компонента не заменяют друг друга полностью. Segmented control — это control, который управляет контентом страницы. А Tabs — инструмент навигации.
Поэтому стоит советоваться с разработчиками перед тем, как при адаптации рассматривать их как равноценные компоненты. Иногда корректнее заменять андроидовские Tabs на Page Control. Всё зависит от контекста.
11. Отличия в появлении дочернего экрана
В iOS появление дочернего экрана (не считая модалок) происходит только одним образом: дочерняя страница появляется справа поверх материнской с эффектом slide in. Возвращение на материнский экран происходит с эффектом slide out.
Material рекомендует показывать пользователю иерархическую взаимосвязь материнской и дочерней страницы с помощью осмысленной анимации.
Компонент, при взаимодействии с которым пользователь переходит к дочерней странице, раскрывается и покрывает собой материнскую страницу. Так пользователь понимает, откуда и куда он перешёл, почему это произошло и куда он вернётся при нажатии на кнопку «Назад».
Переход происходит с помощью Standard Easing.
12. Особый паттерн вызова Navigation Drawer
При проектировании приложения с Navigation Drawer важно помнить, что этот компонент «забирает» себе жест edge swipe слева вправо. Поэтому не стоит добавлять этому жесту другую логику.
В iOS у этого жеста есть устоявшийся паттерн перехода с дочерней на материнскую страницу. Этот паттерн постепенно перекочевал и во многие андроидовские приложения.
13. Поведение контента при скролле
По HIG контент в iOS при скролле ведёт себя так: Navigation Bar уменьшается в ширине, исчезает Tool Bar. Но в целом iOS-разработчики могут настроить любое поведение контента и баров при скролле.
Material предлагает больше вариантов поведения при скролле. Например, Bottom Navigation Bar, Search и Bottom App Bar при скролле могут исчезать.
Top App Bar может либо исчезать, либо подниматься выше основного контента.
Разное поведение поиска
Интересно, что HIG относит поиск к барам и называет его Search Bar. В Material мы находим поиск в разделе Navigation, не в Components. То есть для Material поиск — это ещё один способ навигации.
Как в iOS, так и в Android поиск может статично присутствовать на экране и, как правило, прибит к Navigation Bar или Top App Bar.
На обеих платформах поиск может быть в виде иконки, только в iOS иконка раскрывается в самостоятельный компонент Search Bar, а в Android поиск раскрывается внутри Top App Bar.
Особенность поиска в iOS — его можно «спрятать» под Navigation Bar и вызывать по жесту Swipe down. Такой же жест типичен и для рефреша (pull to refresh), поэтому не стоит вызывать поиск и рефреш по этому одному действию.
Отличия в компонентах (UI)
15. Каких компонентов нет в iOS
В iOS нет многих нативных компонентов Android. Пробежимся по ним.
a. Navigation Drawer
iOS в принципе не признаёт бургер-меню. Как говорили раньше, в iOS верхнеуровневая навигация только по Tab Bar.
b. Backdrop
Backdrop — самый удивительный для меня компонент в Material. На момент написания статьи Android ещё только планирует реализовать его как нативный. В целом при изучении компонентов Material стоит проверять, доступны ли они уже для использования.
Сам Material любит этот компонент. Посмотрите, например, на победителей Material Design Award 2019.
c. Banner
Banner не найти среди нативных компонентов iOS. С помощью Banner мы сообщаем пользователю важную информацию и предлагаем связанные с ней действия.
d. Snackbar
Как и Banner, Snackbar — не нативный для iOS. Snackbar применяют, чтобы донести до пользователя короткое сообщение о результате его действия.
e. Chips
Chips также отсутствует среди нативных компонентов iOS. Они используются для ввода информации, описания и действия.
f. Bottom App Bar
Тут можно поспорить, что у iOS есть похожий компонент — Tool Bar. Но они разные, вот почему: Toolbar — это бар для контекстных действий. Например, при редактировании списка сообщений в Messages появляется Tool Bar с действиями Read All и Delete.
Bottom App Bar — это перемещение Top App Bar вниз с теми же действиями верхнего уровня: открытие Navigation Drawer, вызов поиска и так далее. Ещё в Bottom App Bar мы размещаем FAB.
g. FAB
Да, FAB тоже нет в iOS. FAB — это кнопка для совершения основного действия на экране. Например, в почтовом приложении FAB будет создавать новое письмо.
Если вы используете в Android FAB для основного действия на экране, то в iOS это основное действие стоит разместить наверху в Navigation Bar справа (смотри пример: iMessages).
h. Bottom Navigation Drawer
Разновидность Navigation Drawer, типичная только для Android. Вызывается нажатием кнопки бургер-меню в Bottom App Bar.
i. Side Sheet
Хоть Material и разрешает использовать этот компонент в мобильном приложении, я бы рекомендовал заменить его на более привычный Bottom Sheet.
j. Expanding Bottom Sheet
Этот очень красивый компонент Android не найти среди нативных для iOS. Expanding Bottom Sheet — это поверхность, которая прибита к низу страницы. При нажатии поверхность расширяется до полноценной страницы.
k. Standard Bottom Sheet
Standard Bottom Sheet — разновидность Bottom Sheet, и его нет среди компонентов iOS.
16. Каких компонентов нет в Android
Теперь рассмотрим, каких компонентов не найти в библиотеке Android.
a. Page Controls
Page Control показывает, на какой из страниц находится пользователь. Его нет среди нативных компонентов Android.
b. Toolbar
Toolbar привычен только для iOS.
c. Steppers
Steppers — стандартный control iOS, не описан в Material. Используем его для ввода небольших значений. Пример: количество копий при печати.
d. Popover
Popover — всплывающая панель, которая в основном используется на iPad.
В iOS есть одно стандартное применение Popover — настройка текста в ридерах или браузерах.
17. Разные Status Bar
Ещё у Status Bar Android есть такая особенность, когда приходит уведомление из приложения, в Status Bar появляется иконка этого приложения. В iOS такого нет.
18. Refresh Content Controls vs Swipe to refresh
Рефрешеры вызываются одним и тем же жестом swipe down на обеих платформах. Но в iOS Refresh Content Control «толкает» остальной контент вниз, в то время как Swipe to refresh у Android появляется поверх контента. Кроме того, рефреш iOS при скроле контента исчезает, а у Android остаётся видимым.
19. Разные Control
Ещё Material предлагает использовать родительский чекбокс, когда нужно дать пользователю возможность быстро выбрать все варианты.
20. Разный вид стрелки «Назад» и положение заголовка
21. Разный вид иконки трёх точек
22. Разный вид Picker
В iOS выбор даты происходит с помощью барабана. Барабан iOS можно использовать для ввода любых других данных. В Android Picker даты имитирует вид физического календаря.
Material также рекомендует давать пользователям возможность вводить дату с помощью Input Field-а.
23. Разные Text Fields
HIG куда менее требователен к Text Fields, по сравнению с Material.
Отличия
В iOS Label находится внутри поля ввода и исчезает во время ввода текста. Material рекомендует поднимать Label при вводе текста.
Схожее
Обе платформы советуют при необходимости добавлять Clear Button.
Что ещё просит Material
Material также рекомендует выделять Label и полосу под Text Field основным цветом — это помогает понять, что поле выделено. Material описывает поведение поля при ошибке ввода. В Material на выбор есть две формы: Filled и Outlined.
24. Context Menus vs Menus
Context Menus появился в iOS 13. Этот контрол предлагает пользователю нескольких контекстных действий, связанных с выбранным элементом. В Android есть частично похожий на него элемент — Menus.
Menus Android применяется в большем числе кейсов: оно предлагает контекстные действия как для выбранного элемента, так и для всей страницы в целом; используется как инпут с несколькими вариантами на выбор (дропдаун меню); применяется для редактирования текста. Context Menus — компонент только iOS. А Menus Android можно использовать как в мобильном приложении, так и на десктопе.
25. Action View/Activity View vs Modal Bottom Sheet
26. Edit Menus vs Text Selection Tool Bar
Помимо визуального отличия Edit Menus и Text Selection Tool Bar отличаются следующим: при долгом нажатии в Android пользователь может продолжить выделение текста. В iOS после долго нажатия возникает лупа для точного выбора места в слове.
Также Android отличается от iOS тем, что при вызове дополнительных действий Text Selection Tool Bar принимает форму Menus.
27. Разный размер divider
В iOS это 0,5 pt, в Android — 1 dp.
Прочие отличия
28. Разные требования к размеру зоны нажатия
По гайдлайнам минимальная зона нажатия в iOS — 44 x 44 pt, а в Android — 48 x 48 dp.
29. App Store vs Google Play
Ваше приложение для iOS будут скачивать из App Store. Приложение для Android — из Google Play. Чтобы разместить приложение в сторах правильно, нужно соблюдать их требования. Требования App Store стоит прочесть здесь, а Google Play — здесь. Там много особенностей, поэтому рекомендую изучить перед публикацией.
30. Особый паттерн в iOS — Undo and Redo
Это особый паттерн iOS: если потрясти смартфон, приложение предложит пользователю отменить или повторить последнее совершенное действие. Как правило, этот жест используется для удаления введённого текста.
31. Отношение к Branded Launch
32. Дополнительные темы Material Design
На сайте Material раскрыты ещё и такие темы, как: Data Formats (разные форматы данных), Data Visualization (правильная инфографика), Empty States (дизайн пустых состояний), Offline States (интерфейс при отсутствии интернета), Accessibility (доступный дизайн) и Bidirectionality (дизайн для читающих справа налево).
Заключение
Знание гайдлайнов повышает наш уровень осознанности. Мы понимаем сложившиеся пользовательские паттерны и создаём приложение, которое органично вписывается в привычки пользователей.
Гайдлайны побуждают нас уважать нативные решения платформ. При адаптации дизайна под другую платформу всегда есть соблазн продублировать дизайн без изменений. Это вредит пользовательскому опыту и усложняет разработку. Но когда мы видим различия в нативных решениях, мы адаптируем дизайн правильно.
А если мы хотим внедрить новое, кастомное решение, знание гайдлайнов помогает аргументировать это нововведение.
Итого: знание гайдлайнов и их отличий — важный навык дизайнера мобильных приложений.
Какие ещё отличия вы знаете? Поделитесь ими в комментариях.