Дизайн мобильного приложения: как создать
Если коротко: дизайн мобильного приложения — это не уменьшенная копия сайта, а проектирование под палец, маленький экран и человека, который пользуется приложением на ходу, одной рукой и урывками. Плюс к этому у мобильного есть то, чего нет у веба: два разных языка дизайна — Apple HIG для iOS и Google Material для Android, — у которых по-разному устроены навигация, жесты и даже размеры кнопок. Поэтому первый практический вопрос дизайна приложения не «какой цвет взять», а «делаем нативно под каждую платформу или единый дизайн на обе».
Code Pilots проектирует и разрабатывает мобильные приложения с 2014 года — среди них VK Fest, приложения для музея Эрарта, PetShop с рейтингом 4.8★. Дизайн у нас живёт в одной команде с разработчиками, и мы по умолчанию работаем на Flutter, поэтому про выбор «нативно или единым дизайном» говорим из практики, а не по учебнику. Этот материал — про специфику именно мобильного дизайна: чем он отличается от сайта, как устроены два платформенных языка, когда нужен отдельный дизайн под iOS и Android, а когда хватит единого, и на что смотреть в доступности и адаптивности. Что такое UX/UI в целом, инструменты, передача в разработку и прототипирование — это смежные темы, они в отдельных разборах; здесь — про мобильное.
Чем дизайн мобильного приложения отличается от сайта
Перенести макет сайта на телефон, уменьшив, — самый частый и дорогой провал. Мобильный контекст другой по нескольким причинам, и каждая меняет дизайн:
Палец вместо курсора. Точность тача намного ниже точности мыши, поэтому элементы должны быть достаточно крупными, а между ними — воздух. Мелкие ссылки рядом, удобные на сайте, на телефоне превращаются в постоянные промахи.
Зоны больших пальцев. Телефон держат в руке, и низ экрана достаётся пальцу легко, а верхние углы — почти нет. Поэтому главные действия уводят вниз, к зоне досягаемости, а не наверх, как привычно в вебе.
Одна рука и на ходу. Приложением часто пользуются в транспорте, в очереди, между делами, одной рукой и урывками. Интерфейс должен прощать прерывания и не требовать сложных манипуляций двумя руками.
Маленький экран. Всё, что на десктопе помещается рядом, на телефоне выстраивается в высоту и прячется за переходы. Дизайн — это безжалостная расстановка приоритетов: что на экране сейчас, а что на следующем.
Системное окружение. Вырезы под камеру, «чёлки», скруглённые углы, безопасные зоны (safe area), статус-бар, системные жесты — всё это часть холста, и проектировать надо с их учётом, а не поверх них.
Адаптивная версия сайта это не закрывает: она решает задачу «как тот же контент влезет в узкий экран», а нативное приложение проектируют под другой способ взаимодействия с нуля. Поэтому дизайн приложения начинается не с переноса сайта, а с вопроса, как человек будет пользоваться продуктом в руке.
Два языка дизайна: Apple HIG против Google Material
Главное, что отличает мобильный дизайн от любого другого, — это две платформы со своими сводами правил. У Apple это Human Interface Guidelines (HIG), у Google — Material Design (актуальная версия — Material 3, она же Material You). Это не рекомендации «для красоты», а ожидания пользователя: человек, привыкший к своей системе, считывает родные паттерны мгновенно, а чужие — как «кривое приложение».
| Параметр | iOS (Apple HIG) | Android (Google Material 3) |
|---|---|---|
| Навигация | Жесты + верхняя/нижняя панель, свайп «назад» от края | Нижняя навигация + системная кнопка/жест «назад» |
| Минимальная тап-зона | 44×44 pt (~7 мм) | 48×48 dp (~9 мм) |
| Стиль | Лаконичные плоские иконки, много воздуха | Material You: динамические цвета, тени, крупные элементы |
| Разнообразие устройств | Небольшая линейка — тестировать проще | Зоопарк экранов и плотностей — нужен адаптив |
| Типографика и компоненты | Системный San Francisco, родные контролы | Roboto и Material-компоненты |
Различия не косметические, а поведенческие. На iOS пользователь возвращается назад свайпом от левого края и ждёт жестового управления; на Android есть системная навигация «назад», которую нельзя ломать. Кнопку подтверждения, навигацию и привычные жесты на каждой платформе размещают по-своему — и приложение, которое ведёт себя «не как все остальные на этом телефоне», раздражает, даже если выглядит красиво. Отсюда и главная развилка мобильного дизайна.
Нативно под каждую платформу или единый дизайн: честный выбор
Вопрос «рисовать отдельный дизайн под iOS и под Android или один на обе» — ключевой, и однозначного ответа «всегда так» нет.
Полностью нативный дизайн под каждую платформу даёт максимально «родное» ощущение: iOS-версия выглядит и ведёт себя как образцовое iOS-приложение, Android — как образцовое Android. Цена — двойная работа дизайна и больше расхождений в поддержке. Это оправдано там, где платформенная аутентичность критична: системные интеграции, продукты, где пользователь особенно чувствителен к «не родному» поведению.
Единый дизайн с уважением к платформенным конвенциям — это одна дизайн-система на обе платформы, в которой ключевые платформенные паттерны (навигация «назад», тап-зоны, жесты) всё равно соблюдаются, но визуальный язык общий и брендовый. Для большинства бизнес-приложений — каталогов, сервисов, маркетплейсов, личных кабинетов — это выгоднее: один дизайн, одна команда, быстрее на обе платформы, и пользователь не страдает, если родные паттерны соблюдены.
| Нативный дизайн под платформу | Единый дизайн на обе | |
|---|---|---|
| Ощущение | Максимально «родное» на каждой ОС | Брендовое, единое; родные паттерны соблюдены |
| Стоимость и сроки | Выше (двойная работа) | Ниже (одна дизайн-система) |
| Когда брать | Платформенная аутентичность критична | Большинство бизнес-приложений |
| С чем сочетается | Нативная разработка | Кроссплатформа (Flutter) |
Здесь и проявляется наш подход: мы по умолчанию работаем на Flutter, а это кроссплатформенный единый интерфейс из одной кодовой базы. Поэтому чаще проектируем единый дизайн, аккуратно соблюдая платформенные конвенции, — и для большинства продуктов это даёт пользователю «нормальное родное» ощущение без двойного бюджета. Где платформенная аутентичность реально критична, честно говорим, что нужен нативный путь. Технологию выбирают под продукт, а не наоборот — как и при выборе между нативной разработкой и Flutter, о чём подробнее в платформенных статьях про iOS и Android.
Этапы дизайна мобильного приложения
Общая методология — исследование, структура, прототип, визуал, тестирование — такая же, как в любом дизайне, и подробно разобрана в материалах про UX/UI и про дизайн сайта. У мобильного на каждом этапе свои акценты:
Исследование и сценарии. Кроме задач пользователя — контекст использования: где, в каких условиях, одной ли рукой, с какими прерываниями. Это влияет на структуру сильнее, чем на сайте.
Структура и прототип. Навигацию проектируют под платформенные паттерны и зоны пальца; прототип проверяют на реальном устройстве в руке, а не только в окне на десктопе (подробно про прототипы — в отдельной статье).
Визуал и компоненты. Собирают дизайн-систему с учётом платформенных конвенций и состояний; тёмная тема на мобильном — почти обязательна.
Передача в разработку. К обычному пакету (UI Kit, спецификации, токены) добавляются ассеты под плотности экранов и иконка приложения в нужных размерах. Сам процесс передачи (dev handoff) разобран в статье про дизайн сайта.
Тестирование на устройствах. Дизайн проверяют на разных диагоналях и плотностях, особенно на Android с его разнообразием, и на вырезах/safe area.
Главный мобильный акцент: дизайн проверяют в руке и на реальных экранах с самого начала, а не «на большом мониторе, адаптируем потом».
Доступность и адаптивность на мобильном
Доступность на телефоне — это не только про людей с ограничениями, но и про всех, кто пользуется приложением на солнце, в движении и уставшим. Базовые ориентиры: достаточные тап-зоны (44 pt на iOS, 48 dp на Android), контраст текста к фону, поддержка увеличения системного шрифта (Dynamic Type), работа с экранными дикторами (VoiceOver на iOS, TalkBack на Android). Приложение, которое ломается при включённом крупном шрифте, теряет часть аудитории и баллы в сторах.
Адаптивность на мобильном — это не только телефоны разных диагоналей, но и планшеты и складные устройства, где экран меняет размер прямо во время работы. На iOS линейка устройств небольшая, поэтому адаптив проще; на Android — огромный зоопарк экранов и плотностей, и дизайн обязан тянуться от компактного бюджетника до большого планшета (про фрагментацию Android — в отдельной статье). Закладывать это нужно в дизайн-систему, а не подгонять под каждое устройство вручную.
Частые ошибки в дизайне мобильного приложения
Ужать сайт вместо дизайна под мобильное. Перенос десктопного макета на телефон игнорирует тач, зоны пальца и контекст — и разваливается на реальном использовании.
Игнорировать платформенные конвенции. iOS-приложение с Android-навигацией (и наоборот) ощущается чужим, даже если красивое. Родные паттерны — это не ограничение, а ожидание пользователя.
Мелкие тап-зоны и элементы впритык. Кнопки меньше 44 pt / 48 dp и без воздуха между ними — это постоянные промахи и раздражение.
Забыть про safe area и вырезы. Контент, заезжающий под «чёлку», статус-бар или системные жесты, выглядит сломанным.
Нарисовать только «счастливый путь». Без состояний загрузки, ошибки, пустого экрана и офлайна приложение ломается при первом же нестандартном сценарии — на мобильном их больше, чем в вебе.
Проектировать на мониторе и не проверять в руке. То, что удобно в окне на десктопе, в ладони может оказаться недосягаемым для пальца.
С чего начать
Порядок такой:
- Начать не с экранов, а с контекста — кто, где и как будет пользоваться приложением (на ходу, одной рукой, с прерываниями)
- Решить вопрос платформ — единый дизайн на обе (чаще выгоднее, особенно на Flutter) или нативный под каждую, если аутентичность критична
- Проектировать навигацию и элементы под платформенные конвенции и зоны пальца
- Заложить доступность и адаптивность (тап-зоны, контраст, крупный шрифт, планшеты) с самого начала
- Проверять дизайн на реальном устройстве в руке, а не только на мониторе
- И не переносить сайт на телефон уменьшением
Самое дорогое в мобильном дизайне — спроектировать «красиво на мониторе» и обнаружить в руках пользователя, что до главной кнопки не дотянуться, а приложение ведёт себя не как родное для платформы. Code Pilots проектирует мобильный дизайн в одной команде с разработчиками, по умолчанию на Flutter, с уважением к паттернам iOS и Android — расскажите о задаче, подскажем, нужен ли вам единый дизайн или нативный под каждую платформу.
Частые вопросы (FAQ)
Приложение проектируют под палец, маленький экран и использование на ходу одной рукой, а не под курсор и большой монитор. Меняется всё: размеры элементов и тап-зон, расположение главных действий (ближе к зоне большого пальца внизу), учёт вырезов и безопасных зон экрана, поведение при прерываниях. Адаптивная версия сайта это не заменяет — это другой способ взаимодействия, который проектируют с нуля.
Не обязательно. Полностью нативный дизайн под каждую платформу даёт максимально «родное» ощущение, но это двойная работа. Для большинства бизнес-приложений выгоднее единый дизайн с соблюдением платформенных конвенций (навигация, тап-зоны, жесты) — особенно при разработке на Flutter из одной кодовой базы. Отдельный нативный дизайн берут там, где платформенная аутентичность критична.
Human Interface Guidelines (HIG) — свод правил Apple для iOS, Material Design — гайдлайн Google для Android. Это не формальность: пользователь считывает родные для своей системы паттерны мгновенно, а чужие воспринимает как «кривое приложение». Ключевые вещи — навигацию, жест «назад», размеры тап-зон — соблюдать нужно; визуальный стиль при этом может быть вашим брендовым.
Да, и для большинства продуктов это разумно. Единый дизайн на Flutter рисуют один раз, соблюдая платформенные паттерны, — пользователь получает «нормальное родное» ощущение без двойного бюджета на дизайн и поддержку. Главное — не игнорировать конвенции платформ ради единообразия: системную навигацию «назад» на Android и жесты на iOS сохраняют в любом случае.
Ориентиры из платформенных гайдлайнов: минимальная тап-зона 44×44 pt на iOS (около 7 мм) и 48×48 dp на Android (около 9 мм), с отступами между соседними элементами, чтобы не промахиваться. Видимый элемент может быть меньше, но его невидимая область нажатия должна укладываться в эти размеры. Это же требование доступности — крупные цели удобны всем, а не только людям с ограничениями.