что такое гугл плей сервис for instant apps

Google Play Services for Instant Apps

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Google Play Services for Instant Apps. Здравствуйте. Сегодня хочу поведать об относительно новом функционале Гугл — Google Play Services for Instant Apps. Что это за «фишка», нужна ли она в телефоне, как правильно отключить/удалить, существует ли опасность подцепить вирус? Вопросов много, но все они будут рассмотрены в данном обзоре. Приступим!

Если кратко описать назначение технологии, то она необходима для упрощения процесса оплаты услуг и товаров в интернете, без потребности в установке дополнительного ПО на Ваш гаджет. Давайте разбираться!

Содержание статьи:

Что такое Instant Apps?

Если перевести дословно это словосочетание, то получим выражение – «приложения с мгновенным запуском». Мы имеем дело с функционалом операционной системы Андроид, который позволяет просматривать содержимое из Гугл Плей до того, как Вы установите его в память устройства. Предварительно на смартфон скачивается небольшой файл с обзором функциональных возможностей программы или сервиса, Вы внимательно просматриваете контент и принимаете решение – скачивать полную версию софта или нет. Таким образом, Вы экономите время и «дисковое» пространство, не забивая его прогами, которые впоследствии могут оказаться бесполезными.

НО, есть ограничение! Не все приложения поддерживают такой режим. Его реализация и внедрение ложатся на плечи разработчиков. Если они создадут адаптацию своей утилиты с поддержкой приложения Google Play Services for Instant Apps, то на странице загрузки в официальном магазине Гугл Вы увидите специальную кнопку «Попробовать». На данный момент перечень не слишком большой, но зарубежные компании активно внедряют опцию в своё ПО (Buzzfeed, Periscope, Wish).

Рассмотрим пример с Баззфид (новостной агреагтор).

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Как подключить?

Не на всех моделях телефонов функционал доступен по умолчанию (присутствует практически повсеместно, начиная с версии Андроид 6.0.

А для включения возможности предварительного просмотра следует:

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Здесь же будет отображаться перечень софта, который вы уже смотрели ранее.

Устранение возможных проблем

Чаще всего пользователи жалуются, что Instant Apps загружены без разрешения владельца телефона, прога сама запускается и автоматически обновляется – будто живет своей жизнью. К сожалению, в Гугл считают подобное поведение вполне нормальным и естественным. Поэтому, нужно либо смириться, либо отключить опцию (смотрим инструкцию выше).

На самом деле, IA – это очередная ступень развития интернета. Просто мы пока не привыкли к подобному, оно вызывает у нас отчуждение. А уже очень скоро для совершения покупок в интернет магазинах нам не нужно будет заходить на сайт, долго искать нужный товар и проходить через несколько шагов регистрации, оформления заказа. Достаточно будет воспользоваться Google Поиском чтобы найти продукт, и затем через Instant Apps сразу будет подгружаться страница с описанием и кнопкой покупки от соответствующего магазина.

Инстант Аппс является помощником и предоставляет рекомендации, согласно пользовательским интересам, которые некоторыми юзерами воспринимаются как навязчивая реклама. Отсюда и неприязнь. Если это Вам не нужно, просто зайдите в настройки, категория «Google» и отключите приложения с мгновенным запуском.

Вот и разобрались Google Play Services for Instant Apps что это такое, как активировать.

Источник

Google Play Services for Instant Apps — что это

Технология Instant Apps впервые стала доступна в середине 2016 г. Призвана она была заменить собой значительную часть работы с контентом в веб-браузерах и облегчить процесс поиска нужных приложений в Google Play Market. Иногда с этим сервисом происходят различные неполадки, индикацией которых является соответствующее уведомление. Как пользоваться Google Play Services for Instant Apps, что это такое и как исправить ошибку сервиса при запуске, рассказано в этой статье.

Что такое Google Play Services for Instant Apps

Google Play Services for Instant Apps — это категория приложений с моментальным запуском и доступом. Если говорить более понятным и простым языком, то это специальные пробные версии софта (Trials), которые можно совершенно бесплатно попробовать в магазине Плей Маркет и при этом не устанавливать их в привычном виде.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Сервисы Google регулярно обновляются, появляются новые возможности

Как работает

Сервис Google Play Services for Instant Apps позволяет в разы упростить процесс скачивания или покупки любой игры или программы через официальный магазин Google Play Market. Он дает возможность отказаться от полноценной загрузки и сэкономить место на SD-карте или внутреннем накопителе.

К сведению! Это не означает, что приложение запускается в Google Play. Смартфон скачивает небольшой файл пробных данных и активирует его без каких-либо уведомлений и установок.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Как выглядит Instant-доступ

Как подключить приложения с мгновенным запуском

Если функция приложений с быстрым запуском включена на телефоне или планшете, то в магазине Play Market в окне программы около кнопки «Установить» появится кнопка «Попробовать». Проверить опцию можно на любом приложении, которое не установлено в памяти устройства.

Обратите внимание! Подключить Google Play Services for Instant Apps просто. Достаточно перейти в конфигурации смартфона, выбрать раздел «Google аккаунты» и подраздел «Службы». В нем будет параметр «Instant Apps». Достаточно перевести тумблер в состояние «Активно».

Как пользоваться

Как уже стало понятно, сервис позволяет опробовать программу или игру, оценить ее дизайн и функционал, а лишь потом покупать ее или загружать полноценный установочный пакет. Instant Apps внедрен и активно обновляется с Android 6.0. В новых аппаратах все происходит без какого-либо участия пользователя.

Пользоваться сервисом достаточно просто. Если приложение поддерживает функцию быстрого запуска, то рядом с ним на странице в официальном магазине появится надпись «Instant» («Попробовать»). По нажатию на нее программа будет открыта с ограниченным функционалом буквально за мгновение.

К сведению! По задумке авторов технология должна также поддерживаться веб-браузерами на некоторых ресурсах и в магазинах. Она будет подгружать и открывать небольшой файл о товаре с кнопкой «Купить». То есть человеку не придется скачивать ненужные ему данные.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Не все программы имеют функцию быстрого запуска

«Google Play Services for Instant Apps остановлено»: причины появления сообщения

Функцией мало кто пользуется, поэтому ошибки в ней — редкость для простого обывателя. Неисправности в Google Play Services for Instant Apps появляются по тем же самым причинам, что и в других системных или установленных приложениях. Иногда телефону не хватает места, а иногда возникают системные сбои. Часто проблемы могут появиться в более старых версиях операционной системы (от Android 6.0 до 7.0).

Обратите внимание! Очень часто во всем виноват тот или иной системный конфликт. Для его нейтрализации выполняют простую перезагрузку устройства, которая очищает ОЗУ и позволяет операционной системе удалить некоторые временные файлы.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Функционал доступен и в веб-браузере

Как исправить ошибку с приложением Гугл Плей Инстант

Иногда простая перезагрузка не помогает, и тогда на помощь приходят более радикальные меры. Их использование напрямую зависит от причины появления сообщения об ошибке, но так как узнать это очень сложно, они выполняются поочередно до того, как уведомление перестанет показываться. Наиболее часто пользуются такими способами:

Важно! Выполняя сброс, необходимо учитывать, что все пользовательские видеозаписи, музыка, пароли от учетных записей и фотографии будут удалены полностью и безвозвратно. Необходимо всегда сохранять нужное на SD-карту или облако и лишь потом сбрасывать телефон.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Очистка данных и кэша

Другие возможные проблемы с Instant Apps

Кроме этой проблемы, могут возникать и другие. Часто они связаны с вылетами или остановкой работы программы в самое неподходящее время. Проявляются они в основном на более ранних версиях операционной системы. Для решения проблем необходимо:

Автоматический запуск и обновление программы без ведома пользователя

С момента появления опция регулярно обновляется и дорабатывается. На новых устройствах она устанавливается автоматически с комплектом стандартного ПО и выполняет обновления в фоновом режиме без ведома пользователя. Остается лишь смириться с ней, как с любой предустановленной программой.

Обратите внимание! Можно, конечно, установить права суперпользователя, позволяющие удалять встроенные приложения, но тогда с гарантией на телефон или планшетный ПК можно попрощаться.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Иногда решить ошибку помогает выход из аккаунта Google

Плюсы и минусы Instant Apps на андроиде

Несмотря на различные мнения и поддержку со стороны разработчика (Google), технология быстрого запуска имеет свои достоинства и недостатки. Основными преимуществами являются:

Достоинства не исключают минусы, которых тоже есть не мало:

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Функция активно поддерживается разработчиками и регулярно обновляется

Было разобрано, как включить и отключить Гугл Плей Сервис фор Инстант Аппс, что это и как этим пользоваться. Иногда при попытке воспользоваться функцией может произойти системный сбой или ошибка, которая будет мешать работе. Решают их стандартными способами: сбросом, очисткой кэша или отключением приложения в параметрах гаджета, если пользоваться им нет никакого желания.

Источник

Google Play Instant. Рефакторинг длиною в жизнь

Когда ввязываешься в Early Access Program, никогда заранее не знаешь, что получится в итоге. Конечно, надеешься, что технология взлетит, а твое приложение опередит рынок и получит порцию пиара на Google I/O. И это неплохая мотивация, чтобы на начальном этапе вместо документации читать исходники, которые к тому же надо качать из секретного архива.

На AppsConf Евгений Сатуров показал, во что может вылиться участие в Early Access на примере разработки приложения с мгновенным запуском, по дороге поясняя все особенности Google Play Instant. В расшифровке его доклада разберёмся, откуда пошли Android App Bundles, при чём тут вообще Dynamic Delivery, познакомимся с новыми Gradle-плагинами, и узнаем, как быть с неожиданностями, которые приготовили для нас разработчики SDK.

О спикере: Евгений Сатуров (saturovv) работает в компании Surf, которая занимается заказной Android и iOS-разработкой, а с недавнего времени еще и разработкой на Flutter. Евгений Flutter-энтузиаст и основатель FlutterDevPodcast.

Краткий экскурс в историю

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Два года назад к нам в Surf пришел замечательный парень и говорит: «У нас есть технология, о которой пока мало, кто знает. А у вас есть заказчики и интересные кейсы. Давайте, мы дадим вам нашу технологию, вы ее куда-нибудь интегрируете, и получится классный симбиоз. Мы пропиарим это на Google I/O и всем будет хорошо».

На самом же деле, работа с Early Access Program — это кот в мешке. Приходится работать с сырым кодом, который, понятное дело, не всегда работает так, как задумано и описано. В нашем случае:

Все это стало возможным благодаря нашему постоянному партнеру — компании Лабиринт — крупнейшему интернет-магазину книг и канцтоваров в России. Они включились в проект, даже не будучи уверенными, будет ли какой-то бенефит в итоге. И тому, что в 2017 году Surf, как студия, была частью программы Программе Google Certified Agency. К сожалению, программу закрыли в этом году.

Android Instant Apps

В 2017 для того чтобы приложение запускалось без установки, оно должно было быть распилено на модули правильным образом.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

У нас появились новые Gradle-плагины, которые генерировали соответствующие артефакты:

Но это было долго и дорого по ряду причин:

Но справедливости ради, внедрение Instant App в Лабиринте дало 5% прироста к покупкам через мобильный клиент.

2019. Google Play Instant

Прошло два года, на дворе 2019 — Instant Apps все еще существует, но не как самостоятельная технология. Она до сих пор очень редко встречается в продакшене, я не искал специально, но знаю только несколько примеров: это Sports.ru, Vimeo. Вряд ли Google рассчитывал на такой результат, когда анонсировал эту технологию.

Теперь Instant App называется иначе — Google Play Instant. Смена названия помогла отсеять неактуальную документацию. Если видите Android Instant App, сразу понятно, что это уже неактуально.

Кроме названия сменилось и все остальное, в том числе модульная структура. Требования стали более лояльными. Технология совершенно по-другому интегрируется в проект и не требует столь болезненного рефакторинга, что, безусловно, хорошо.

Но что менее очевидно и на мой взгляд гораздо более важно — эта технология, так и оставшись очень нишевой и редкой, стала прародителем целого семейства технологий, в составе которого теперь поставляется.

Изначально Google позиционировал Instant App как технологию, которая привлекает людей в бизнес, не в приложения. Был design-guideline, который запрещал делать лэндинг-приложения с одной кнопкой «Скачать полное приложение». Но побочно была решена другая фундаментальная проблема, и подозреваю, это произошло случайно.

В феврале этого года свет увидело замечательное устройство Samsung Galaxy S10+ с 1 Тб памяти на борту. Только вдумайтесь — один терабайт! Зачем столько нужно?!

Согласно официальной статистике Google, за последние 7 лет средний размер APK увеличился в 5,5 раз.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Размер сборки действительно имеет значение, исследование этой статистики показывает:

Последние все сложнее игнорировать, потому что в 2018 году именно Индия показала невероятный прирост по установкам.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Обратите внимание, там совсем мало iOS, а суммарное количество установок Android-приложений превышает таковое в США, Бразилии и Индонезии вместе взятых.

Теперь понятно, какую проблему можно решить при помощи Google Play Instant. Можно переходить к непонятным терминам.

Android App Bundle

Android App Bundle — новый формат публикации приложения в Google Play. Внутри все не сильно отличается от APK: все те же самые dex-файлы, manifest, resources, assets и т.д. и т.п. Но есть еще Metadata, которая не попадает на устройство пользователя.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Metadata представлена тремя файлами: resources.pb, assets.pb, native.pb. Фактически это таблицы соответствия ресурсов, которые есть в сборке, и конфигурационных настроек устройств.

Android Dynamic Delivery

Все знают о существовании App Signing by Google Play. Но не все готовы хранить релизный ключ своего приложения в Google Play, потому что пути назад не будет. Слезть с App Signing by Google Play невозможно.

Один раз отдав релизный ключ в Google Play, вы потом никогда не сможете подписывать свое приложение как раньше, на своей стороне. Но в обмен на это вы можете пользоваться всеми преимуществами, которые дает Android App Bundle как формат. А процесс подписи сборки будет выглядеть отныне немножко иначе.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Вы все еще будете подписывать сборку перед деплоем в Google Play, но вы будете подписывать ее upload-ключом, который не является уникальным. Его можно отозвать из консоли, перевыпустить, если он скомпрометирован или утерян. Свой релизный ключ вы отдаете в консоль и прощаетесь с ним — Google теперь будет подписывать сборку за вас и клянется, что сохранит ваш ключ в безопасности.

Однако, если вы не отдадите релизный ключ в Google Play, то не сможете применить в своём проекте ничего из того, о чем дальше пойдет речь. Google закручивает гайки, и даже Instant App, не отдавая ключ, теперь задеплоить не получится.

На самом деле это совсем не смешно, потому что люди, которые купились на промоушен Instant App и влезли во всю эту историю, отрефакторили свои приложения, но по каким-то причинам не могут отдать свой ключ в Google Play (либо отдел безопасности категорически против, либо по другим объективным причинам) оказались в ситуации, когда они дальше не могут поддерживать это решение. Сотни часов работы фактически оказались выброшенными на помойку.

2014. В Android Lollipop появляется поддержка Split APK

Раз мы сегодня ностальгируем, вернемся еще раньше в прошлое — в 2014 год.

До сих пор помню, как на мой NEXUS 5, лучший телефон на свете, прилетела сборка Android Lollipop c невероятным material-дизайном, который выглядел просто бомбически. Но были изменения, которые остались для многих незамеченными — это поддержка Split APK.

Split APK — механизм, который позволяет разбивать приложение на маленькие APK и, устанавливая на одно устройство, заставлять их вести себя как единое приложение.

Запомните это, и пойдем дальше.

Android Dynamic Delivery — это новый формат дистрибуции приложений в Google Play.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Был у нас раньше APK, теперь появляется еще Android App Bundle, пока что как альтернатива. AAB выступает инкубатором-генератором этих самых Split APK. AAB выкатывает банч APK, которые дальше можно использовать как обычное приложение, установив их параллельно.

Разберемся, что это за APK.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Как минимум, это базовый APK, который играет ту же самую роль, что и в Instant App: это базовый код, базовые ресурсы и бизнес-логика, которая шарится между всеми фичами.

Кроме того появляются:

Теперь такой механизм позволяет получать пользователю только тот набор ресурсов, который нужен конкретно для его устройства. Человек приходит в Google Play, выбирает приложение, Google Play понимает характеристики устройства пользователя, и отдает тот набор Split APKs, который нужен — по одной APK из каждой категории.

Типы Dynamic Delivery APK:

Прощай, Split

Вы можете возразить, что и раньше можно было делать что-то подобное, вручную генерируя кучу APK только с нужным набором ресурсов, потом это все вручную деплоить в Google Play.

Сама по себе эта затея достаточно сомнительная, а теперь все это просто игнорируется. Если вы собираете Android App Bundle, появляется блок Bundle, который позволяет отключать вручную разбиение проекта по одной из категорий.

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

Самые внимательные, наверное, сейчас думают о том, что же делать с preLollipops. Только в Android 5 появилась поддержка Split APK. Из этой ситуации надо как-то выходить, потому что Min SDK еще далеко не у всех 21-й.

Для preLollipops из ситуации выходят достаточно топорным, но единственно возможным образом. Google Play собирает Multi-APK для preLollipops, которые включают в себя всевозможные комбинации конфигурационных APK. APK в итоге один, но его вариантов очень много.

Android App Bundle меняет нашу жизнь

И очень существенно. Во-первых, собирать проект, может быть, стало значительно проще, особенно если раньше вы вручную собирали Split APK. Но по моим наблюдениям таких людей не очень много.

Во-вторых, вы больше не рискуете утратить или скомпрометировать релизный ключ. Не будет большой трагедии, если вы потеряете свой Upload Key, его можно отозвать и перевыпустить.

Не будем показывать пальцем — в топе российского Google Play есть приложения, у которых релизные ключи уже давно на 4PDA, все кастомные сборки подписаны релизным ключом, и в ближайшие лет пять с этим ничего не сделать. Остается ждать перехода на Signing V3, который появился только с 28 API.

Безусловное преимущество Android App Bundle: пользователи перестают расходовать трафик и место на диске на ненужные им ресурсы. Это очень повышает retention приложения.

Но если у вас вся графика в векторе, две локализации и нет нативных библиотек, то выгода будет микроскопическая.

Dynamic Feature Module

Dynamic Feature Module — это функциональный модуль, который не поставляется при установке приложения, а докачивающийся из Google Play и устанавливающийся только по требованию.

Такие модули встают на один уровень с базовым APK.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Важно, что каждый из этих feature module сам по себе тоже содержит набор конфигурационных Split APK. Соответственно, общее количество APK может увеличиться сверх всякой меры. Но это совершенно не ваша забота, этим занимается Google Play.

Области применения Dynamic Feature Modules:

Фичи, используемые очень малым процентом аудитории, но, тем не менее, важные для вашего продукта. Например, это контентное развлекательное приложение, и 95% его пользователей потребляют контент. Но есть очень маленький процент редакторов, которые контент генерируют. Для них есть крутой видеоредактор, который весит реально много, работает невероятно круто. Тогда не имеет смысла утяжелять сборку для всех и каждого, можно вынести эту фичу в Dynamic Feature Module, и предоставить её только тем, кому она нужна, докачивая ее уже потом.

Тяжёлые фичи, не относящиеся к основному сценарию использования приложения. Например, AR-навигация в картографическом сервисе. Любая AR-фича самое то, чтобы вынести ее в Dynamic Feature Module.

Фичи, которые должны быть доступны пользователям без установки самого приложения (например, выбор товара в каталоге и оформление заказа). Верно, это что-то очень подозрительно все напоминает.

Android Instant Apps — это теперь Instant-Enabled Dynamic Feature Module.

Таким образом получается, что есть два типа Dynamic Feature Modules:

Такое часто можно встретить в разделе с играми. Это удобно и даже более применимо, чем к приложениям, потому что можно скачать маленький кусочек игры как демку и посмотреть, что это вообще такое, стоит ли тратить свой трафик и время.

Модульная структура

Я уже говорил, что модульная структура упростилась. Посмотрим, как именно.

Изначально у нас была достаточно монструозная структура. Среди прочего в ней были пустые модули, например, Instant App Module всегда был пустой, в нем не было ни кода, ни ресурсов, а только файл build.gradle и все.

Разработчики подумали, зачем тогда плодить лишние модули только для того, чтобы собирать артефакты определенного типа. И выпилили его, а функциональность перенесли в App Module.

Но потом они пошли еще дальше и подумали — зачем нужен Base Feature Module? От него одни проблемы, потому что мы инициализируем там все, а у него Application ID другой. Отсюда идут костыли, например, передача Application ID из App Module в Base Feature Module, и подстановка его как настоящего Application ID приложения, чтобы все трекалось в Crashlytics и т.д.

В итоге получилось так.

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Оставили App Module, к нему сверху приделали Feature Modules — и всё!

Не передать мои эмоции, когда я об этом узнал. Ребята с большой сцены заявили, что у них есть классная технология: «Давайте все перепиливать приложения под эту структуру!» Но это не работа на 5 минут, а работа с большими последствиями.

В 2017 году иметь монолитное приложение было еще не стыдно. Лабиринт был именно таким, он тогда даже еще не вышел в публичный релиз, а был в бете. На момент, когда мы ввязались в Early Access Program, там уже было порядка 90 экранов. Мы потратили два дополнительных месяца на то, чтобы это все отрефакторить, протестировать и убедиться, что все действительно работает.

И после этого они говорят: «Мы перемудрили, можно гораздо проще сделать».

Но вернемся к прозе.

Конфигурация Gradle-файлов

Для того, чтобы поддержать новую конфигурацию, нам нужно сперва в файле build.gradle app-модуля в блоке Android перечислить все Dynamic Feature Modules:

После этого в build.gradle файле каждого Dynamic Feature Module прописать зависимость на app-модуль:

В принципе, ничего сложного. Но есть еще конфигурация манифестов.

Конфигурация манифестов

Если этого флага не будет, нельзя будет задеплоиться в соответствующий трек в Google Play.

Кроме того, есть еще конфигурация манифеста каждого Dynamic Feature Module в отдельности, в котором больше настроек:

Первые два флага немножко взаимоисключающие, потому что onDemand — это обычная базовая фича, а instant — это та самая Installable фича.

Title — техническое название модуля, по которому мы потом, захардкодив его в нашем приложении, будем выкачивать этот модуль из Google Play.

Параметр include — параметр для preLollipops. Если установить его значение false, то пользователи preLollipops никогда эту фичу не увидят и не смогут ей воспользоваться.

Конфигурация Gradle-projects

Жизнь instantapp-плагина и feature-плагина была достаточно короткой, но яркой. Они просуществовали менее двух лет. С марта этого года они больше не поддерживаются.

Теперь остался только один Dynamic Feature Module, который мы и используем:

Конфигурация проекта только в app-модуле

Важный момент: все настройки, касающиеся подписи (signing-конфигурация), сборки (ProGuard-конфигурация), versionCode и versionName нужно делать только в build.gradle app-модуля.

Иначе, они будут проигнорированы. Избегайте указания какого-либо из этих конфигурационных блоков в build.gradle-файлах dynamic feature-модулей.

Google Play Instant

Сейчас мы имеем следующее.

Требования к модульной структуре максимально упростились. Это действительно хорошая новость для тех, кто в это пока не ввязывался. Теперь можно попробовать, даже если у вас приложение со своей принципиальной структурой. Это совершенно не повлияет, вы можете просто приделать модуль сверху, и все будет хорошо работать.

Ограничения на размер сборки стали лояльнее. Если раньше было 4 Мб, то теперь:

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Это реальный кусок кода из Chrome под Android, который перехватывал ссылку на ваш Instant App, шел в Google Play и подставлял оттуда Instant Apps. Если Instant App обнаруживался, он вам каким-то образом открывал activity, из которой потом запускался Instant App.

Отсюда были огромные проблемы с раскаткой этой фичи. С Samsung это вообще отдельная история, я подозреваю, что их встроенный браузер имеет несколько большие привилегии, нежели Chrome. Instant App там не работал до последнего.

Play Core Library позволяет забыть о проблемах доставки. Вы просто подключаете ее как пакет:

И загружаете нужные вам feature-модули из Google Play.

У библиотеки достаточно функциональный синтаксис, который позволяет скачивать модули поодиночке:

Или сразу пачкой по несколько:

Показывать это в UI и реагировать на то, что модуль был установлен.

Play Core Library — хорошее начинание:

Нет хорошей практики для навигации между feature-модулями. В официальных примерах, которые показывают, как происходит взаимодействие между feature-модулями, из ситуации предлагают выходить достаточно просто: включите зависимость с одного модуля на другой. В каждом направлении своя зависимость, зачем обратно возвращаться?

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Но тогда теряется вся выгода от разбиения на модули. Мы перешли к модулям задолго до того, как возникла необходимость решать такие проблемы. И сделали это отчасти потому, что это упрощает работу с кодовой базой для неопытных разработчиков, которые по неопытности могут с base-activity обратиться к signing-activity — потом ищи это на код-ревью.

Если вы будете связывать все модули зависимостями вдоль и поперек, то хорошо от этого будет только Google, которому не надо будет ничего придумывать насчет навигации.

Мне было стыдно кому-либо про это рассказывать до тех пор, пока я не зашел в репозиторий приложения Plaid и не увидел, что они решили проблему с навигацией точно так же и советуют всем делать так на Stack Overflow.

Plaid — это один из самых крутых шоу-кейсов, с ними Google пробует все свои самые последние тенденции, крутые анимации, дизайн-приемы, последние UI-компоненты и, в частности, модульность.

Много, действительно много багов, недоинжиниринга, шероховатостей. Искать баги особо долго не придется.

Разработчики советуют: добавить в иерархию feature-модуль, в котором нет ничего, кроме зависимости на стороннюю библиотеку, и сделать на него зависимости от двух исходных feature-модулей.

Наконец, после того, как вы и это преодолеете, вы обнаружите, что…

Dynamic Features всё ещё в Beta! Вы не можете задеплоиться в продакшен — вы всё это время были бесплатным тестировщиком для Google!

что такое гугл плей сервис for instant apps. Смотреть фото что такое гугл плей сервис for instant apps. Смотреть картинку что такое гугл плей сервис for instant apps. Картинка про что такое гугл плей сервис for instant apps. Фото что такое гугл плей сервис for instant apps

Но не по мнению Google. Если вы хотите им стать, то можете заполнить Interest Form и, быть может, вам повезет и вам дадут доступ задеплоиться в продакшен.

Есть мнение, что Instant Apps проиграл эту битву. Вряд ли об этом объявят в ближайшие годы, но повышенная информационная активность вокруг AMP негласно это подтверждает.

Мысль, которую я хотел напомнить вам и себе самому — пишите для людей. Трижды подумайте, прежде чем принять какое-то решение, особенно, если занимаетесь разработкой средств, которыми будут пользоваться другие разработчики. Каждое ваше решение и действие скажется на ком-то и, возможно, попортит ему немножко крови. Не хотелось бы стать причиной расстройства для кого-то.

Полезные ссылки

Мы сделали программу Saint AppsConf, которая уже 21-22 октября в Санкт-Петербурге, еще более насыщенной и разнообразной, чем она была весной. Check it out!

Или подпишитесь на рассылку, telegram, fb — там рассказываем об отдельных докладах и подготовке к конференции.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *