- Что такое гайдлайны мобильных приложений и зачем они нужны?
- Что это и зачем это вообще нужно?
- Google Material Design System
- Apple Human Interface Guidelines
- Почему нужно использовать гайды?
- Полезные ссылки
- Гайдлайны для новичков в Android-разработке: что прямо сейчас намотать на ус
- Авторизуйтесь
- Гайдлайны для новичков в Android-разработке: что прямо сейчас намотать на ус
- С первых шагов уделяйте внимание производительности
- Не допускайте утечек памяти
- Создавайте побочные треды
- Используйте strings.xml
- Настройте Gradle по умолчанию
- Садитесь учить паттерны проектирования
- И учите Kotlin
- Да и вообще, подходите к обучению комплексно
- iOS vs. Android: полное руководство по дизайну приложений
- UI-дизайн для iOS vs. Android: основные различия
- Должен ли я делать приложения для iOS и Android разными?
- Сравнение навигации в iOS и Android
- Навигация в верхней части экрана
- Основные «пункты назначения»
- Вторичная навигация
- Возврат к предыдущему экрану
- iOS vs. Android: дизайн элементов управления
- Главные кнопки призыва к действию
- Поиск
- Меню действий
- Элементы управления выбором
- Выбор даты
- Вкладки
- Отмена действия
- IOS vs. Android: типографика
- Шрифт по умолчанию
Что такое гайдлайны мобильных приложений и зачем они нужны?
Jun 14, 2018 · 4 min read
Когда речь заходит о дизайне мобильного приложения, первое, что на ум приходит любому дизайнеру, понимающего специфику — это гайдлайны.
Что это и зачем это вообще нужно?
Основная задача мобильного приложения состоит в том, чтобы помочь решить проблему пользователя как можно быстрее. Здесь речь идет о секундах, а иногда и о долях секунд.
Представьте, если бы каждое мобильное приложение имело б ы свой уникальный дизайн и навигацию. Тогда пользователю каждый раз приходилось бы тратить время на то, чтобы разобраться в интерфейсе, понять, где кнопка, которую можно нажать, а где просто текст в рамке. Тогда бы на решение проблемы уходило в разы больше времени и счет шел бы уже не в секундах, а в минутах. Это полностью идет вразрез принципам мобильного приложения.
Именно для ускорения процесса решения проблем пользователя в приложении и были придуманы гайдлайны.
Гайдлайны (Guidelines) — набор рекомендаций, правил, принципов от создателей платформы, операционной системы, благодаря которым приложения под эти платформы и ОС от разных разработчиков выглядят единообразно. Гайдлайны мобильных приложений описывают принципы навигации и взаимодействия, элементы интерфейса и их стиль, используемую типографику и иконографию, цветовые палитры и многое другое.
Кроме того, гайдлайны способны сократить время и стоимость разработки мобильного приложения, так как всё то, что описано в гайдах, как правило, уже реализовано в виде готового элемента в коде и разработчику не нужно изобретать велосипед с нуля.
На данный момент существуют два гайда под две небезызвестные платформы:
Google Material Design System
Google Material Design был представлен вместе с Android 5.0 в июне 2014 года, а с мая этого года стал полноценной дизайн-системой и уже может быть использован и на других платформах (например, смарт-тв, десктоп- или даже веб-приложение, iOS-устройство). Изначально был направлен только на ОС от Google: Android Wear, Android TV, Android Auto.
Основными идеями Material Design являются принцип глубины интерфейса, его интерактивность (отзывчивость) и движение (анимация изменения состояния).
Здесь каждый элемент навигации находится на определенной высоте относительно другого элемента и реагирует на нажатия пользователя. Например, боковое меню находится над панелью навигации, а карточка из списка под ней. Кнопка как бы опускается вниз при нажатии на неё, меняет за собой отбрасываемую тень и заливается цветом с эффектом чернил.
Material Design в качестве прообраза для всей системы использует бумагу и чернила на ней. Любой интерфейс построенный по канонам Material можно представить в виде отдельных листков бумаги, которые наслаиваются друг на друге и отбрасывают тень.
В Material Design System есть все. Здесь есть все системные иконки, UI-киты, шрифты, цветовые палитры, и даже плагин для Sketch для генерации кастомного UI. И все это можно скачать прям тут. Здесь вы найдете все размеры для каждого даже самого незначительного элемента интерфейса. Найдете кучу примеров, как делать можно, а как делать нельзя. Увидите кучу анимированных примеров. Найдете инфу про типографику, где и какой шрифт нужно использовать, с каким отступом, интерлиньяжем и кеглем. Везде по всему гайду есть ссылки на нужные разделы и если вы не знаете чего-то, то об этом сразу будет внизу сноска.
Словом, Google сделали самый лучший гайд (а сейчас уже дизайн-систему) в истории мобильного мира.
Apple Human Interface Guidelines
Apple Human Interface Guidelines был представлен вместе с iOS 7 июне 2013 и с тех пор расширился для использования с другими ОС от Apple (watchOS, macOS, tvOS).
Основной идеей Human Interface Guidelines является простота и «воздушность» интерфейса. Во главу угла возводится контент, а интерфейс уходит на второй план. Приветствуется интерактивность (отзывчивость) и анимация изменения состояния элементов интерфейса. Размытие окон на нижнем уровне, градиентные заливки, болдовая типографика в лучших традициях швейцарского стиля.
В отличие от Material Design System в Human Interface Guidelines нет четких правил и конкретных спецификаций. Например, нельзя в гайдах от Apple посмотреть размер кнопок. Некоторые элементы интерфейса просто в гайде отсутствуют, хотя используются в официальных приложениях от Apple. Здесь в отличие от Google, Apple как бы разрешает дизайнеру «поиграть со шрифтами» и дает больше свободы для кастомизации в рамках платформы.
В разделе загрузок также есть UI-киты для всех популярных инструментов и шрифты. Иконки придется искать свои, по какой-то причине Apple не дает возможности скачать системные иконки.
В общем и целом гайд iOS гораздо более беднее, чем гайд для Android. Поэтому я рекомендую использовать сторонние интерпретации. Например, вот здесь можно найти хорошую интерпретацию.
Почему нужно использовать гайды?
Подводя итог по гайдлайнам. Использовать их при дизайне мобильного приложения просто необходимо по четырем причинам:
- Ускоряется процесс дизайна
- Ускоряется разработка
- Удешевляется разработка
- Пользователь получает быстрый и понятный интерфейс
Полезные ссылки
- material.io — официальные гайды Material Design от Google
- material.io/tools/theme-editor — плагин Sketch для UI кита
- materialdesignicons.com — расширенная версия Material-иконок
- uplabs.com/android — за вдохновением и идеями для Android сюда
- materialdesignkit.com/ — сторонний UI-кит для Photoshop
- developer.apple.com/ios/human-interface-guidelines — гайды Apple HIG
- ivomynttinen.com/blog/ios-design-guidelines — сторонние гайды
- iosdesignkit.io — сторонний UI-кит для Sketch и Photoshop
- uplabs.com/ios — за вдохновением и идеями для iOS сюда
- icons8.com/ios-icons — лучшая коллекция iOS-иконок
Буду рад вашим комментариям 💬 и аплодисментам 👏.
Источник
Гайдлайны для новичков в Android-разработке: что прямо сейчас намотать на ус
Авторизуйтесь
Гайдлайны для новичков в Android-разработке: что прямо сейчас намотать на ус
Мы маленькие, а разработка под Android большая и непонятная. Собрали для начинающих несколько гайдлайнов, которые стоит принять во внимание как можно раньше.
С первых шагов уделяйте внимание производительности
Приведем короткий пример. Допустим, написанное вами приложение в процессе работы внезапно запрашивает больше памяти. Если памяти на устройстве не хватает, система закрывает другие работающие программы для обеспечения корректной работы вашего приложения.
Другой пример: вы скачали фильм и решили глянуть его в дороге. По вашим расчетам, зарядки должно хватить часа на 4, но в кульминационный момент телефон вырубается, потому что видеопроигрыватель съел все имеющиеся ресурсы устройства.
Вывод: не заставляйте пользователя и другие программы страдать, грамотно расходуйте оперативную память, CPU, GPU и батарею.
Не допускайте утечек памяти
Грубо говоря, утечка памяти — это когда вы выделили под нужный вам объект оперативную память, а после того, как он стал не актуальным, не обозначаете это. В итоге происходит переполнение стека и как результат — вылет приложения.
Это очень серьезная проблема, значимость которой увеличивается прямо пропорционально времени и интенсивности работы пользователя с приложением.
Несколько полезных рекомендаций:
- никогда не сохраняйте ссылки на Context, Activity, View, Fragment, Service в статических переменных;
- будьте аккуратны при передаче ссылки на Activity, View, Fragment, Service в другие объекты;
- никогда не сохраняйте ссылки на Fragment в Activity.
Чтобы понять, о чем тут вообще речь, и углубиться в исследование темы, почитайте разъясняющий материал.
Создавайте побочные треды
Для того чтобы улучшить производительность приложения, обеспечить хороший отклик и избежать распространенную ошибку ANP («приложение не отвечает»), стоит разделять внутреннюю архитектуру выполнения приложения на потоки (треды). Это позволяет не перегружать главный поток, настроенный по умолчанию. Подробнее про процессы и потоки почитайте на официальном сайте.
Используйте strings.xml
Разработчики обычно не сразу понимают, что с текстом полезно работать как со строковым ресурсом. Но при таком подходе, например, очень просто перевести все приложение целиком на другой язык. strings.xml позволяет хранить все необходимые приложению строки в одном месте и вызывать их по id. Изучите эту технологию как можно раньше — на первых этапах может показаться, что это трата времени и проще хардкодить, но на самом деле это сильно оптимизирует процесс разработки, особенно в долгосрочной перспективе.
Настройте Gradle по умолчанию
Для автоматизации сборки отдайте предпочтение Gradle — инструменту, который активно разрабатывается командой Google и официально считается в этом контексте основной системой. С его помощью удобно управлять зависимостями, он позволяет использовать структуру каталогов и поддерживает инкрементальные сборки.
Садитесь учить паттерны проектирования
Вместо того чтобы изобретать велосипеды, быстро и элегантно катайтесь на проверенных моделях. Для этого как можно раньше начните разбирать шаблоны проектирования — они описывают типичные способы решения распространенных проблем при проектировании программ.
И учите Kotlin
В этом году Kotlin объявили официальным языком для разработки под Android, что обеспечивает всестороннюю поддержку, рост сообщества и подспорье для быстрого развития языка. Пока не советуем хайповать и учить его вместо Java, но точно имеет смысл учить его вместе с Java. А еще лучше — когда чувствуете себя в Java хоть немного уверенно. Почитайте сравнительный обзор двух языков.
Да и вообще, подходите к обучению комплексно
Хватать отрывочные знания — это нормально, но без хорошей структуры и проработанного плана далеко не уедешь. Изучайте книжки, смотрите видеоуроки, общайтесь на StackOverflow, читайте статьи, но в первую очередь реализуйте «скелет», на котором все ваши знания будут жить.
Для этого лучше довериться профессионалам и записаться на программу в онлайн-университете. В отличие от обычных курсов, у вас будет персональный помощник-куратор — он поможет быстро разобраться с вопросами, на которые у новичков часто уходят недели. Помимо этого обучение построено проектно-ориентировано — это значит, что вы будете создавать реальные приложения в процессе прохождения программы. Аналогичный подход используется в ведущих учебных центрах США. Год обучения = год опыта разработки.
Источник
iOS vs. Android: полное руководство по дизайну приложений
Если вы разрабатываете одновременно версии приложения для iOS и Android (Material Design), то это руководство станет вашим новым лучшим другом 😎.
Мы рассмотрим наиболее важные различия между iOS и Android для UX/UI-дизайнеров. Если вы уже создали приложение для одной платформы, здесь собрана большая часть того, что нужно знать, чтобы «перевести» его на другую платформу. Но! Это рекомендации, и практически всё, что я скажу, уже где-то опровергнуто, даже самими Apple/Google. Речь пойдет о «переводе» «iOS- мышления» на «Android-мышление» и наоборот.
Вот список тем, о которых мы поговорим. Пропустите его или дотошно изучите. Решение за вами.
- Обзор основных отличий.
- Навигация.
- Элементы управления.
- Типографика.
- Другие стандарты платформ.
UI-дизайн для iOS vs. Android: основные различия
Наиболее важные различия, которые UX/UI-дизайнеры должны учитывать при «переводе» приложения с iOS на Android или наоборот:
Прежде чем углубиться в эту тему, давайте ответим на один важный вопрос, это повлияет на всё, о чем пойдет речь далее…
Должен ли я делать приложения для iOS и Android разными?
Если кратко, то — нет.
Apple и Google — очень умные компании с бессчетным количеством пользователей. Они будут совершать UX-ошибки, как и все остальные компании. Но они не совершат вопиющих ошибок, определяя стандартный язык дизайна своих систем. Поэтому, хотя ниже я и представляю два способа реализации (способ iOS и способ Android), ни один из них не является неправильным. Если пользователи могут уверенно перемещаться по вашему приложению и работать с ним, никто не запрещает вам использовать вкладки в iOS или модальные окна в Android.
Эта статья написана в духе обучения «iOS-мышлению» или «Android-мышлению». И если ваша цель — создать такое приложение для обеих платформ, которое будет нативным для каждой из них, то это руководство вам очень поможет.
А теперь давайте углубимся в тему.
Сравнение навигации в iOS и Android
Навигация в верхней части экрана
Мы начнем в буквальном смысле с верхушки. У каждой платформы разные стандарты для того, что отображается в верхней части большинства экранов.
В iOS (опционально) действие вверху слева на странице почти всегда является действием «назад» — последовательно к предыдущему экрану (из «Шага 2» пользователь возвращается к «Шагу 1») или иерархически к родительскому экрану (из «Входящих» пользователь возвращается в «Почтовые ящики»). Кроме того, таким образом могут быть связаны не связанные изначально страницы. Заголовок страницы практически всегда присутствует, и он изначально большого размера, но уменьшается вместе с верхней панелью во время прокрутки (до прокрутки большой заголовок выравнивается по левому краю, во время прокрутки уменьшенный заголовок выравнивается по центру. — Прим. пер.). Единичное действие вверху справа на странице может отображаться как текстовая ссылка, а несколько действий — как несколько значков действия.
В Android заголовок страницы выравнивается по левому краю. Слева от заголовка страницы не должно быть ничего, но вы можете добавить кнопку «Назад» в двух случаях (во втором случае — при желании):
а) если страница является страницей верхнего уровня и в приложении есть кнопка-гамбургер (она появляется слева от заголовка);
б) если эта страница следует непосредственно за другой (не в иерархической последовательности).
Основные «пункты назначения»
Основные «пункты назначения» в приложении реализуются по-разному.
В приложениях для iOS они представлены в виде вкладок/табов в нижней части экрана:
- от 2 до 5 вкладок;
- названия набраны 10-м кеглем;
- вкладки представляют собой основные места назначения.
Многие популярные сторонние приложения для iOS также соответствуют нескольким дополнительным правилам:
1. Любая вкладка, представляющая основное действие приложения (например, добавление новой фотографии в приложении для работы с фотографиями), располагается по центру.
2. Любая вкладка, относящаяся к профилю или настройкам, появляется последней.
3. Поиск находится на втором месте.
С другой стороны, в стандартных приложениях для iOS:
- Не поощряется размещение действий на вкладках.
- Вкладки не содержат разделы, относящиеся к профилю или настройкам.
- Поиск идет последним.
Самое большое отличие приложений для Android состоит в том, что одни и те же основные «пункты назначения» в большей степени распределены по всему интерфейсу — часто между: (a) кнопкой-гамбургером, (b) панелью поиска, (с) вкладками или (d) плавающей кнопкой действия. Мы рассмотрим все эти 4 случая в следующих разделах. Да, и обратите внимание: Android совсем недавно начал использовать навигацию снизу аналогично тому, как это реализовано в приложениях для iOS, — так что в этом у приложений для Android и iOS может не быть никаких существенных различий.
Источники: iOS панель вкладок, Material Design принципы навигации (здесь больше теории).
Вторичная навигация
В iOS навигация, которая не поместилась в меню в нижней части экрана, может размещаться на универсальной вкладке «Еще» (More) или же в верхнем левом или в верхнем правом углу экрана.
В Android вторичная навигация отображается в виде списка в боковом меню, доступном при нажатии на кнопку-гамбургер.
Примечание: хотя Apple не поощряет использование кнопки-гамбургера (или ее использование в приложениях для iOS по умолчанию), во многих сторонних приложениях для iOS она есть, и это просто ваш выбор — использовать ее или нет. Лучшей практикой считается не скрывать важное, потому что очевидное всегда побеждает.
Источник: Material Design Navigation drawer.
Возврат к предыдущему экрану
В iOS можно вернуться к предыдущему экрану четырьмя способами, в зависимости от контекста.
Что такое модальные и полноэкранные окна? Сейчас расскажу.
Модальное окно — это задача с одним экраном, которая появляется по свайпу вверх и располагается поверх предыдущего экрана, который лишь немного виден на заднем плане. Чтобы закрыть модальное окно, нужно свайпнуть вниз или нажать кнопку «Назад» наверху.
Полноэкранное окно — это медиафайл, например фотография или видео, занимающий весь экран. И в iOS, и в Android его можно закрыть свайпом вниз.
В Android возвратиться к предыдущему экрану намного проще: в версии 10 и более новых версиях достаточно просто свайпнуть от любой стороны экрана к его центру. В версии 9 используйте кнопку «Назад» в нижнем левом углу экрана.
iOS vs. Android: дизайн элементов управления
Главные кнопки призыва к действию
В iOS главная кнопка на экране обычно расположена в верхнем правом углу.
В Android главная кнопка на экране в большинстве случаев расположена в нижнем правом углу в виде FAB (англ. floating action button — плавающая кнопка действия. — Прим. пер.).
Стоит отметить, что для каждой платформы могут быть свои исключения. Давайте поговорим о них.
Иногда в iOS главные кнопки на экране могут располагаться на нижней панели инструментов. Apple утверждает, что она очень сильно отличается от панели вкладок. В Android можно встретить такие кнопки в верхней части экрана.
Поиск
И в iOS, и в Android поиск — это обычный, но очень гибкий инструмент. Иногда поиск используется как основная функция приложения, в других случаях поиск практически не используют, но чаще всего применяется компромиссный вариант. В каждой платформе поиск реализован достаточно гибко. Давайте рассмотрим общие парадигмы.
Одно из различий между реализацией поиска в iOS и поиском в Android:
- чтобы отменить поиск, нужно нажать Cancel в iOS или ← в Android;
- чтобы очистить поле ввода, нужно нажать на круглую пиктограмму крестика в iOS или на пиктограмму крестика в Android.
Если поиск является важной функцией, то на обеих платформах панель поиска отображается сразу. При нажатии на нее обычно открывается отдельный экран.
Если поиск не является главной функцией и им нечасто пользуются, то получить доступ к нему можно другими способами.
В iOS поиск обычно отображается среди основных вкладок или как одно из действий в верхней навигационной панели.
В Android вы также можете увидеть поиск на верхней панели контекстных действий.
Источники: iOS search bars, Material Design search pattern.
Меню действий
В iOS меню действий можно вызвать нажатием на любую кнопку или попыткой выполнить любое действие. Меню появляются снизу вверх, на них легко нажимать пальцами.
В Android же нижнее меню действий появляется только после нажатия на пиктограмму «кебаб-меню» (три точки, которыми в Android обозначаются дополнительные параметры. — Прим. пер.) и обычно — только когда доступно много возможных действий.
У обеих платформ есть стандарты для всплывающих меню.
Если в iOS 13 вы нажимаете на элемент или удерживаете его, то в «контекстном меню» показываются подходящие действия. Когда отображается «контекстное меню», фон размывается.
В Android многие меню появляются прямо на элементе. В новых версиях Android меню закрывает пиктограмму «кебаб-меню».
Элементы управления выбором
На мобильном устройстве стоит отличать выбор из нескольких вариантов от выбора из большого количества вариантов.
В iOS для реализации выбора из нескольких вариантов используйте элемент управления picker («подборщик» — Прим. пер.). Его можно закрепить внизу на экране (как показано выше) или встроить в контент (см. «Выбор даты»).
Для выбора из нескольких вариантов в Android обычно используется раскрывающееся меню (появляется рядом с выбором) или модальное окно со списком вариантов (появляется в центре экрана, фон затемняется).
Для длинных списков вариантов или для случаев, когда возможен множественный выбор, и в iOS, и в Android можно использовать отдельный «экран выбора». Одна из самых больших ошибок начинающих дизайнеров — попытка уместить большой список вариантов с одиночным выбором в модальное окно, не выделяя для этого списка отдельный экран.
Выбор даты
В iOS выбор даты похож на любой другой элемент выбора (picker control), но с отдельными колонками для месяца, даты и (опционально) года.
В Android есть элемент выбора даты, который можно настроить в процессе разработки: включить/выключить выбор года или же позволить пользователю самому решить, хочет ли он включить выбор года.
Источники: iOS picker, Android date picker (обратите внимание на различия в спецификации Material Design).
Вкладки
В iOS отсутствуют вкладки в привычном понимании, но есть сегментированные кнопки, которые
позволяют реализовать функциональность вкладок.
На Android вкладки выполнены в привычном виде.
Источники: iOS segmented controls, Material Design tabs.
Отмена действия
В iOS уведомления появляются в центре экрана, но они также могут всплывать в нижней части экрана (на языке iOS это action panels). Деструктивные действия (например, удаление чего-либо) выделены красным цветом.
На Android некоторые уведомления появляются в центре экрана. Однако для уведомлений, которые не требуют действий от пользователя и исчезают через несколько секунд, можно использовать «снек-бары» (snackbars). «Снек-бары» позволяют сообщить пользователю, что его действие было успешным, а также на них можно предложить выполнить одно действие или выбрать одно из двух действий. Это делает их идеальным решением для функции «Отменить». Я бы предпочел давать пользователям возможность отменить ошибочное действие, чем спрашивать их дважды перед каждым важным действием.
Источник: iOS Undo, Material Design snackbars.
IOS vs. Android: типографика
Шрифт по умолчанию
Необязательно использовать в приложениях для iOS и Android системные шрифты по умолчанию, но полезно знать, что это такое, — например, на случай, если вы захотите сделать приложение в стиле нативного.
В iOS системный шрифт называется SF. Это компактный шрифт, позволяющий сделать текст удобным для чтения даже на небольших экранах. Вы можете скачать его здесь.
Системный шрифт Android называется Roboto. Он очень похож на SF, но есть пара отличий — буквы выше и расстояние между ними немного больше. Этот шрифт можно скачать здесь.
Также в Android часто используется шрифт Product Sans от Google, который недоступен для использования сторонними разработчиками.
Источник