NestBuddy

социальная сеть для людей в возрасте 65+

О проекте

NestBuddy — социальная сеть для людей в возрасте 65+, проживающих на западном побережье США, которая позволяет находить друзей для совместного времяпрепровождения. Основной функционал приложения — мгновенный обмен сообщениями между несколькими пользователями.

Задача

Доработать имеющееся приложение с минимальной функциональностью. Релиз продукта требовал ряда доработок: усовершенствовать существующий код и добавить функционал по поддержке, обмену и воспроизведению видео, реализовать два типа push-уведомлений и предпросмотр ссылок.

Трудности
Бекенд-логика приложения осуществлялась с помощью облачного сервиса Google Firebase, возможности которого существенно ограничены. Тем не менее, заказчик отказался рассматривать разработку отдельного сервера. Помимо этого, нашей команде пришлось работать с унаследованным кодом без документации, поэтому часть времени уходила на изучение структуры и устранение багов. Также клиент настаивал на том, чтобы проект был написан на SWIFT 3, и не хотел обновляться до более актуальной версии.

Решение

Добавили в приложение поддержку видео

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

Добавили анимированный прелоадер, который отображает статус загрузки, при этом пользователь видит превью со стоп-кадром из загружаемого видео.

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

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

Добавили поддержку push-уведомлений

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

Обычные сообщения отображаются в формате стандартных Push-уведомлений.

«Наклейка» на иконке приложения отображает общее количество непрочитанных сообщений.

Предпросмотр ссылок

При отправке url-ссылки приложение собирает данные о содержании страницы, заголовок, изображение, первые строки текста и отображает их сразу в сообщении. Таким образом пользователь может понять, что содержится на сайте, не переходя при этом по ссылке.

Результат

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