Как стать автором
Обновить

Почему я не могу найти Яндекс.Такси через системный поиск на iPhone?

Время на прочтение2 мин
Количество просмотров27K

Привет, Хабр!

В последнее время Яндекс изо всех сил пытается испортить свои мобильные приложения, превращая их в «суперапп», будь это слово неладно. И одно из двух приложений компании, для которых такое направление развития наиболее заметно — это такси.

Не так давно его переименовали в «Яндекс Go», допихнув заодно внутрь Еду, Лавку, общественный транспорт, кучу рекламы. И здесь-то я вероломно, без объявления войны наткнулся на проблему, которая в конечном счёте послужила идеей для написания сией микростатьи.

У меня на iPhone довольно много разных приложений, и я привык запускать те, что не размещены на первой же странице, через системный поиск Spotlight — тот, что на домашнем экране iOS. Беда в том, что с упомянутым переименованием Яндексовского приложения из его названия исчезло собственно главное ключевое слово — «такси». Найти «Яндекс Go» по нему теперь стало невозможно. Затрудняюсь предположить, насколько от этого могли пострадать статистика запусков или доходы приложения, но как минимум UX точно оказался в проигрыше, причём довольно глупом. К слову, точно так же вы не сможете найти такси «Maxim» по ключевому слову «максим», а Delivery Club не ищется по запросу «еда».

В то же время быстрый анализ проблемы показывает, что приложение «VK» нормально обнаруживается по запросу «вконтакте», iOS предлагает запустить «Инвестиции» при вводе «тинькофф», а Okko весьма уместно всплывает для ключевых слов «кино», «око» и даже «иви». Как же этого удалось добиться? На самом деле, очень просто...

Ключевые слова для Spotlight легко добавляются, если вы уже поддерживаете Handoff, то есть бесшовное переключение юзера между разными своими Apple-устройствами, или Siri Shortcuts. Достаточно лишь проставить свойство keywords для объекта NSUserActivity, с которым вы и так работаете.

let activity = NSUserActivity(activityType: typeID)
activity.keywords = ["слово", "или даже ключевая фраза"]

Если же с Handoff и Siri вам по каким-то причинам не по пути либо хочется поддержать Spotlight на более серьёзном уровне, используйте CoreSpotlight.

import CoreSpotlight

let attributes = CSSearchableItemAttributeSet(contentType: .application)

attributes.title = "Заказать пиццу"
attributes.contentDescription = "Доставим в течение получаса"

attributes.thumbnailData = image.pngData()
attributes.keywords = ["еда", "закуски", "кушать"]

let searchableItem = CSSearchableItem(uniqueIdentifier: "pizza", domainIdentifier: "readyMeal", attributeSet: attributes)
CSSearchableIndex.default().indexSearchableItems([searchableItem]) { _ -> Void in }

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

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

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

Спасибо за внимание!

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вам нравится, что все кинулись делать супераппы?
4.62% Это крутая тенденция35
79.26% Меня бесит эта тенденция600
16.12% Затрудняюсь ответить122
Проголосовали 757 пользователей. Воздержались 68 пользователей.
Теги:
Хабы:
Всего голосов 34: ↑30 и ↓4+40
Комментарии97

Публикации

Истории

Работа

Swift разработчик
43 вакансии
iOS разработчик
25 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн