В современном мире мобильная коммуникация — всё. Нас окружают приложения для аудио и видеозвонков, митингов и трансляций. В условиях пандемии не только бизнес-встречи перенеслись из переговорных комнат в приложения для звонков. Звонки родным, концерты и даже консультации с врачами — теперь всё доступно в приложениях.

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

Уведомление о входящем звонке

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

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

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

Однако для Android-устройств можно пойти ещё дальше и показать полноэкранное уведомление с вашим дизайном, даже если экран заблокирован!

Уведомление, не позволяющее закрыть процесс

Звонок может затянуться, и пользователь решит параллельно заняться своими делами. Он откроет другое приложение, например, текстовый документ. И тут нас ждёт неприятный сюрприз — если системе не хватит ресурсов на отображение этого приложения, она может без суда и следствия просто закрыть наше! Соответственно, звонок оборвётся, оставив пользователя в недоумении.

К счастью,есть возможность избежать этого, используя механизм Foreground Service. Мы помечаем наше приложение, как активно используемое пользователем, даже если оно свёрнуто. Тогда приложение будет закрыто только в самом крайнем случае, если системе не хватит ресурсов даже на себя.

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

По сути это обычное уведомление, с одним отличием — его невозможно отменить. Можно не бояться, что пользователь его нечаянно смахнёт и приложение снова останется беззащитным перед всеоптимизирующей системой.

Можно ограничиться совсем небольшим уведомлением:

Оно появляется незаметно — без звука и сразу в панели уведомлений, не “выскакивая” на пользователя, как, например, уведомление о входящем вызове.

Тем не менее, это всё равно уведомление, и к нему применимы все приёмы, описанные в предыдущем пункте — в него можно добавлять кнопки и кастомизировать дизайн

Picture-in-picture для видеозвонков

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

Если ваше приложение имеет функцию видеозвонков, то для удобства пользователя можно показать небольшое окно видеозвонка (picture-in-picture), даже если он уходит на другие экраны приложения. А, начиная с версии Android 8.0, мы можем показывать такое окошко не только в нашем приложении, но и поверх других приложений системы!

Также в это окно можно добавить элементы управления, например, кнопки переключения камеры или паузы.

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

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

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

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

Ссылка для быстрого подключения к конференции или звонку (deeplink)

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

Что же, это ненадолго. Можно сгенерировать специальную ссылку, которая перенесёт тех, у кого уже есть приложение, прямо в тот звонок, в который их пригласили, а тех, у кого приложение не установлено — в магазин приложений их платформы. Владельцы iPhone отправятся в App Store, а пользователи Android — в Google Play.

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

Итог

Мы рассмотрели основные возможности системы, которые позволяют нам улучшить пользовательский опыт при использовании наших аудио / видео приложений, начиная с защиты нашего приложения от закрытия системой прямо во время звонка, и заканчивая UX-удобствами вроде режима picture-in-picture.

Конечно же, каждое приложение уникально, со своими задачами и нюансами, поэтому эти советы — не чёткий свод правил. Тем не менее, если что-то из этого списка кажется уместным в конкретном приложении, то это стоит реализовать.

  • Разработка