Mobile

Zapys24 Mobileприложения записи для iOS и Android

Клиент записывается с телефона, бизнес ведёт день между приёмами

Два приложения на React Native в App Store и Google Play: одно для клиентов, которые записываются, второе — для бизнесов, которые их принимают.

Zapys24 Mobile — приложения записи для iOS и Android
Задача

Обе стороны записи действуют с телефона, но с противоположными задачами — одно приложение для всех было бы неудобным каждому.

Результат

Два приложения на Expo с одним бэкендом: клиентское — поиск на карте, запись и пуш-уведомления; Zapys24 Pro — расписание и персонал. Оба опубликованы в App Store и Google Play.

Ключевые функции

  • Два приложения, один API
  • Поиск на карте (Mapbox)
  • Пуш-уведомления (Firebase)
  • Запись и расписание
  • App Store и Google Play
  • Загрузка фото
  • Deep linking
  • Общая дизайн-система

Как это построено

Два приложения на React Native поверх API Zapys24: одно для клиента, который записывается, второе для бизнеса, который ведёт день. Оба опубликованы в App Store и Google Play. Вот решения, которые их сформировали.

2
Приложения, один бэкенд
iOS
App Store
Android
Google Play
0
Общих экранов

Два приложения, а не одно с переключателем

У клиента и владелицы салона общего почти нет: один смотрит, записывается и получает напоминания; вторая целый день работает с календарём, персоналом, клиентами и деньгами. Сведение обоих под флажок роли даёт приложение, в котором половина навигации всегда лишняя.

Поэтому они выходят отдельно, но против того же API. Клиентское опирается на карту и поиск, бизнесовое — рабочий инструмент с календарём в центре. И тогда каждая страница в сторе описывает одну вещь, чего и ждут на ревью.

Найти салон, а не список салонов

В клиентском приложении карта стоит первой: геолокация устройства, рендер на Mapbox и результаты, привязанные к тому, что действительно рядом, а не к списку по всей стране. Запись открывается шторкой поверх карты, так что выбор времени не стоит понимания, где это место.

Пуши, которые оправдывают разрешение

Уведомления идут через Firebase Messaging на обеих платформах и категоризируются на сервере, так что напоминание о завтрашнем визите и акция — это не одна подписка.

Разрешение спрашиваем тогда, когда оно имеет смысл — после того, как запись уже есть, — а не на первом запуске. Приложение, которое сжигает запрос на старте, теряет именно тот канал, который ему нужен.

Быстро на плохой связи

Серверное состояние кеширует React Query, а то, что должно пережить холодный старт, ложится в MMKV — достаточно быстрое, чтобы читать синхронно, пока рисуется первый экран. Токены живут в защищённом хранилище платформы, никогда в обычном.

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

Чего потребовали сторы

Подписки, купленные в приложении, проверяются на сервере через библиотеку App Store Server — доступ даёт чек, а не устройство. Удаление аккаунта доступно и внутри приложения, и в вебе, потому что оба стора этого требуют.

Сборки и публикации идут через Expo, что держит нативный проект вне репозитория, а релиз — в одной команде.

Результат

Два приложения в продакшене в App Store и Google Play с общим NestJS-бэкендом вместе с веб-кабинетом: клиенты записываются с карты, бизнес ведёт день с телефона.

Следующий проект
Web

SIMILIA Studio

Клиенты сами бронируют студию — без накладок в календаре

Смотреть кейс
SIMILIA Studio — бронирование фотостудии

Хотите что-то похожее?

Расскажите о вашем проекте и мы создадим его с таким же вниманием к деталям.

Начать проект →