Triplook — новое сервисное приложение в сфере туризма и знакомств, содержащее элементы социальной сети. Цель сервиса — помочь пользователям быстро найти подходящего попутчика для совместных длительных путешествий или кратковременного отдыха во время отпуска.
Stfalcon.com разработала дизайн и мобильное приложение под платформы iOS и Android. Серверная часть приложения была реализована со стороны команды клиента в виде удобного и хорошо документированного REST-API.
Для мгновенных сообщений и realtime-событий мы написали собственный сервис, который занимается обработкой ивентов от publisher. В нашем случае это основное приложение, которое отправляет на сервер информацию о новом событии (например, сообщение о новом попутчике).
Сервис для работы с realtime отправляет этот ивент на клиент:
- если пользователь онлайн — по сокетам;
- если пользователь офлайн — он получит push-уведомление или email.
Преимущество данного решения — в его простоте и независимости от языка программирования или фреймворка: сообщения между сервисами передаются по AMQP-протоколу. От сервера на клиент сообщения передаются по WebSocket protocol (RFC 6455).
Прототипирование
Дизайн мобильных интерфейсов в большинстве случаев начинается с прототипа. Triplook не стал исключением, и в первую очередь мы спроектировали навигацию. Основное предназначение приложения — поиск попутчиков, поэтому в прототипе мы сделали акцент на форме запроса, выдаче результатов и взаимодействии между пользователями.
Наличие прототипа существенно упрощает оценку дальнейшей разработки дизайна и программной части, так как помогает яснее понять функциональные возможности будущего приложения.
Поиск попутчиков
В мобильном приложении Triplook поиск попутчиков содержит 3 обязательных поля: город отправления, город назначения и временной период. Для удобства мы определяем город отправления из профиля пользователя, а временной период по умолчанию — календарный месяц от сегодняшней даты. Таким образом, мы готовы показывать результаты поиска, как только пользователь выберет, куда он хочет поехать. Дополнительно присутствует возможность указать желаемый пол и возраст попутчика.
Результаты поиска
По поисковому запросу мы получаем список путешествий, отвечающих заданным параметрам. В списке результатов выводим фотографии потенциальных попутчиков. Приглашение в путешествие можно отправить как со страницы результатов поиска, так и со страницы самого путешествия.
Дизайн и разработка интерактива
Чтобы сделать приложение более живым, мы предложили идею небольшой анимации при взаимодействии пользователя с интерфейсом. Это поведение было задумано таким образом, что его можно повторять в разных разделах приложения.
Так как предложенные анимации были в стиле Material Design, Android разработчикам удалось реализовать их с помощью стандартных компонентов: CoordinatorLayout, CollapsingToolbarLayout. Анимации переходов между экранами реализована с помощью Transitions Framework.
Путеводитель
Сервис Triplook располагает большой базой курортов, и поиск по ним — важная часть функционала. Пользователь может просматривать курорты по странам и рейтингу, а также получать подробную информацию о них, от необходимых документов до описания достопримечательностей, климата и местной кухни. Не покидая экран курорта, можно искать попутчиков, которые собираются посетить это место, или добавить курорт в список избранных.
Личные сообщения
Для полноценной социальной составляющей было принято решение реализовать личные сообщения такими, какими пользователи привыкли их видеть в популярных приложениях. Для мгновенной передачи сообщений был использован протокол WebSocket. Все события, которые происходят в реальном времени, поступают в приложение по WebSocket соединению, когда пользователь находится онлайн. Если же пользователь свернул приложение или потушил экран, приложение закрывает WebSocket соединение и далее получает все обновления с помощью push уведомлений.