Офтоп Денис Гордиенко
1 148

Разработка приложения для знакомств

Часто встречаются заказы на разработку мобильных приложений аналогов Tinder. В каких-то заказах - это бизнес-знакомства, в других - личные. Решил написать статью о том, как запустить первую версию такого приложения.

В закладки

Генеральный директор Bright Mobile рассказывает о формировании первой версии многопользовательского приложения.

После недавней статьи с релизом нашего нового ядра RTPlatform ко мне за неделю обратилось человек 20 с идеей в логике "заказчик - исполнитель". В том числе было обращение о создании приложения для знакомств по аналогии с Tinder. Сперва я принял его за нецелевое (какие там заказчики и исполнители?), но, поразмыслив, пришёл к выводу, что реализация возможна, причём, за достаточно небольшой бюджет.

Принципиальный функционал

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

  • Профили пользователей (анкеты)
  • Поиск по анкетам
  • Создание и управление своими объявлениями о поиске
  • Просмотр чужих объявлений с фильтрацией по категории
  • Внутренний чат для переписок
  • Настройки уведомлений по параметрам
  • Краткая справка о приложении
Видео о разработке аналога Tinder на RTPlatform

Что нужно добавить к ядру?

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

Мои объявления

Список созданных пользователем объявлений о поиске с выбором категории и описанием кого он ищет и что предлагает взамен.

Базовый вид ядра:

Что нужно доработать:

  • Создать экраны категорий поиска (ориентируюсь на 5 категорий)
  • Заполнить разные поля для каждой категории

Оценка трудозатрат: 20 часов с базовым дизайном, 41 час с индивидуальным.

Все объявления

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

Базовый вид ядра:

Что нужно доработать:

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

  • Реализация глубокого фильтра
  • Изменение вида объявлений (например, вывести фотографии в ленту)
  • Изменение полей отклика (не указывать номер и ограничиться именем)

Оценка трудозатрат: 20 часов с базовым дизайном, 41 час с индивидуальным.

Анкеты

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

Базовый вид:

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

  • Добавить глубокий фильтр по полям анкет
  • Добавить карту с гео-метками кто и где находится для поиска ближайшего
  • Изменить внешний вид анкет
  • Создать соответствующие поля в анкете (пол, возраст и т.д.)
  • Убрать функцию звонка (думаю, что это излишне в данном контексте)

Оценка трудозатрат: 32 часа с базовым дизайном, 50 часов с индивидуальным.

Подписки на уведомления

Настройка подписок на новые объявления, сообщения во внутренний мессенджер и откликов на собственные объявления. В этом разделе человек настраивает категории, по которым хочет получать push

Базовый вид:

Доработок здесь не требуется. Актуальные категории создадутся автоматически, в момент доработки "Моих объявлений".

Справка

Это обычная текстовая информация о сервисе и о том, что можно в нём делать. Изменение данных максимум 1 час

Итоговые затраты

В итоге, получились такие затраты на доработку ядра под приложение знакомств:

  • Если остаться в базовом дизайне: 72 часа
  • Если нужен индивидуальный дизайн: 230 часов (добавил время на перерисовку всех разделов, в т.ч. которые остались без изменения функционала)

Ядро написано на Ionic, поэтому трудозатраты указаны сразу на Android и iOS. Чтобы посчитать стоимость - умножайте на любимую ставку часа программиста, плюс стоимость ядра (актуальный чек на нашем сайте). Плановая нагрузка, за счёт использования Firebase, до 100 000 онлайн-пользователей (можно ориентироваться на 100 млн скачиваний).

По срокам, ко времени работы программиста, я бы добавил неделю на развёртывание ядра и публикацию в сторах. Т.е. аналог Tinder можно запустить за 3 недели.

Для обсуждения вопросов по разработке приложений приглашаю в нашу группу в WhatsApp. Ищу проекты для подобного разбора быстрого запуска первой версии.

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Денис Гордиенко", "author_type": "self", "tags": [], "comments": 15, "likes": 6, "favorites": 25, "is_advertisement": false, "subsite_label": "flood", "id": 60724, "is_wide": false, "is_ugc": true, "date": "Mon, 11 Mar 2019 07:02:11 +0300" }
{ "id": 60724, "author_id": 127886, "diff_limit": 1000, "urls": {"diff":"\/comments\/60724\/get","add":"\/comments\/60724\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/60724"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791, "last_count_and_date": null }

15 комментариев 15 комм.

Популярные

По порядку

Написать комментарий...
1

Под приложение знакомств этот список выглядит следующим образом:

Мои объявления

Что?

Ответить
0

Информация о том, кого ищет пользователь. Можно искать по анкетам, а можно написать объявление, мол "мне 32 года, ищу жену, много зарабатываю, мало пью"

Ответить
3

А электрики, курьеры и квартирные переезды на скриншотах это чтобы сразу указать, какие ролевые игры человек предпочитает?

Ответить
0

Да, добавьте предложения по играм от себя

Ответить
1

Приложение знакомств с курьерами и электриками?))

Ответить
0

очень смешно... На высококонкурентном рынке продавать подобные ит-решения....
А заказчики у вас понимают сколько десятков миллионов рублей нужно влить в маркетинг (adwords/direct) чтобы они могли что-то зарабатывать?

Ответить
0

У каждого из заказчиков есть своя маркетинговая стратегия. Печально, что из маркетинга для подобных проектов вы видите только ppc-системы.

Ответить
0

ррс - как пример, в других каналах стоимость платящего пользователя выше, иногда на порядок.

Ответить
1

Согласен с E.K., продвигаю некоторые dating проекты, бюджеты нужны большие на раскрутку, а в Facebook ads еще и одобрение самого фейсбука нужно получить на рекламу dating приложения, что оочень непросто. Вкладываться в такие приложения могут позволить себе в основном крупняки, либо сфецифичную аудиторию искать, нишевую, развивать годами...

Ответить
0

Всё клёво, и я бы даже согласился со сроками, но только при условии, что заказчик понимает - это рабочий прототип. А то потом начинается: а чо так долго грузится? а почему сразу не предусмотрели? Зачем кластер из серверов? Какой ещё балансировщик нагрузки? И т.д. и т.п.

Ответить
0

Про долго я поспорил бы, т.к. специально сделали архитектуру, как систему реального времени.

Ответить
0

как уже правильно заметили, дьявол кроется в деталях. что-то сырое можно слепить быстро, но потом начнётся реальная работа и косты вырастут в десятки раз. в статье акцент на клиентскую часть, а ведь "мозг" системы на бэкенде. мы пилим дейтинг уже 10 лет, из них 2 года нативные мобильные приложения и работа не останавливается ни на минуту, тут рассказал https://vc.ru/tribuna/60655-rusdate-prilozhenie-kotoroe-pozvolyaet-znakomitsya-takzhe-v-klubah-i-barah

Ответить
0

Во сколько оцениваете общую сумму потреченную на разработку сайта и нативных приложений?

Ответить
0

даже боюсь сказать, неприлично много)

Ответить
0

А какие концептуальные блоки заняли больше всего времени? Интересно было бы оценить т&м на нашем ядре. Принципиально мы выстраиваем бекенд, как работу по realtime обмену сообщениями. Например, мессенджер - стандартный обмен сообщениями двух пользователей, отклик на объявление - сообщение по жёсткой форме, лайк - системное сообщение в формате "+1" к объекту фотографии и т.д.

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления
{ "page_type": "default" }