Смартфон давно стал главным экраном и для ваших покупателей, и для выездных сотрудников компании. Проверить статус заказа, получить персональное предложение или оформить заявку прямо на складе — всё это люди делают через мобильный браузер, мучаясь с мелкими кнопками. Опыт, сами понимаете, так себе: мелкие кнопки, случайные перезагрузки, слетевшая корзина.
Приложение живёт на главном экране. Оно возвращает клиентов через push-уведомления, без расходов на рекламу, и удерживает бренд перед глазами.
Для сервисных инженеров, логистов и экспедиторов история другая. Им нужны камера, считывание штрихкодов и уверенный офлайн-режим на удалённых объектах, куда сотовая связь просто не доходит.
Мы собираем кроссплатформенные приложения на Flutter: одна кодовая база работает и на iOS, и на Android, поэтому правка делается один раз и выходит на обе платформы сразу. Серверную часть держит компактное быстрое ядро на Go: то же, что у нашей веб-платформы, поэтому приложение и веб работают с одной логикой синхронно.
Ограничения мобильного сайта
«Мобильная версия сайта делает то же самое», — уверенно скажет подрядчик или ваш маркетолог. Обман в том, что «то же самое» ломается ровно на телефоне. Клиенты заходят со смартфона в семи случаях из десяти, и каждый раз борются с интерфейсом: кнопки меньше пальца, приложение вылетает на оплате, а корзина теряет всё собранное за полчаса выбора. Полчаса — в мусор.
А полевым сотрудникам нужен офлайн. Заявка или фотоотчёт, сделанные вне зоны связи, сохраняются в телефоне и уходят на сервер сами, как только связь появляется, — хоть в поле, хоть в подвале. Push-уведомления при этом читают сразу — статус заказа или напоминание о визите находит своего адресата в приложении, а письма оседают в промо-вкладке почты. Ну и плавный интерфейс с мгновенным откликом: по ним клиент считывает класс продукта.
Экономические преимущества для бизнеса
Иконка на экране и push-уведомления возвращают клиента без всякого рекламного бюджета. Открыть приложение — секундное дело. Искать сайт заново — целое путешествие.
Скорость и тактильность. Интерфейс отвечает мгновенно, сценарии укладываются в пару касаний. Качество чувствуется сразу и переносится на бренд.
Работает и без интернета. Заявки, фото и сканы сохраняются на устройстве и синхронизируются с сервером, когда связь появляется, поэтому ни одна заявка на выезд не теряется из виду. Ни сотрудники, ни клиенты не зависят от качества сети.
И одна кодовая база на две платформы. Flutter даёт общий код для iOS и Android: команда развивает единый продукт, а не два. Серверное ядро то же, что у веб-приложений: Go.
Этапы разработки приложения
Начинаем со сценариев под контекст смартфона: короткие сессии, крупные кнопки, камера и сканер как инструменты дела. Дальше сборка на Flutter — один интерфейс работает на iOS и Android, элементы подстраиваются под стиль каждой платформы. Push-уведомления и глубокие ссылки встраиваем так, чтобы статус заказа, напоминание или предупреждение приводили сразу в нужный экран.
И отдельной работой становится офлайн-слой: локальное хранение, синхронизация, разрешение конфликтов и экономия трафика, чтобы полевой сотрудник вообще не думал о связи и занимался делом. Серверное ядро пишем на Go — единый API и права доступа, без задвоения логики между приложением и вебом. В конце готовим материалы и сопровождаем публикацию: проверки безопасности, скриншоты, релизы в App Store и Google Play.
Первый месяц после релиза в сторах
После публикации мы три недели дежурим: смотрим сбои и отзывы, ловим нестыковки на редких моделях устройств, которых в офисе, честно скажем, просто не было. Выпускаем срочные исправления. Первая версия устоялась — приложение переходит в общий график релизов.
Технологии приложения
Один код для iOS и Android написан на Flutter и Dart: быстрые релизы, синхронные изменения на обеих платформах и плавный интерфейс даже на слабых устройствах, которые ещё живут у полевых сотрудников. Серверное API — Go: единое ядро для приложения и веба под тысячи устройств. Данные пользователей и операций лежат в PostgreSQL с транзакционной целостностью между приложением, вебом и учётными системами, а сессии устройств и push-очереди держит Redis: мгновенные уведомления без нагрузки на базу.
Сроки и оправданность
От старта до публикации в сторах проходит от 10 до 16 недель.
Как понять, нужно ли вам приложение вообще? Говорим прямо: оправдано, когда сценарий действительно мобильный, и не оправдано нигде больше. Камера, геолокация, работа без сети или сервисные push-сообщения. Впрочем, приложение, просто копирующее сайт-визитку, приносит неоправданные расходы. Если сомневаетесь — похоже, вам пока хватит адаптивного веб-приложения. О разработке под сторы примете решение по реальным запросам клиентов, а не по моде.
Синхронизация данных и надёжность
Мобильное приложение разделяет серверное ядро с веб-интерфейсом, поэтому бизнес-логика не расходится между платформами. При нестабильном соединении офлайн-очереди накапливают события и отчёты и доставляют их, когда связь возвращается. Как пользователи ведут себя в приложении, видно из событийной модели и журнала сессий — сторонние трекеры для этого не нужны.