[Разработка под iOS] Как мы делаем App Clips?
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
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
===========
Похожие новости:
- [Программирование, Разработка под iOS, Разработка мобильных приложений, Разработка под Android] Кошелёк Mobile Challenge: итоги конкурса и подробный разбор решений командой разработки
- [Firefox, Разработка под MacOS, Разработка для Office 365, Софт] На Apple M1 заработали Firefox и Microsoft Office в нативном коде
- [Программирование, Разработка мобильных приложений, Dart, Flutter] Flutter под капотом: Owners
- [Платежные системы, Беспроводные технологии] Россия заняла второе место в мире по числу пользователей Apple Pay
- [Законодательство в IT] Евросоюз разработал законопроект о работе крупных онлайн-платформ, техногигантам грозят штрафы в 6% годового оборота
- [Разработка под iOS, Swift, Тестирование мобильных приложений] Погружение в автотестирование на iOS. Часть 1. Как работать с accessibilityidentifier объектов
- [Законодательство в IT, Копирайт] Суд РФ впервые потребовал от Google Play заблокировать пиратское музыкальное приложение
- [Программирование, Работа с 3D-графикой, Компьютерное железо, Видеокарты, Настольные компьютеры] OpenGL на Apple M1
- [Разработка под iOS, Разработка мобильных приложений, Swift] Чаты на вебсокетах в iOS, если у вас WAMP
- [Разработка мобильных приложений, Дизайн мобильных приложений, Дизайн] Как мы делаем страховое приложение для людей
Теги для поиска: #_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
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
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 используют такую же кодовую базу, что и основное приложение, а по своему формату больше похожи на плагин или контейнер. Краткое руководство по добавлению App Clips в «Рамблер/кассу» В этой статье мы хотим рассказать о некоторых нюансах создания App Clips для приложений «Рамблер/кассы». Для интеграции мини-приложения на данный момент у нас выработан алгоритм:
Ссылки и открытие экранов После того как пользователь нажимает «Открыть 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-приложений, как «Рамблер/касса». В плюсе остаются все:
=========== Источник: habr.com =========== Похожие новости:
Блог компании Rambler Group ), #_razrabotka_pod_ios ( Разработка под iOS ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 18:31
Часовой пояс: UTC + 5