Balabing — приложение для управления фуд-траками
balabing.comФуд-траки набирают популярность, но, клиентам часто приходится стоять в очереди. Мы решили упростить задачу для клиентов и создать приложение, которое бы позволяло создавать заказ удаленно, оплачивать его онлайн и быстро получать заказ у фуд-трака.
Анна Теребенина-Таггарт, 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 Разработчик
- Антон Б.
Android разработчик
- Александра Битюк
Руководитель отдела QA
Другие наши проекты
App Food
Мобильные приложения для заведение быстрого питания
SMILEFOOD
Приложение для заказа еды, Украина
Приложение для взаимодействия ресторанов с поставщиками в 40 странах мира
Проект под NDAs