КАК МЫ РАЗРАБОТАЛИ ТИНДЕР ДЛЯ СПОРТСМЕНОВ? — ШКОЛА ТРАБЛШУТЕРОВ

Материал опубликован на сайте Школы трабшутеров.

(время чтения: 6 мин. 7 сек.)

Основатель «Школы траблшутеров» Олег Брагинский со слушателями школы Виталием Лажинцевым и Сергеем Кондратенко рассказывают о разработке мобильного приложения для знакомства атлетов по видам спорта, формирования временных и постоянных команд.

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

Анкета пользователя в нашем исполнении изначально представлена в свёрнутом виде, как краткая сводка. При пролистывании вниз разворачивается детальная информация о спортсмене с разделами:

— Обо мне.
— Главное про меня.
— Языки.
— Фотографии.
— Мое любимое качество в людях.
— Я надеюсь, что ты…
— Недалеко от вас.
— Настройка.

Далее доступны два смахивания: вправо – лайк и влево – пропустить:

Надпись «You’re the team» появляется, если отбор взаимен. Обоюдные симпатии попадают в раздел «Ты им нравишься»: Если по истечению 24 часов, пользователи не начали диалог, выбор пропадает из раздела. Если завязалась беседа, общение переходит в раздел «Чаты».

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

При заполнении профиля встретите детальные вопросы и поля для обязательного заполнения – необходимо, чтобы информация ёмко отображала человека, разместившего её:

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

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

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

1. В командном режиме может общаться значительное количество атлетов без отправки видео/фото материалов. Размер сообщения ограничен тысячей символов:

2. Диалог предусматривает двух собеседников. Сообщения без мультимедиа до 1’000 знаков.

3. Чат организатора служит для оповещения пользователей текстами до 1’500 символов. Работает как канал в Telegram без обратной связи. Фото и видео контент не предусмотрены.

Остановимся на технических требованиях проекта. Первым делом определили для каких платформ будет вестись разработка. После чего прописали пожелания к мобильному приложению. В нашем случае заказчик просил начать адаптацию экранов нижними значениями без ограничения вверх:

  • iOS      – 1136х640
  • Android – 1280×720.

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

В нашем случае, сервер был представлен СУБД, программными средствами и технологиями, обеспечивающими хранение и обработку данных для среды UNIX-систем. Предусмотрели развёртывание в облачном сервисе.

Сформировали требования к панели администрирования для размещения контента пользователями. В данном проекте реализовали в виде web-приложения на vue.js с работоспособностью на последних версиях браузеров Chrome, Firefox, Edge, Safari, Opera.

Панель администрирования отображает список пользователей с полями: ID, номер телефона, электронная почта, страна, город, дата регистрации, тип аккаунта, статус аккаунта, активность:

Страницу «Уникальное событие» сформировали таким образом:

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

Задумались о производительности и надёжности, заложив требования к системе:

  1. Без завершений вследствие активности сервисов операционной системы, изменения режима энергопотребления, уровня заряда батареи, подключения или отключения от сети.
  2. Ежесуточное автоматическое резервное копирование.
  3. Индикация нагруженных вызовов.
  4. Без блокирования интерфейса пользователя при длительном выполнении других функций системы.
  5. Событийная-ориентированность: нет ожидания изменения состояния и наступления событий.

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

  1. Использование асимметричного алгоритма с приватным ключом, известным серверу.
  2. Хранение КВД в коде (пароля администратора в открытом виде в исходном коде).
  3. Использовать в архитектуре приложения пользовательские коды.
  4. Использование самописных алгоритмов шифрования и защиты.
  5. Хранение КВД в защищённых хранилищах, но в открытом виде.
  6. Применение алгоритмов с хранением приватного ключа.
  7. Использование незащищённых локальных хранилищ.
  8. Передача КВД во внешнюю среду в открытом виде.
  9. Не ограничивать количество попыток ввода.

При первичном скачивании и регистрации пользователю предлагается три варианта создания учётной записи:

  1. Через FaceBook, потребуется доступ к email, name, second name, gender, birthday, id.
  2. По номеру мобильного телефона.
  3. Через Apple Id.

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

Для отправки сообщений используем https://smsaero.ru с предустановленным тарифным планом:

Вот такое у нас получилось приложение для знакомства атлетов с выдерженной надежностью, которое уже доступно в одной из версий системы – Android.