Скрипт для приложения доски объявлений

Руководитель Bright Mobile рассказывает о развитии ядра для мобильных досок объявлений.

Недавно писал про то, как мы сделали ядро для приложений с идеей досок объявлений. Рассказываю, что мы поменяли в ядре за четыре месяца и почему.

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

Какие были изменения

Вместе с тем услышал обратную связь, чего было бы неплохо сделать для каждой доски. Для начала напомню, что у нас уже было на середину марта в Sales Board:

  • Список объявлений с фильтрацией по категории.
  • Создание объявления с загрузкой фото.
  • Список своих объявлений.
  • Просмотр объявления с возможностью написать в чат и позвонить по номеру в объявлении.
  • Текстовые переписки.
  • Push-уведомления о новых сообщениях.

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

Что добавилось за четыре месяца:

  • Регистрация и авторизация по SMS (чтобы можно было восстановить доступ при утрате телефона).
  • Сделали «задел» в фильтре объявлений, чтобы легко фильтровать по кастомным полям.
  • Добавили в ленту объявлений и сообщений lazy load, чтобы приложение не подвисало.
  • Звонок в приложении сделали на телефон из профиля, чтобы в объявлении не вводить каждый раз номер.
  • Сделали раздел диалогов.
  • Сделали редактирование профиля пользователя.

Косметические изменения:

  • Причесали внешний вид списка объявлений.
  • Причесали вид объявления.
  • Оптимизировали код до загрузки одного экрана до двух секунд.

Use case

Чтобы понимать необходимый и достаточный объём экранов, мы расписали стандартный use case, который должен быть в ядре. Исходная задача сводится к тому, чтобы сделать приложение, в котором любой человек мог бы зарегистрироваться и выступать как покупатель с возможностью купить товар — и как продавец с возможностью создавать объявления о продаже товара. Товарами могут быть недвижимость, автомобили, услуги — в зависимости от конечной задачи нашего клиента.

Для текущего приложения use case имеет разветвлённую структуру, так как один и тот же пользователь может выступать в двух ролях (покупателя и продавца). Ниже описание каждой роли.

Покупатель

Пользователь на доске объявлении смотрит все предложения, используя фильтр. Для детальной информации заходит в каждое объявление. В случае интереса он связывается с продавцом напрямую по телефону или через внутренний мессенджер. Во втором случае ему потребуется авторизоваться и заполнить свой профиль.

Продавец

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

Структура экранов ядра

1. Начальный экран

Цель экрана: создание профиля в приложении и восстановление доступа.

Скрипт для приложения доски объявлений

Реализация. На экране выводятся:

  • Поле для ввода телефона.
  • Поле для ввода кода.
  • Кнопка «Далее» переводит на экран доски объявлений.

Пользователь вводит номер телефона, на этот номер телефона приходит SMS с кодом. Этот код пользователь указывает в поле для ввода кода и переходит на предыдущий экран.

2. Настройка профиля

Цель экрана: просмотр и редактирование личной информации пользователя.

Скрипт для приложения доски объявлений

Реализация: пользователь заполняет или обновляет данные формы:

  • Загрузка фото.
  • Поле ввода ФИО.
  • Поле ввода информации «О себе».
  • Кнопка «Отправить» сохраняет изменения в профиле.

3. Разместить объявление — выбор категории (доступ после авторизации)

Цель экрана: выбрать соответствующую категорию при создании объявления.

Реализация: когда пользователь нажимает в меню иконку «Разместить», ему открывается экран выбора категории.

  • Категория (выпадающий список).
  • Кнопка «Отправить».

При нажатии на «Отправить» происходит переход на экран заполнения полей объявления.

4. Разместить объявление — заполнение полей (доступ после авторизации)

Цель экрана: создать объявление.

Скрипт для приложения доски объявлений

Реализация: пользователь вносит информацию в поля:

  • Категория (выбрана выше).
  • Загрузка фото.
  • Заголовок.
  • Стоимость.
  • Описание.

Кнопка «Отправить» публикует объявление на доске объявлений.

5. Список объявлений (доступ без авторизации)

Цель экрана: увидеть список всех объявлений.

Скрипт для приложения доски объявлений

Реализация: пользователь видит список всех объявлений приложения в виде списка со следующими полями:

  • Фото.
  • Дата публикации.
  • Заголовок.
  • Стоимость.
  • Категория.

При клике на объявления происходит переход в просмотр объявления.

6. Просмотр объявления (доступ без авторизации)

Цель экрана: просмотр объявления.

Скрипт для приложения доски объявлений

Реализация: пользователю отображается подробная информация об объявлении в виде:

  • Фото.
  • ФИО создателя объявления.
  • Аватар.
  • Кнопка «Позвонить» переводит на функцию набора номера.
  • Кнопка «Написать» переводит в переписку с пользователем.
  • Описание.

7. Мои объявления (доступ без авторизации)

Цель экрана: список опубликованных пользователем объявлений с возможностью их удалить.

Скрипт для приложения доски объявлений

Реализация: аналогично списку всех объявлений, но отфильтрованные по пользователю. Напротив каждого объявления кнопка «Удалить».

Наверху экрана ссылка на профиль, при нажатии которой пользователь переходит на экран «Редактирование профиля».

Кнопка «Настройки» — при нажатии переход на экран «Настройки».

8. Поиск

Цель экрана: найти объявление по подстроке.

Скрипт для приложения доски объявлений

Реализация: пользователь вводит строку, и происходит поиск по всем объявлениям по заголовку и текстовому описанию. Результаты выводятся аналогично списку всех объявлений.

9. Фильтр объявлений

Цель экрана: отфильтровать результаты экрана «Все объявления» по категории.

Скрипт для приложения доски объявлений

Реализация: список категорий с чекбоксами для выбора. Кнопка «Ок» сохраняет выбранные фильтры.

10. Сообщения

Цель экрана: увидеть переписки с другими пользователями.

Скрипт для приложения доски объявлений

Реализация: список переписок в формате:

  • Аватар, с кем переписка.
  • ФИО.
  • Время последнего сообщения.
  • Начало последнего сообщения.

Диалоги отображаются в хронологическом порядке.

11. Переписка с пользователем

Цель экрана: договориться о приобретении товара, описанного в объявлении.

Скрипт для приложения доски объявлений

Реализация: Персональная переписка с другим пользователем. Доступная функциональность:

  • Текстовые сообщения.
  • Отправка фото.

Кнопка «Отправить» приводит к отправке введённого сообщения.

12. Настройки

Цель экрана: показать пользователю разделы приложения.

Скрипт для приложения доски объявлений

Реализация: список ссылок на вложенные разделы:

  • Пользовательское соглашение.
  • О сервисе.

При нажатии на раздел происходит переход к экрану просмотра.

13. Пользовательское соглашение

Цель экрана: показать пользователю юридическую информацию по использованию сервиса.

Реализация: текстовая юридическая информация с правилами использования.

14. О сервисе

Цель экрана: показать пользователю общее описание работы сервиса.

Реализация: текстовая информация о работе приложения.

Какие сделали выводы

Однозначно доска доске рознь. Сейчас у нас в работе проекты досок объявлений о продаже животных, городские аналоги Avito, доска перепродажи подержанных запчастей. У всех этих проектов разные функциональные требования.

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

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

1616
48 комментариев

А зачем это всё, простите?

6
Ответить

Есть огромное количество "стартаперов", которые думают, что могут запустить аналоги авито или юду. Такая категория людей, для которых стартап это синоним слова маркетплейс. Так вот этих людей реально очень много. Эта компания давно просекла эту фишку и сначала сделала маркетплейс, теперь вот доску объявлений, и продают их таким вот "стартаперам". На мой взгляд это прям гениально, один раз накодил, дальше продаешь пачками дурачкам. Ребята нащупали место где клад зарыт и грамотно снимают сливки, так что их вряд ли можно упрекнуть в чем-то. А то что люди не понимают, что запустить проект подобного типа в рамках отдельного города без вливания миллионов в маркетинг нереально, при живых авито и юле, это как бы их проблема. Лох не мамонт - не вымрет.

P.S. Если я не прав, буду очень рад, если представители компании покажут из десятков или даже сотен "стартапов" которым они продали свои программки хотя бы один выстреливший, или хотя бы 3, которые смогли хотя бы просто отбить деньги, заплаченные за программу.

15
Ответить

Судя по комментариям автора, они штампуют "маркетплейсы" примерно втрое дешевле, чем предлагают другие студии. А что по метрикам у этих самых маркетплейсов клиентов?
Кто-нибудь окупил затраченные средства? MVP марткетплейса кажется безперспективным.

P.S. Так и не понял где киллер фича у проекта Transopt, о котором в комментариях упомянул автор?

6
Ответить
Комментарий удалён модератором

киллер фича в гибкой настройке под поиск запчасти КПП по техническим критериям, которую никогда не сделает Авито (не по техническим, а экономическим соображениям). Получается, что мастер, продающий, к примеру, ремкомплект на 722.1 может продавать и здесь и на Авито, но здесь шанс продать выше, т.к. про проект знает профессиональное сообщество, а удобный фильтр позволяет найти необходимое быстрее Авито, где поиск идёт только по заголовку.

Ответить

Столько вопросов к автору, а казалось бы с чего бы? Увидели нишу, создали продукт. Те кто его покупают не слепые котята, порог входа более менее позволяет отсеять школоту. Если не взлетает, то это явно не вина команды продукта. О чем критика? Категории несравнимые, конечно, но запуск рекламной кампании в Гугл и Яндекс, ещё не гарантирует феерический результат. Мне кажется норм продукт. мне показался он гибкий, да и расширить функциональность можно по запросу, я так понимаю

3
Ответить

Да, как раз ставка на гибкость и расширяемость. В чистом виде запускается процентов 20 клиентов, а остальные берут ядро, как основу и заказывают нужный кастомный функционал под себя.

Ответить