Разработка мобильного приложения для курьерской службы (клиент)
Клиентское приложение курьерской службы — это то, что пользователь открывает, когда ждёт посылку или хочет отправить. Конкурентное преимущество здесь не в функциональности (она везде одинаковая), а в том насколько быстро и без трения работает оформление заказа и насколько понятно отображается статус доставки.
Оформление заказа: адреса и расчёт стоимости
Форма заказа — «откуда» и «куда». Автодополнение адресов через Google Places Autocomplete или Mapbox Search API с sessionToken для оптимизации билинга. Определение текущего местоположения одним нажатием с reverse geocoding: пользователь не должен вводить свой адрес вручную.
Расчёт стоимости в реальном времени: меняется адрес — обновляется цена. Debounce 500мс на поле ввода чтобы не стрелять API-запросами на каждый символ. Skeleton loader пока считается — пустое поле с «—» хуже, чем анимированный placeholder.
Тип груза — габариты, вес, хрупкость — влияет на цену и выбор курьера. Простой селектор: XS / S / M / L / XL с иллюстрациями. Не форма с полями «ширина», «высота», «вес» — это убивает конверсию.
Трекинг в реальном времени
После оформления пользователь хочет видеть, где курьер. Карта с маркером курьера обновляется каждые 3-5 секунд через WebSocket. Плавная анимация маркера — через ValueAnimator (Android) или CABasicAnimation (iOS) с интерполяцией позиции.
Если приложение свёрнуто — push-уведомления при ключевых статусах: курьер принял, выехал, прибывает (за 5-10 минут по расчётному времени прибытия), доставил. ETA рассчитывается на сервере через Distance Matrix API и обновляется в реальном времени.
Push «курьер прибудет через 5 минут» требует серверной логики: отслеживание расстояния от курьера до точки доставки, триггер при пересечении порога. Клиентское приложение этого не считает — только получает и отображает.
Live Activity (iOS 16+)
Для iOS стоит реализовать ActivityKit Live Activities — интерактивный виджет на экране блокировки и в Dynamic Island, который показывает статус доставки и ETA без открытия приложения. Обновляется через ActivityKit push updates (отдельный APNs канал). Пользователь видит прогресс прямо на lock screen — это значительно снижает количество открытий приложения «проверить где курьер».
История и повторный заказ
Список прошлых заказов с возможностью повторить одним нажатием — адреса и тип груза заполняются автоматически. Сохранённые адреса: дом, работа + до 5 произвольных. Keychain (iOS) / EncryptedSharedPreferences (Android) для хранения, синхронизация с backend.
Оплата
Stripe или ЮКасса с сохранением карты (SetupIntent в Stripe для tokenization без реального платежа). Apple Pay и Google Pay как быстрый вариант без ввода номера карты. Промокоды — поле в форме с валидацией на сервере, не на клиенте.
Срок: от 6 до 10 недель. Стоимость рассчитывается индивидуально после анализа требований.







