EN RU
Напишите нам
Предыдущий проект Следующий проект

Whizzy — логистическое приложение для услуг доставки

Индустрия Логистика
Расположение Cаудовская Аравия
Разработка 2020
— Когда моему отцу потребовалась помощь в организации переезда его офиса по операциям с недвижимостью, он поинтересовался, есть ли приложение, которое поможет ему в решении этой задачи. К сожалению, приложения для этого не было, и это заставило нас задуматься о том, чтобы организовать сервис перевозки различных вещей в разные точки города.
Абдалазиз Альбадер
Соучредитель Whizzy

Задача

Whizzy — это служба доставки товаров работающая в странах Ближнего Востока. Задача Stfalcon заключалась в создании с нуля мобильных приложений для iOS и Android на двух языках: арабском и английском. Кроме того, необходимо было разработать админ панель и дизайн сайта для привлечения клиентов.

Платформа Whizzy состоит из двух приложений: для клиентов и для водителей. Клиенты формируют заказы и выбирают водителей, которые будут их выполнять. Водители же ищут необходимые предметы и выполняют заявки.

Whizzy состоит из:

  • Приложения для Android и iOS для клиента,
  • Приложения для Android и iOS для водителя,
  • Панели администратора,
  • Интернет сайта.

Решение

Выполняя проект для Whizzy, Stfalcon реализовал следующие этапы:

  • Исследование,
  • UX / UI дизайн,
  • Backend разработку,
  • Frontend разработку,
  • Разработку под iOS и Android,
  • Ручное тестирование.

Команда Stfalcon начала работу над проектом с этапа исследования, чтобы выяснить потребности двух категорий пользователей, понять контекст использования сервиса и, как следствие, создать путь пользователя, пользовательские истории, и концепцию продукта. Это было необходимо для общего понимания проекта, его оценки и предоставления клиенту план-графика разработки программного решения.

На основе пользовательских историй, которые мы получили в результате фазы исследования, мы разделили приложение на две версии. Первая должна была стать продуктом с минимально необходимым функционалом (MVP), а вторая версия должна быть разработана с дополнительными функциями после запуска MVP.

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

Приложение для заказчика

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

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

Выбор времени

Выбор времени Нативный TimePicker — это простое, быстрое в разработке решение с минималистичным и понятным интерфейсом, но мы решили пойти дальше. В данном проекте пользователю было бы удобнее видеть самые популярные часы для заказов, поэтому мы отключили ночное время и оставили период с 8:00 до 20:00. Это позволило уменьшить количество действий, в то время как для стандартного TimePicker требуется 5 действий, реализованные нами тайм-слоты требуют всего одно. Мы не только оптимизировали экран выбора времени, но и ускорили этот процесс в 5 раз.

Приложение для водителя

Водители — это люди, которые хотят подзаработать с помощью своей легковой или грузовой машины. Им важно устанавливать свою цену за доставку, искать заказы недалеко от того места, где они находятся, быть на связи с клиентом. Исходя из этих потребностей, мы выделяем наиболее важные функции для MVP:

  • Регистрация с проверкой документов,
  • Поиск заказа,
  • Отправка запроса с предложением цены и ожидание одобрения,
  • Выполнение заказа с разными статусами,
  • Список активных заказов.
  • Поддержка

Логотип

Мы создали простой и запоминающийся символ дороги в виде буквы «Z» и стрелок, обозначающих разные способы доставки. Этот символ прост, понятен и его легко запомнить. Логотип можно использовать как в печатной, так и цифровой рекламе, он отлично читается в любом формате: это может быть большой рекламный щит или же небольшой цифровой баннер в Instagram.

Разработка


  • Android
  • iOS
  • Backend для приложений
  • Backend для панели администратора

Backend для приложений

Backend для мобильных приложений реализован с помощью сервиса RESTful API. Основными backend -технологиями, которые мы использовали, были PHP 7.4 и Symfony 5.1. Мы использовали новейшие версии PHP и Symfony, которые были доступны на момент реализации проекта, что способствовало созданию лучшей внутренней архитектуры и открыло более широкие возможности при разработке. Также мы воспользовались Postgres, Redis и RabbitMQ, мы хорошо знаем эти инструменты, и они позволяют нам решать необходимые задачи.

Также мы воспользовались Postgres, Redis и RabbitMQ, мы хорошо знаем эти инструменты, и они позволяют нам решать необходимые задачи.

Предметная среда приложения Whizzy связана с переходом между статусами заказов. В каждом заказе их 10, и переход к каждому новому статусу осуществляется с различной логикой и действиями (отправка уведомлений, проверка возможностей перехода, асинхронные фоновые задачи, бухгалтерия и т. д.).

На backend это реализовано с помощью компонента Symfony Workflow, который позволяет описывать все возможные статусы и переходы между ними. Кроме того, вы можете реализовать подписи для перехода от одного статуса к другому, обозначая бизнес-логику, которая должна выполняться в данной ситуации.

Постоянные изменения статуса заказа требуют передачи обновлений с сервера клиенту. Для этого мы использовали сервер веб-сокетов Centrifugo.

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

Автоматические тесты также являются важной частью серверной части. API-вызовы и все внутренние сервисы покрываются модульными тестами, функционал админ панели покрывается функциональными тестами, вместе эти тесты дают 100% тестовое покрытие кода.

Backend для панели администратора

Для администраторов приложения мы реализовали личный кабинет, в котором они могут управлять сервисом, делать необходимые настройки и просматривать отчеты. Личный кабинет также реализован на Symfony с использованием EasyAdminBundle.

В процессе разработки проекта была выпущена новая версия Bundle 3.0, и мы использовали именно ее. EasyAdminBundle позволяет быстро и легко настраивать основные операции с сущностями. Кроме того, благодаря сохранению Symfony подходов в своей архитектуре, бандл позволяет удобную кастомизацию под нужды проекта.

Мобильные приложения

  • Android
  • iOS

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

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

Android App

Для платформы Android мы использовали Kotlin и Coroutines, так как сегодня они являются передовыми технологиями в разработке решений Android Native. Данные приложения обновляются в реальном времени за счет реализации соединения WebSocket на основе библиотеки Centrifuge. Поскольку библиотека Centrifuge-Android еще нестабильна, мы разработали собственную реализацию подключения к Centrifugo с помощью библиотеки Scarlet.

iOS App

Приложение iOS использует библиотеку SwiftCentrifuge для подключения к сокету, однако в несколько измененном виде. Мобильные приложения поддерживают интерфейс справа налево, поскольку они имеют арабскую локализацию. Мы следовали рекомендациям по материальному дизайну и использовали лучшие практики разработки пользовательского интерфейса. Это позволило нам добавить поддержку интерфейсов LTR, RTL и BiDirectional без каких-либо проблем и траты времени.

Результат

Команда Stfalcon с нуля разработала версию MVP для мобильных приложений iOS и Android, которая превзошла первоначальные ожидания клиента. Это стало возможным, благодаря тому, что мы предоставляли клиенту свое видение и предложения по разработке продукта, обсуждали варианты и вместе выбирали лучшие решения. Кроме того, мы позаботились о целевой странице для привлечения трафика и внимания к сервису и продукту.

— Stfalcon был реальным партнером, а не только подрядчиком. Они были глубоко вовлечены в проект и предоставили уникальную ценность.

Абдалазиз Альбадер
Соучредитель Whizzy

Над проектом работали:

  • Сергей Юсечко
    Сергей Юсечко

    Проектный менеджер

  • Антон Бевза
    Антон Бевза

    Android разработчик

  • Юлия Колянова
    Юлия Колянова

    Дизайнер

  • Артем Генвальд
    Артем Генвальд

    Back-end разработчик

  • Евгений Аронов
    Евгений Аронов

    IOS разработчик

  • Юрий Шевчук
    Юрий Шевчук

    QA инженер

  • Оксана Масловская
    Оксана Масловская

    Account менеджер