Мы уже не представляем свою жизнь без мобильных телефонов и приложений, которые в них установлены. В мире сегодня насчитывается около 3,5 миллиардов пользователей смартфонов, 99% из которых работают на Google Android или Apple iOS. При этом мобильная разработка — молодое направление, информации по которому мало. Для того чтобы найти ответ даже на простой интересующий вопрос, порой требуется потратить немало времени.
Привет, это Мария Чернова, бизнес-аналитик в 65apps. Эта статья поможет аналитикам, которые только начинают свой путь в мобильной разработке, разобраться в базовых различиях дизайна и паттернов поведения.
Навигация
Отличия в реализации обусловлены разным видением самого процесса:
На Android при переходах через нижнюю панель навигации, вы всегда будете перемещаться между главными экранами. Если до этого вы были на дочернем экране — он будет сброшен.
iOS сохраняет в навигационном стеке дочерний экран. Например, если с главного экрана осуществляется переход на дочерний, а затем на другую вкладку через tabbar, то при возврате на экран произойдет открытие дочернего.
Есть различия и в интерфейсных решениях. iOS выносит основные элементы навигации на передний план, в то время как для Android нормальное поведение — скрыть их в гамбургер. Несмотря на имеющиеся различия, при разработке приложения на обе платформы обычно выбирается один из вариантов.
Переходы между экранами
Важно учитывать, что iOS и Android имеют разные принципы перемещения между экранами.
В Android есть универсальная панель навигации с кнопкой «Назад», тап на которую позволяет вернуться к предыдущему экрану.
В iOS панели навигации нет, поэтому при разработке дизайна для iOS в Navbar всегда располагается кнопка «Назад». Также можно использовать нативное поведение платформы — свайп слева направо.
Такое движение по экрану осуществляет переход к предыдущему экрану в iOS, на Android-устройствах подобное действие приведет к переключению вкладок.
Навигация в разделах
Для управления перемещением по разделам Android используется так называемое «гамбургер-меню». Чаще всего оно располагается вверху экрана, при тапе на элемент — показывается навигационный экран со вкладками для перехода.
Также в Android используются табы. Они позволяют с помощью свайпа перемещаться между разделами, оставаясь на одном экране. Такую навигацию используют, когда на одном экране необходимо разместить связанные между собой разделы.
В iOS для навигации используется нижняя панель Tabbar. Обычно она сквозная на все экраны и зафиксирована внизу. Ограничения элемента — допустимо располагать только 5 вкладок, в то время как в «гамбургере» Android можно располагать неограниченное количество.
Нативные Элементы
Типографика
—стандартный шрифт Android.
— системный шрифт iOS.
Барабан и календарь
При выборе даты Android использует стандартный календарь.
В iOS для этого используется picker «барабан». Он особенно удобен, когда необходимо сразу указать дату и время, поскольку позволяет располагать в себе сразу несколько селекторов для выбора.
Несмотря на наличие своего нативного элемента в Android все чаще в приложениях можно встретить «барабан».
Диалоги
В Android есть 3 типа диалога: Snackbar, Banner, Dialog.
Snackbar — строка с текстом, обычно используется для оповещения о результате какого-либо действия или об ошибке, исчезает через несколько секунд.
Banner — отображает важное сообщение и предлагает пользователям действия, которые можно сделать. Баннеры остаются до тех пор, пока не будут отклонены пользователем/системой.
Dialog — выводится поверх экрана приложения, чтобы сообщить важную информацию или запросить решение. Диалоги блокируют использование приложения до тех пор, пока пользователь не выполнит диалоговое действие или не выйдет из диалогового окна.
В iOS существует только один нативный вариант диалога — Alert. Также как и Dialog в Android, он блокирует использование приложения пока пользователь не выполнит действие в Alert.
Многие iOS-приложения также используют Snackbar для отображения ошибок в приложении при наличии кэшированных данных, хотя этот элемент не является нативным для этой платформы.
Различные элементы управления
Очень часто в приложениях используются такие элементы как Switch, Checkbox, Radio button, стрелки перехода, текстовые поля и т.д. Они имеют одинаковую функцию и отличаются только визуально — вполне нормально, когда в одном приложении для каждой из платформ эти элементы выглядят по-разному.
Разрешение устройств
Стоит помнить, что парк Android-устройств намного шире, нежели iOS. Для приложений Android общепринятый размер экрана — 360 x 640, а минимальный размер сенсорной зоны — 48 x 48.
В iOS устройство с минимальным размером экрана SE — 320 x 568, а минимальный размер сенсорной зоны составляет 44 x 44.
Сбор пользовательских данных
Самое популярное нововведение 2021 года — это разрешение на сбор пользовательских данных в iOS, с выхода версии iOS 15. Всплывающее окно появляется при первом запуске приложения, на устройствах с последней версией ОС.
На Android всё это делается вручную разработчиками, при этом системных ограничений в отправлении аналитики из приложения нет.
Информация о сети
Если вам необходимы сведения о сети пользователя, отличия будут похожи. Для того, чтобы узнать, например, название сети — на Android достаточно с помощью системной библиотеки напрямую запросить эти данные.
На iOS нужно сначала запросить у пользователя разрешение на использование местоположения — только при его положительном ответе можно будет получить информацию про текущую подключенную сеть.
Уведомления
На iOS по-умолчанию запрещено присылать пользователю уведомления, поэтому при первом старте приложения необходимо всегда запрашивать разрешение на отправку уведомлений.
На Android наоборот — отправка уведомлений разрешена по-умолчанию, пока пользователь сам не отключит ее.
Сохранение файлов
При скачивании файлов в Android их можно сохранить в любую папку на устройстве, по-умолчанию они сохраняются в папке Download.
В iOS файлы сохраняются в облачный сервис iCloud Drive, либо в локальную песочницу приложения.
Использование кастомных клавиатур
Если в вашем приложении требуется создание кастомной клавиатуры — это может повлечь за собой проблемы в iOS. Несмотря на то, что еще в версии iOS 8 появилось API, в котором присутствует расширение Custom Keyboard, добавление собственных клавиатур вызывает много проблем. Так что стоит серьезно взвесить необходимость такого решения.
В Android в этом плане все намного проще — добавление кастомных клавиатур не влечет за собой особых проблем.
Работа с NFC модулем
NFC (Near Field Communication, «коммуникация ближнего поля») — это технология беспроводной передачи данных на расстоянии, не превышающем 10 см. Самый распространенный сценарий применения такой технологии — бесконтактные платежи.
Проблема в том, что от Apple существует запрет на использование NFC сторонними разработчиками, поэтому на iPhone единственное приложение для бесконтактной оплаты — Apple Pay.
В Android подобного запрета нет, поэтому существуют различные приложения с использованием NFC модуля.
Подстановка данных при авторизации
На iOS для хранения критичных данных используется Keychain. Если в приложении требуется подставлять логин и пароль из Keychain, следует помнить, что данный файл будет доступен с версии iOS 13.
В Android используется Smart Lock. Если в iOS Keychain — это стандартный функционал ОС, то для первого использования Smart Lock пользователю необходимо зарегистрироваться.
Заключение
Разумеется, в одну статью невозможно уместить исчерпывающий список различий дизайна и технических особенностей каждой из платформ. Более подробную информацию можно найти в соответствующих гайдлайнах.
Аналитик при работе с требованиями должен понимать, что ожидает пользователь той или иной платформы от интерфейса приложения. Это облегчает разработку и позволяет создавать продукты, которые соответствуют привычкам аудитории.