Джон часто видел, как отец обращался к соседу за помощью. Он задумался, почему не было других соседей, которые могли бы помочь, когда возникали иные проблемы. Это посеяло зерно, которое намного позже стало основой для создания TaskRunner.
Задача
TaskRunner — это онлайн-платформа для заказа услуг. В системе есть две основные роли: Runner/Раннер (исполнитель) и Poster/Постер (заказчик услуг). Постеры создают задание с описанием того, что необходимо сделать, и публикуют его на платформе TaskRunner. Раннеры отправляют заявки на выполнение задания, Постер выбирает исполнителя и вносит оплату за работу. После того, как Постер и Раннер подтвердят завершение задания, последний получает оплату. Также предусмотрена административная роль для управления и контроля системы.
Платформа TaskRunner включает в себя:
- Мобильное приложение для Постеров (для платформ Android и iOS)
- Мобильное приложение для Раннеров (на платформах Android и iOS)
- Панель администратора (веб)
— Мы использовали подход, когда для двух разных приложений общая бизнес логика описана в едином модуле. Это позволило ускорить разработку и упростить поддержку приложений в будущем.
Антон Бевза, Android разработчик
Решение
Клиент пришел в Stfalcon уже с готовым продуктом. Однако пользователи постоянно жаловались на проблемы и сбои в работе как приложений, так и админ панели. После тщательного аудита старого проекта, оценки стоимости и рисков доработки, было решено переделать проект с нуля использовав при этом наиболее современные технологии.
Backend был реализован на платформе ASP.NET, в качестве СУБД использовался Microsoft SQL Server. В связи с высокой требовательностью данных продуктов к ресурсам, общая производительность системы была низкой. Плюс к этому - — высокие эксплуатационные расходы продуктов Microsoft.
Новую систему решили разрабатывать на платформе Symfony, и использовать PostgreSQL в качестве СУБД. Мы написали несколько дополнительных утилит для переноса данных с Microsoft SQL Server на PostgreSQL.
Старые мобильные приложения были реализованы с помощью технологий Cordova и React. Так как главными требованиями к новым приложениям были стабильность и скорость работы, наши специалисты разработали нативные iOS и Android приложения.
Технологии
Backend реализует REST API для обмена данными с клиентскими мобильными приложениями, интегрирован с несколькими внешними сервисами для выполнения ряда операций: — оплата заказов, отправка email, SMS и PUSH-уведомлений. Работа в среде Kubernetes повышает надежность и отказоустойчивость серверной части продукта и системы в целом.
Android приложения соблюдают принципы Clean Architecture. Проект разделен на четыре независимых модуля: Poster, Runner, Domain, Data. Domain и Data модули общие для приложений Постера и Раннера, это позволило избавиться от дублирования бизнес-логики, схожей в двух приложениях, что значительно сэкономило время разработки.
В версии iOS мы использовали архитектуру как на Android, 4 модуля: Domain, Data, Runner Presentation и Poster Presentation. Для привязки данных мы применили RxSwift, так как для слоя Presentation была использована архитектура MVVM.
Swinject, библиотека Dependency Injection, была использована нами для инициализации новый модулей. Это значительно упрощает их создание и повторное использование.
Для систем подобного типа важно иметь возможность анализировать действия пользователей. Для этого мы интегрировали два сервиса сбора аналитики — AppsFlyer и Segment.
Также для обеспечения обратной связи и реализации возможности пользователям обратится в тех. поддержу и получить немедленный ответ внутри приложения, мы интегрировали сервис Intercom.
Отзывы клиентов
Результат
Мы переделали с нуля все компоненты системы, улучшили стабильность, скорость и удобство работы с приложениями и админ панелью, при этом сохранили 100% существующих пользователей платформы.
Команда проекта:
- Александр А. Арбузов
Проектный менеджер
- Татьяна
Дизайнер
- Павел Попов
Backend разработчик
- Антон Б.
Руководитель отдела Mobile
- Андрей
Android разработчик
- Александр Ф.
IOS разработчик
- Александра Битюк
QA инженер
- Евгений
DevOps
Другие наши проекты
Приложения Busfor
Разработка мобильных приложений для онлайн-продажи автобусных билетов
The Hump
Сервис перевозки багажа
Логистическое приложение для упрощения обмена посылками
Проект под NDAs, США