О проекте

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

Экран входа

Экран входа

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

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

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

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

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

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

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

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

Без команды бэкенда

Двусторонний маркетплейс обычно подразумевает команду бэкенда раньше, чем что-либо ещё: аккаунты, сессии, базу данных для объявлений и профилей, хранилище файлов для фотографий и сервер, за которым всё это стоит, — ещё до того, как кнопка «Зарегистрироваться» сможет сделать хоть что-то реальное. Именно на разработку и поддержку этого слоя обычно уходит время и бюджет небольшой команды — ещё до того, как дело доходит до самого продукта.

OneTwoDo вышел в свет без единой строчки этого слоя. Firebase заменил собой весь бэкенд целиком — Authentication для аккаунтов и сброса пароля, Cloud Firestore для объявлений и профилей, Cloud Storage () для фотографий, Analytics и Crashlytics — там, где команда обычно строит собственные дашборды для операционной видимости. Ничего из этого не требовало развёртывания серверов, накатывания патчей или дежурств on-call, — именно это позволило нашей команде одновременно вести дизайн продукта, Flutter-клиент и «бэкенд», уложившись в семь недель.

Что это дало

Экономия проявлялась не только на старте — она возникала каждый раз, когда фиче требовалась поддержка со стороны бэкенда. Мультивалютные цены в фиате и криптовалюте, локализованные описания для каждого объявления, лента объявлений с фильтрацией по языку и локации — обычно каждая из этих задач сначала становится тикетом для бэкенда и только потом для клиента. Здесь это была работа исключительно на стороне клиента поверх уже готового слоя данных, — так мастер создания объявления (тип, описание, локация, цена, категория, фотографии) добирался от идеи до готового экрана за время, которое в другом проекте ушло бы на одну только спецификацию бэкенда, — а это напрямую сокращает .

Это же снизило продукта. Запуск, прошедший лучше ожиданий, не означает аврала с масштабированием базы данных или добавлением кеширующего слоя — Firebase берёт это на себя по умолчанию, а стоимость растёт вместе с использованием, а не остаётся фиксированным счётом за сервер, который платится независимо от того, десять ли у приложения пользователей или десять тысяч.

Офлайн-режим демо

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

Результаты

С Firebase вместо той команды бэкенда, которая иначе понадобилась бы продукту, наша команда довела проект до рабочего кроссплатформенного маркетплейса — аутентификация по email/паролю со сбросом пароля, загрузка аватара со сжатием изображения на устройстве, полная локализация на английский и русский, раздел FAQ — за семь недель, от пустого репозитория до полностью готового к публикации приложения.