[Разработка под iOS] Как мы делаем App Clips?

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
18-Дек-2020 23:30

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 для приложений «Рамблер/кассы».
Для интеграции мини-приложения на данный момент у нас выработан алгоритм:
  • Необходимо добавить target AppClip в проект, при этом указав целевой проект родительским (в нашем случае target Kassa).
  • Добавить при необходимости нужные pod'ы, указав их для конкретного target в Podfile (выполнить pod install).
  • В настройках таргета App Clips нужно перейти на вкладку Signing & Capabilities и в секции Associated Domains добавить домен вида appclips:{домен ссылки, которая будет открывать App Clips}. В случае «Рамблер/кассы» это appclips:kassa.rambler.ru и appclips:m.kassa.rambler.ru.
  • Указать версию и билд для target с App Clips, которые идентичны версии и билду родительского таргета.
  • Обработать входящие url для App Clips и реализовать навигацию для App Clips в методе, согласно документации Apple
    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void -> Bool.
  • Собрать архив с приложением (оно должно автоматически включать App Clips) и отправить его в AppStore.
  • Вы великолепны!

Ссылки и открытие экранов
После того как пользователь нажимает «Открыть 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:


===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_razrabotka_pod_ios (Разработка под iOS), #_ios, #_mobilnye_prilozhenija (мобильные приложения), #_apple, #_app_clips, #_blog_kompanii_rambler_group (
Блог компании Rambler Group
)
, #_razrabotka_pod_ios (
Разработка под iOS
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 25-Ноя 18:31
Часовой пояс: UTC + 5