Настройка Google Play Instant для Android (мини-приложения)

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Настройка Google Play Instant для Android (мини-приложения)
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Настройка Google Play Instant для Android (мини-приложения)

Google Play Instant позволяет пользователю запустить часть приложения без установки — прямо из браузера, поиска Google или Play Store по кнопке «Попробовать». Сценарии: демо-версия игры, онбординг нового пользователя, просмотр конкретного контента по deep link без предварительной установки.

Технически instant app — это тот же APK, только с жёсткими ограничениями по размеру и функционалу. Не отдельное приложение — срез существующего.

Технические ограничения

Размер: instant experience не может превышать 15 МБ. Это главное ограничение. Для приложений с большим количеством ресурсов, шрифтов и библиотек — серьёзный вызов. Android App Bundle с динамическими модулями (dynamic-feature) позволяет вынести в instant только нужный функционал.

API-ограничения: instant apps работают в песочнице. Недоступны: READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE, доступ к контактам, SMS, постоянные уведомления. Некоторые hardware API ограничены. Bluetooth, камера, микрофон — доступны с разрешения пользователя, как в обычном приложении.

INSTANT_APPS_ACCESS разрешение нужно добавить в манифест instant-модуля.

Хранилище: SharedPreferences в instant scope — временные, сбрасываются. Для сохранения данных между instant и installed версией используется InstantApps.getPackageManagerCompat() с Cookie API — маленький буфер (~16 КБ) для передачи состояния при установке.

Структура проекта с Instant App

Приложение разбивается на модули через Android App Bundle:

  • app — базовый модуль (всегда устанавливается)
  • feature_instant — модуль с dist:instant="true", который включается в instant experience
  • остальные feature_* — динамические модули, скачиваются по запросу

В feature_instant/AndroidManifest.xml:

<dist:module dist:instant="true">
    <dist:delivery>
        <dist:install-time />
    </dist:delivery>
</dist:module>

install-time для instant означает «включить в instant experience», не «установить вместе с базовым модулем».

Код instant-модуля запускается через intent с deep link — тот же URL, который используется для App Links. Когда пользователь устанавливает приложение, instant experience бесшовно переходит в installed.

Что чаще всего мешает реализации

Размер 15 МБ. Анализ apkanalyzer показывает, что съедает место: обычно это неоптимизированные drawable (webp вместо png), шрифты (только нужные начертания через downloadable fonts), крупные библиотеки. ProGuard/R8 с isMinifyEnabled = true и isShrinkResources = true обязательны. Иногда приходится заменять зависимость — например, вместо полного Google Maps SDK использовать Static Maps API с ImageView.

Навигация. Instant app запускается через URL. Если навигация построена не на deep links, а на внутренних ID — нужна доработка. NavDeepLinkBuilder в Navigation Component упрощает это, но требует, чтобы каждый экран instant experience имел соответствующий URL.

Тестирование. Instant app можно запустить напрямую из Android Studio через конфигурацию с Launch: Instant App URL. На устройстве нужно включить «Google Play Instant» в Developer Options. Без реального тестирования на устройстве сложно проверить ограничения песочницы.

Cookie API для передачи состояния. Если пользователь прошёл онбординг в instant-версии и устанавливает приложение — без Cookie API этот прогресс теряется. Реализация: в instant записываем в cookie через InstantApps.setInstantAppCookie(), при первом запуске installed-версии читаем через InstantApps.getInstantAppCookie().

Настройка Google Play Instant для существующего приложения: 3-5 дней при условии, что приложение уже использует multi-module структуру. Для монолитного проекта — предварительная модуляризация добавляет время. Стоимость рассчитывается индивидуально.