Мы уже не представляем свою жизнь без мобильных телефонов и приложений, которые в них установлены. В мире сегодня насчитывается около 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 пользователю необходимо зарегистрироваться.

Заключение

Разумеется, в одну статью невозможно уместить исчерпывающий список различий дизайна и технических особенностей каждой из платформ. Более подробную информацию можно найти в соответствующих гайдлайнах. 

Аналитик при работе с требованиями должен понимать, что ожидает пользователь той или иной платформы от интерфейса приложения. Это облегчает разработку и позволяет создавать продукты, которые соответствуют привычкам аудитории.

Комментарии (3)


  1. YgReEk
    13.01.2022 17:49

    Статья кажется немного недоделанной:

    1. Задача аналитика - спроектировать интерфейс или пользовательское взаимодействие? Это далеко не везде так и об этом не сказанно явно. Для какого именно спектра задач требуется знание различий?

    2. Речь идёт про стайлгайды, "общепринятые модели поведения" или доступные элементы дизайна? В любом случае, не хватает ссылок на источники, почему описанные различия выглядят так, стоит ли им следовать и если нет - то для чего.

    3. Для каких версий всё это актуально, для каких оболочек (в случае андроида)? Тот же андроид по умолчанию не даст сохранить файл вне пользовательского пространства. Если уж давать различия, то явно: Smart Lock появился с 5 версии, завязан на гугл сервисы, может быть отключён для отдельных приложений...

    Если это просто обзорная статья о том, что различия есть и если вам вдруг нужно о них знать, то вот краткий список, дальше гуглите сами - окей, в таком виде к ней вопросов нет.


    1. mchernova Автор
      14.01.2022 20:04

      Привет! Спасибо за комментарий)

      Статья действительно предполагалась как обзорная, с кратким описанием различий. Отвечу по пунктам:

      1. Знание различий нужно аналитику для проработки требований, об этом упомянули в заключении статьи.

      2-3. В материале не стали вдаваться в детали по каждому пункту, но там действительно есть, о чем рассказать. Мы могли бы рассмотреть отдельно некоторые пункты из этой статьи, особенно те, которые связанны с тех.различиями систем.
      Если, конечно, это будет интересно читателям)


  1. Ziner
    13.01.2022 23:16

    Даа..

    Кажется у андроида больше возможностей.