Сети, Мобильные приложения | Виталий Лажинцев, Сергей Кондратенко, Олег Брагинский
Основатель «Школы траблшутеров» Олег Брагинский со слушателями школы Виталием Лажинцевым и Сергеем Кондратенко рассказывают о разработке мобильного приложения для знакомства атлетов по видам спорта, формирования временных и постоянных команд.
Сколько раз, собираясь на пробежку, не находили подходящей компании? На языке вертится число от единицы до бесконечности. Наверняка было грустно, но сейчас мы наконец расскажем о проекте, которым решили проблему, взяв в качестве прототипа софт для организации знакомств.
Анкета пользователя в нашем исполнении изначально представлена в свёрнутом виде, как краткая сводка. При пролистывании вниз разворачивается детальная информация о спортсмене с разделами:
- Обо мне.
- Главное про меня.
- Языки.
- Фотографии.
- Мое любимое качество в людях.
- Я надеюсь, что ты…
- Недалеко от вас.
- Настройка.
Далее доступны два смахивания: вправо – лайк и влево – пропустить:
Надпись «You’re the team» появляется, если отбор взаимен. Обоюдные симпатии попадают в раздел «Ты им нравишься». Если по истечении 24 часов, пользователи не начали диалог, выбор пропадает из раздела. Если завязалась беседа, общение переходит в раздел «Чаты».
Создаётся ощущение среды единомышленников, где формируете команду или ищите партнёра, ориентируясь на схожесть интересов, и можете быть уверенным, что найдёте компанию по душе. Приложение позволяет изучить профиль человека, поставить реакцию и ждать взаимности.
При заполнении профиля встретите детальные вопросы и поля для обязательного заполнения: необходимы, чтобы информация ёмко отображала человека, разместившего её:
Одни значения придётся выбирать, другие – параметризовать по шкалам:
После того, как контакт появится в списке друзей, вы всё равно сможете удалить или заблокировать человека, если на то будет причина:
Приложение не ограничивается полом, расой, национальностью: можете начать диалог с девушкой или парнем. Беседовать на двоих или привлечь к обсуждению команду в зависимости от вида чата:
- В командном режиме может общаться множество атлетов без отправки видео/фото материалов. Размер сообщения ограничен тысячей символов:
- Диалог предусматривает двух собеседников. Сообщения без мультимедиа до 1’000 знаков.
- Чат организатора служит для оповещения пользователей текстами до 1’500 символов. Работает как канал в Telegram без обратной связи. Фото и видео контент не предусмотрены.
Остановимся на технических требованиях проекта. Первым делом определили для каких платформ будет вестись разработка. После чего прописали пожелания к мобильному приложению. В нашем случае заказчик просил начать адаптацию экранов нижними значениями без ограничения вверх:
- iOS – 1136х640
- Android – 1280x720.
Клиент обозначил, что адаптация для планшетов не нужна. Важный критерий, уточняйте заранее! Занялись серверной частью, передав заказчику информацию о требованиях к мощностям, которые необходимо арендовать для поддержки разрабатываемой системы.
В нашем случае сервер был представлен СУБД, программными средствами и технологиями, обеспечивающими хранение и обработку данных для среды UNIX-систем. Предусмотрели развёртывание в облачном сервисе.
Сформировали требования к панели администрирования для размещения контента пользователями. В данном проекте реализовали в виде web-приложения на vue.js с работоспособностью на последних версиях браузеров Chrome, Firefox, Edge, Safari, Opera.
Панель администрирования отображает список пользователей с полями: ID, номер телефона, электронная почта, страна, город, дата регистрации, тип аккаунта, статус аккаунта, активность:
Страницу «Уникальное событие» сформировали таким образом:
Возможны события по объединённому признаку, например, по желанию совершить вечернюю пробежку или сыграть матч в мини-футбол.
Задумались о производительности и надёжности, заложив требования к системе:
- Без завершений вследствие активности сервисов операционной системы, изменения режима энергопотребления, уровня заряда батареи, подключения или отключения от сети.
- Ежесуточное автоматическое резервное копирование.
- Индикация нагруженных вызовов.
- Без блокирования интерфейса пользователя при длительном выполнении других функций системы.
- Событийная-ориентированность: нет ожидания изменения состояния и наступления событий.
В целях обеспечения безопасности системы рекомендовали избегать следующих проблем:
- Использование асимметричного алгоритма с приватным ключом известным серверу.
- Хранение КВД в коде (пароля администратора в открытом виде в исходном коде).
- Использовать в архитектуре приложения пользовательские коды.
- Использование самописных алгоритмов шифрования и защиты.
- Хранение КВД в защищённых хранилищах, но в открытом виде.
- Применение алгоритмов с хранением приватного ключа.
- Использование незащищённых локальных хранилищ.
- Передача КВД во внешнюю среду в открытом виде.
- Не ограничивать количество попыток ввода.
При первичном скачивании и регистрации пользователю предлагается три варианта создания учётной записи:
- Через Facebook, потребуется доступ к email, name, second name, gender, birthday, id.
- По номеру мобильного телефона.
- Через Apple Id.
Стартовые экраны выглядят следующим образом:
Для отправки сообщений используем https://smsaero.ru с предустановленным тарифным планом:
Вот такое у нас получилось приложение для знакомства атлетов с выдерженной надежностью, которое уже доступно в одной из версий системы – Android.