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

Как мы делаем App Clips?

Время на прочтение 4 мин
Количество просмотров 7.8K
App Clips — это облегченные версии приложения для iOS 14, которые позволяют людям быстро выполнять определенную задачу, не скачивая и не устанавливая его полную версию из App Store. Компания Apple анонсировала такие мини-приложения на всемирной конференции для разработчиков WWDC 2020. Мы в Rambler Group одними из первых попробовали App Clips для приложений «Рамблер/кассы».



Как работают App Clips


App Clip — это часть полного приложения (по правилам Apple App Clips не могут превышать 10 МБ), заточенная на выполнение определенной задачи. Например, заказ еды, покупка билета, бронирование гостиницы и т.д. При этом App Clips не надо устанавливать — достаточно просто запустить по ссылке.

Мини-приложения не сохраняются на домашних экранах смартфона или планшета iOS, а размещаются в «Библиотеке приложений». Через 30 дней с момента последнего запуска они автоматически удаляются с устройства. Для удобства пользователей в App Clips есть возможность добавить поддержку Apple Pay и вход через Apple ID для быстрой авторизации и оплаты услуг и товаров — без регистрации, ввода дополнительной информации и номера банковской карты.



Также Apple сделала множество вариантов запуска App Clips как в офлайне, так и в онлайне:

  • фирменная метка App Clips
  • NFC-метка
  • QR-код
  • URL-ссылка
  • баннер
  • Apple Maps
  • Siri.



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

Краткое руководство по добавлению App Clips в «Рамблер/кассу»


В этой статье мы хотим рассказать о некоторых нюансах создания App Clips для приложений «Рамблер/кассы».

Для интеграции мини-приложения на данный момент у нас выработан алгоритм:

  1. Необходимо добавить target AppClip в проект, при этом указав целевой проект родительским (в нашем случае target Kassa).
  2. Добавить при необходимости нужные pod'ы, указав их для конкретного target в Podfile (выполнить pod install).
  3. В настройках таргета App Clips нужно перейти на вкладку Signing & Capabilities и в секции Associated Domains добавить домен вида appclips:{домен ссылки, которая будет открывать App Clips}. В случае «Рамблер/кассы» это appclips:kassa.rambler.ru и appclips:m.kassa.rambler.ru.
  4. Указать версию и билд для target с App Clips, которые идентичны версии и билду родительского таргета.
  5. Обработать входящие url для App Clips и реализовать навигацию для App Clips в методе, согласно документации Apple

    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void -> Bool.
  6. Собрать архив с приложением (оно должно автоматически включать App Clips) и отправить его в AppStore.
  7. Вы великолепны!

Ссылки и открытие экранов


После того как пользователь нажимает «Открыть AppClip/Приложение» на всплывающем экране с App Clips, срабатывает метод:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool

В userActivity.webpageURL лежит URL-ссылка, которую мы зашивали в качестве ссылки для App Clips.

После этого на основе параметров из этой ссылки откроется нужный экран приложения.

Виды ссылок


В данный момент App Clips «Рамблер/кассы» поддерживает три сценария покупки билетов:

  • открытие экрана деталей конкретного мероприятия;
  • открытие экрана деталей конкретного места;
  • открытие экрана конкретного сеанса для конкретного мероприятия.

Для тестирования мы взяли рабочие ссылки на ивенты, доступные на «Рамблер/кассе» с различными параметрами.

1. Мероприятие. В качестве вводных параметров взяли creationid, cityid, creationtype:
m.kassa.rambler.ru/msk/movie/100547?creationid=100547&cityid=2&creationtype=movie

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

  • на экране с деталями мероприятия отсутствует кнопка добавления в избранное;
  • отсутствует отображение видео на деталях мероприятия.

2. Место. В качестве вводных параметров взяли placeid, cityid, creationtype:
m.kassa.rambler.ru/msk/cinema/formula-kino-cdm-54351?placeid=97417&cityid=2&creationtype=movie

Ссылка открывает экран деталей места, окружение идентично покупке билета в полноценном приложении, за исключением:

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


3. Ссылка на конкретный сеанс. В качестве вводных параметров взяли sessionid:
m.kassa.rambler.ru/msk/concert/717293?cityid=2&sessionid=54293235

Ссылка открывает экран с конкретным сеансом (в виде таблицы или схемы зала), окружение идентично покупке билета в полноценном приложении.







Проблемы и решения


1. App Сlip запускается и падает

Проблема наблюдается при использовании сторонних pod'ов. При сборке продукта не копируются библиотеки в конечную директорию. Причина — отсутствие скрипта в Build Phases.

Для решения этой проблемы необходимо добавить скрипт (назовем его [CP] Embed Pods Frameworks):

${PODS_ROOT}/Target Support Files/Pods-{здесь имя таргета с апклипсом}/Pods-{здесь имя таргета с апклипсом}-frameworks.sh

В случае «Рамблер/кассы» скрипт выглядит так:
${PODS_ROOT}/Target Support Files/Pods-KassaAppClip/Pods-KassaAppClip-frameworks.sh

2. Сборка с App Clips собирается, архивируется и отправляется в AppStore, но приходит reject из-за веса приложения

В основном причиной этой проблемы являются какие-то большие ресурсы и сторонние библиотеки.

Одним из решений, позволяющим уменьшить размер библиотеки в целевом архиве, является включение Bitcode (Build Settings/Build Options/Enable Bitcode).

3. В App Clips метод UIDevice.current.identifierForVendor возвращает 000000-0000-000000.....

Это связано с особенностью App Clips: Apple ограничила доступ к идентификатору из соображений безопасности. В App Clips «Рамблер/кассы» мы используем рандомно сгенерированную 32-значную соль.

Что в итоге?


App Clips — хороший способ повышения конверсии для таких e-com-приложений, как «Рамблер/касса». В плюсе остаются все:

  • пользователи могут быстро купить билет, не скачивая и не устанавливая основное приложение;
  • разработчикам приятно быстро реализовать возможность, которая позволит быть зафичеренными или засветиться на лендинге с презентацией новой iOS 14:

Теги:
Хабы:
+10
Комментарии 4
Комментарии Комментарии 4

Публикации

Информация

Сайт
rambler-co.ru
Дата регистрации
Численность
1 001–5 000 человек
Местоположение
Россия