Хакатон и аппклип
Каждый год Додо Пицца усиленно готовится к Новому Году: в конце декабря пиковые нагрузки на всю сеть, все IT должно работать гладко. Крайней мерой является кодфриз: с середины декабря нельзя релизить (и как следствие, писать) код для продакшена.
Это отличное время заняться другими делами: профилированием, пайплайном, планированием, ретро. В конце декабря мы провели мобильный хакатон: 4 команды взяли разные фичи которые не попадали в продуктовый беклог и посмотрели как там что работает:
- Баблы для статуса заказа на андроиде.
- Темная тема
- AR для выбора размера пиццы
- App Clip
Мы потратили пару рабочих дней, записали финальную презентацию:
AppClips
Я был в команде аппклипа, расскажу про него подробней.
Начнем с проблемы. Когда приложение только стартует и работает с одной пиццерией, то все просто: приходи в пиццерию, скачивай приложение, меню покажется сразу для нужной пиццерии. Вы растете, вот у вас десять пиццерий в городе, уже надо выбирать одну из них. Потом открываетесь в соседних городах, нужен выбор города. Ну и в конце вы становитесь мировой франшизой, приходится выбирать еще и страну.
В итоге, чтобы увидеть меню и продукт пользователю уже нужно сделать пяток действий чтобы просто рассказать телефону где он. Даже если сделать геолокацию, то надо давать разрешение на ее использование, пользователь это может запретить и в итоге все равно сценарий выбора слишком сложный.
Текущая страна, город и пиццерий это контекст пользователя. Если он заказывает в пиццерии, то он глубоко в этом контексте, приходиться рассказывать глупому приложению где ты находишься.
Это не все. Еще в процессе заказа надо регистрироваться, как-то оплачивать, а в конце сообщать о том, что заказ готов, например, через пуш. Все шаги не самые простые, надо что-то вводить и давать разрешение (на пуши, например).
Если зарисовать шаги до заказа, то получится примерно так:
Аппклип решает и передачу контекста в приложение и упрощает регистрацию (Sign in with Apple), оплату (Apple Pay), пуши (.ephemeral пермишен). Красной линией я отметил где начинается то, зачем пользователь пришел. Оцените разницу!
Аппклип стартует с QR-кода, а он содержит в себе ссылку, в нее можно зашить что угодно: айди пиццерии и города, тогда приложения сразу покажет правильное меню. Сделать такое для обычного приложения сложно, потому что ссылка должна решить установлено ли приложение, если установлено, то открыть, если нет, то показать апстор, а после скачивания открыть с правильными параметрами. Нормально на iOS это сделать вроде как даже и нельзя, а вот на андроиде можно. Называется это Deferred deep linking.
Аппклип устанавливается почти моментально, ведь скачать надо 7–8 Мб. Это может сильно ограничивать, но создает интересные челенджи по выпиливанию фич из приложения. Над минимальным функционалом работать офигенно: ощущение будто новый продукт запускаешь, удивительно сколько обвесов можно выкинуть, но не потерять в самом главном — доставке еды до рта.
Еще у аппклипа нет запросов на пермишены: локацию можно один раз завалидировать, а пуши приходят сами, со статусом регистрации .ephemerial.
Разные сценарии
Для одного приложения можно написать разные аппклипы. До этого я рассказывал про выбор локации, но также можно сделать и покупку в пару кликов. Размещаете графический код около товара, сканируете его, выбираете нужный размер и можно купить через эпл пей. Еще меньше действий для пользователя, выше вау-эффект.
Пример
Посмотреть пример можно у приложения Chibi. Для запуска перейдите на сайт, или сканируйте этот код.
Эпл перевела AppClip как «блиц-приложение». Сложно.
Чем это лучше терминала или кассира?
Аппклип не привязан к месту где стоит терминал, нет очереди к терминалу, можно заказать сидя за столиком.
С терминалом нет никакой обратной связи: купил и ушел. Аппклип может прислать пуш и спросить про вкус и качество.
После заказа можно поставить полное приложение и получить бонусы: акции, доставку, программу лояльности. Информации о логине может мигрировать в полное приложение, про ваш заказ никто не забудет.
В итоге, клиента можно привлечь снова, а это важная часть бизнеса.
Как делали
Из основного приложения вынесли код во фреймворки. Вы выделили три: меню, корзина и оплата. В таргете аппклипа соединили их, написали простую навигацию из двух кнопок и запустили.
За дна дня мы смогли собрать рабочий прототип, но сломали основное приложения и зарелизить все равно нельзя. Зато насобирали инсайтов.
Чего не хватило до релиза
Ради скорости сломали основное приложение :-) Остальное мелочи.
Делать фреймворки стоит законченными фича-модулями, тогда будет легко собрать новое приложение.
Выделив работу с заказом в отдельный фреймворк можно писать и другие экстеншены. Например, очень хочется сделать рич-нотификейшен, когда мы присылаем пуш с новой пиццей, а прямо из пуша можно заказать ее домой с одной кнопки.
Авторизация у нас обязательно по телефону и смс. Это надо либо тоже выносить в модуль, либо переделывать и добавить поддержку Sign in with apple. Если сделать, то удобно вместе с емейлом получить и имя пользователя.
Совсем не успели прокидывать параметры из урла в аппклип и из аппклипа в полное приложение, но это вроде не очень сложно.
За пару дней мы сделали прототип, поняли что и как нужно сделать, если делать нормально. При этом успели увидеть аппклип в работе и немного потестировать. MVP — топ.
Подписывайтесь на канал мобильной разработке в Додо Пицце.