Сложность В Очевидном: Как Мы Делали Интерфейс Звонков В Яндекс.шелле



Сложность в очевидном: как мы делали интерфейс звонков в Яндекс.
</p><p>
Шелле

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

Shell .

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

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

Короткое и понятное английское слово «звонилка» еще не обрело благозвучного, неназойливого русского эквивалента.

Если вы заглянете в словарь, то в качестве перевода вам предложат отупляющее «звонилка».

Однако слова «звонилка», «звонилка» и «звонилка» прижились в живом языке.

В рамках нашей внутренней кухни мы привыкли использовать последний вариант, и в этом посте остановимся на нем.

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

Существовавшие в то время в айфонах и андроидах родные и сторонние звонилки были очень убедительными и красивыми.

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

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

магазин.

Нашим преимуществом в достижении поставленной цели было то, что в отличие от аналогов Яндекс.

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

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

Но обо всем по порядку.



Бесконечная адресная книга

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

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

Сформулированная задача предполагает полное переосмысление стереотипа поведения пользователя.

До сих пор вызов нужной организации подразумевал целый комплекс последовательных действий.

Давайте посмотрим на небольшой пример.

Если мне нужно позвонить в ближайшую аптеку, какие действия мне нужно предпринять? Возможны различные варианты, но очевидно, что они так или иначе будут включать в себя: — позиционирование (для начала, где я?); — поиск аптек в заданном районе; - выбор аптеки; — поиск ее контактной информации; — копирование или перенос номера телефона вручную; - собственно звонок.

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

Здесь нам на помощь приходит базовый поиск (как мобильный, так и десктопный), карты, навигатор и многое другое.

Проблема в том, что для всех этих сервисов все, что связано с совершением звонка, является в лучшем случае второстепенной функцией.

И из-за этого путь от необходимости позвонить в аптеку до фактического звонка оказывается достаточно долгим и тернистым.

Вот если бы номер телефона аптеки имел такой же уровень доступности, как любой номер в нашей адресной книге.

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

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

При вводе пользователем имени или должности помимо собственных контактов ему теперь предоставляются предложения, удовлетворяющие критериям поиска, на основе самых популярных запросов пользователей Яндекса.

Эти советы предоставляются мгновенно, поскольку они уже загружены в телефон.

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

Справочника с учетом его текущего местоположения.

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

Карта обычно максимально информативна: с номером телефона, адресом, расположением на карте и сайтом.

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

Весь путь от идеи до звонка сводится, по сути, к одному моменту – выбору конкретной аптеки.

И все, что может сделать машина, пусть это делает машина.

Вернемся к нашему примеру с аптекой и посмотрим, как теперь пойдет этот путь.

1. Заходим к дилеру, вкладка «Контакты».

2. Начинаем вводить слово «аптека».

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



Сложность в очевидном: как мы делали интерфейс звонков в Яндекс.
</p><p>
Шелле

3. Выберите нужную подсказку.

Мы попадаем в список подходящих нам аптек, отсортированный по удаленности от нашего местонахождения.



Сложность в очевидном: как мы делали интерфейс звонков в Яндекс.
</p><p>
Шелле

4. Звоним.

Или мы не звоним.

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



Сложность в очевидном: как мы делали интерфейс звонков в Яндекс.
</p><p>
Шелле

Подключение к дилеру такой мощной базы данных, как Яндекс.

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

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

Не в виджет поиска, не в браузер, не на карты, а напрямую к дилеру.

Это так естественно.



Идентификация неизвестных номеров

Аппетит приходит во время еды.

И эта возможность – определение неизвестных номеров – тесно связана с предыдущей.

Осознав преимущества интеграции адресной книги с Яндекс.

Справочником, нам захотелось большего, и в первую очередь автоматического определения личности неизвестного номера во время звонка.

Востребованность этой функции среди пользователей сложно переоценить.

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

Однако в данном случае мы сталкиваемся с неразрешимой проблемой.

Без встраивания нашей оболочки в систему мы не имеем возможности заменить или внести какие-либо изменения в стандартное окно входящего звонка.

У некоторых дилеров эта проблема решается (вернее, обходится) с помощью собственного окна входящего звонка, плавающего поверх стандартного.

Однако это очень ненадежный подход и вреден для стабильности.

А стабильность для нас – это фактор, которым мы не могли бы пожертвовать ни при каких обстоятельствах.

Поэтому пришлось на время отказаться от идеи загрузки данных о звонящем из Справочника.

Но ничто не мешало нам реализовать ту же идею — определение неизвестных номеров — но в журнале звонков.

У дилера есть собственный журнал звонков.

Помимо стандартных функций (объединение звонков, продолжительность и т. д.), мы добавили в него идентификацию номера.

Если номер неизвестен, но найден в Яндекс.

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



Сложность в очевидном: как мы делали интерфейс звонков в Яндекс.
</p><p>
Шелле

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



Логотипы мобильных операторов

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

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

Или, скажем, у вашего друга есть два номера от разных операторов, и он попросил звонить ему исключительно на Мегафон.

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

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



Сложность в очевидном: как мы делали интерфейс звонков в Яндекс.
</p><p>
Шелле



Транслитерированный поиск

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

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

Сегодня эта проблема усугубляется рядом других факторов.

К сожалению, то, в каком виде контакты существуют в наших адресных книгах, не всегда зависит только от нас.

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

Некоторые контакты были добавлены вчера, другие сохранены с тех славных времен начала века, когда мы купили свою первую Nokia 3310. Не каждый пользователь берет на себя труд объединить контакты из разных аккаунтов.

Не каждый может с уверенностью сказать, написан ли тот или иной из их контактов кириллицей или латиницей.

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

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



Сложность в очевидном: как мы делали интерфейс звонков в Яндекс.
</p><p>
Шелле



Поиск по именам домашних животных

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

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

Мы научили дилера искать контакты обоими способами.

По просьбе [Вани] он найдет всех Ивановых; по просьбе [Екатерины] он найдет всех Катей.

Скриншот лучше всего проиллюстрирует, как работает поиск.



Сложность в очевидном: как мы делали интерфейс звонков в Яндекс.
</p><p>
Шелле

Как уже понял пытливый читатель, объединив две последние возможности, мы получим, что запрос [Вова] найдет всех Владимиров, что и следует доказать.

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

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

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

Теги: #интерфейсы #Яндекс #Yandex.shell #dailer

Вместе с данным постом часто просматривают: