О проекте
OneTwoDo — маркетплейс локальных услуг, где пользователи размещают и просматривают объявления о повседневных услугах — уборка, ремонт, покраска, сантехника, переезды, красота и другое — и напрямую связываются с исполнителями поблизости. Продукт разработала наша команда, от начала до конца: дизайн продукта, Flutter-клиент и всё, на чём приложение работает.

Экран входа

Лента объявлений

Категории услуг

Мастер создания поста — тип поста

Мастер создания поста — локализованное описание
Без команды бэкенда
Двусторонний маркетплейс обычно подразумевает команду бэкенда раньше, чем что-либо ещё: аккаунты, сессии, базу данных для объявлений и профилей, хранилище файлов для фотографий и сервер, за которым всё это стоит, — ещё до того, как кнопка «Зарегистрироваться» сможет сделать хоть что-то реальное. Именно на разработку и поддержку этого слоя обычно уходит время и бюджет небольшой команды — ещё до того, как дело доходит до самого продукта.
OneTwoDo вышел без единой строчки этого слоя. Firebase заменил собой весь бэкенд целиком — Authentication для аккаунтов и сброса пароля, Cloud Firestore для объявлений и профилей, Cloud Storage (объектное хранилище) для фотографий, Analytics и Crashlytics — там, где команда обычно строит собственные дашборды ради наблюдаемости. Ничего из этого не требовало развёртывания серверов, установки патчей или дежурств on-call — именно это позволило нашей команде одновременно вести дизайн продукта, Flutter-клиент и «бэкенд», уложившись в семь недель.
Что это дало
Экономия проявлялась не только на старте — она возникала каждый раз, когда фиче требовалась поддержка со стороны бэкенда. Мультивалютные цены в фиате и криптовалюте, локализованные описания для каждого объявления, лента объявлений с фильтрацией по языку и локации — обычно каждая из этих задач сначала становится тикетом для бэкенда и только потом для клиента. Здесь это была работа исключительно на стороне клиента поверх уже готового слоя данных — так мастер создания объявления (тип, описание, локация, цена, категория, фотографии) добирался от идеи до готового экрана за время, которое в другом проекте ушло бы на одну только спецификацию бэкенда, а это напрямую сокращает время выхода на рынок.
Это же снизило совокупную стоимость владения продукта. Запуск, прошедший лучше ожиданий, не означает аврала с масштабированием базы данных или добавлением кеширующего слоя — Firebase берёт это на себя по умолчанию, а стоимость растёт вместе с использованием, а не остаётся фиксированным счётом за сервер, который платится независимо от того, десять ли у приложения пользователей или десять тысяч.
Офлайн-режим демо
И для ревью в сторах, и для обычных демонстраций нужен способ изучить продукт без живого бэкенда и реального аккаунта. В OneTwoDo встроен самодостаточный слой данных в памяти, который подменяет собой Firebase и отдаёт заранее заполненные объявления, профили и рабочую ленту — всё приложение можно изучить от и до, не обращаясь к сети и не запрашивая у ревьюера или потенциального клиента никаких учётных данных.
Результаты
С Firebase вместо той команды бэкенда, которая иначе понадобилась бы продукту, наша команда довела проект до рабочего кроссплатформенного маркетплейса — аутентификация по email/паролю со сбросом пароля, загрузка аватара со сжатием изображения на устройстве, полная локализация на английский и русский, раздел FAQ — за семь недель, от пустого репозитория до полностью готового к публикации приложения.
Итог проекта в цифрах:
- Семь недель от пустого репозитория до готового к публикации приложения — включая дизайн продукта, а не только код.
- Ноль собственных бэкенд-сервисов — ничего не разрабатывалось, не разворачивалось и не требовало дежурств: аккаунты, данные, фотографии и аналитику нёс Firebase.
- Одна команда закрыла все три роли — дизайн, Flutter-клиент и управляемый бэкенд, — тогда как маркетплейс обычно нанимает под каждую отдельных людей.
- Две локали и мультивалютные цены (фиат и криптовалюта) вышли в те же семь недель — как клиентская работа поверх уже готового слоя данных.
FAQ
OneTwoDo — это то, как разработка MVP выглядит на практике: первый релиз, собранный под один вопрос и выпущенный сразу в оба стора. Он же — опорный проект нашей страницы разработки приложений-маркетплейсов, которая рассказывает ту же историю с двусторонней стороны.
