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

Balabing — приложение для управления фуд-траками

balabing.com
Индустрия Ообщественное питания
Расположение США
Разработка 2019-2020

Фуд-траки набирают популярность, но, клиентам часто приходится стоять в очереди. Мы решили упростить задачу для клиентов и создать приложение, которое бы позволяло создавать заказ удаленно, оплачивать его онлайн и быстро получать заказ у фуд-трака.

Анна Теребенина-Таггарт, COO Food Teck

Задача

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

— Нам удалось создать приложение, которое уже в первой итерации превзошло ожидания заказчика.

Светлана Болгар, Проектный Менеджер

Технологии.
Android

В данном приложении, как и во всех проектах на базе Android мы следовали принципам Clean Architecture. Использование общих Domain и Data модулей для приложений клиента и Вендора позволило избежать дублирования бизнес логики, и в итоге значительно сэкономило время разработки и позволило упростить внесение изменений в будущем.

Так как библиотека Centrifuge-Android на данный момент еще не стабильна, для socket соединения мы написали собственную реализацию подключения к Centrifugo с помощью библиотеки Scarlet. Трекинг позиции вендора осуществляется с помощью библиотеки HyperTrack, это обеспечивает высокую точность и бесперебойность отправки координат на сервер.

iOS

Архитектура версии IOS реализована, как и на Android, из 4 модулей: для поставщика, для клиента, домен и данные. Так как была использована архитектура MVVM, для привязки данных использовался RxSwift. Мы использовали Swinject, Dependency Injection библиотеку, для инициации новых модулей. Это упрощает их создание и повторное использование. Для отслеживания местоположения пользователя в приложении используется HyperTrack, который, в свою очередь, использует CoreMotion для большей точности.

Для соединения с сокетом использована библиотека CentrifugeIOS, однако, в несколько измененном виде. Для интеграции анимации в приложении мы использовали Lottie.

Backend

Бекенд реализован на PHP-фреймворке Symfony последней версии на момент разработки (4.4). Так как данное приложение является стартапом, и имеются задумки по дальнейшему расширению и наращиванию функционала в следующих версиях, для создания первоначальной версии, было выбрано полуготовое решение для админ панели - EasyAdminBundle. Его можно легко конфигурировать под потребности клиента. Имея самый простой вид, данное решение прекрасно выполняет свои функции простой и понятной админ панели. Для пользователей реализована возможность легкой регистрации и авторизации в приложении через e-mail или Facebook-аккаунт.

Мы использовали Google Places и GPS трекинг, чтобы позволить пользователям находить и выбирать фуд-трак по его расположению. Кроме того, у клиента есть возможность отфильтровать поиск по типам кухни и названию вендора.

Для полнотекстового поиска используется Elasticsearch. Для обеспечения связи сервера с мобильным приложением, мы используем web-socket сервер Centrifugo. Он легок и быстр для разработки и обеспечивает хорошую производительность. Также для проведения платежей, была подключена платежная система Payzang.

Код на бекенде полностью покрыт модульными тестами, а также дописанная часть админ панели покрыта функциональными тестами. Также на проекте используются различные анализаторы кода, которые позволяют определять проблему еще на моменте разработки и делать код более качественным.

Результат

Хотя разработка приложения продолжается, и проводится тестирование платежной системы, первоначальная версия уже превзошла ожидания заказчика с точки зрения UX. На данном этапе осуществляется планирование новой фазы разработки и расширения функционала приложения.

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

  • Светлана Болгар Светлана Болгар

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

  • Александр Кононенко Александр Кононенко

    Дизайнер

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

    Backend Разработчик

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

    Руководитель отдела Mobile, Android разработчик

  • Александра Битюк Александра Битюк

    Руководитель отдела QA

Примеры разработки вебсайтов