Когда я впервые услышал о Trusted Web Activity (TWA), я был очень удивлен и взволнован, опубликовав свое первое приложение в магазине игр. Недавно я опубликовал свой PWA Next.js (React SSR) в Google Play Store как TWA, и я постараюсь поделиться всей информацией, процессом и опытом работы с TWA в этой статье.

Как вы уже знаете, TWA — это способ публикации вашего PWA в Play Store. Он запускается в экземпляре Chrome или на пользовательской вкладке Chrome (CCT) на устройстве пользователя. Он предоставляет гораздо больше возможностей, чем веб-представление в приложении для Android, например — Web Push-уведомление, Фоновая синхронизация, Автозаполнение формы Chrome, Расширения источника мультимедиа (MSE) и API веб-ресурса.

Почему ТВА?

До сих пор я собрал кое-что из своего личного опыта относительно TWA. Включая -

  • Эффективная кодовая база. Эта технология позволяет компании или разработчику поддерживать единую кодовую базу для большей части платформы, что очень эффективно,
  • Мгновенное обновление. Обновления в TWA не требуют проверки в Play Маркете после каждого обновления, что экономит время и мгновенно обслуживает пользователя.
  • Совместимость устройств. Большинство разработчиков приложений для Android сталкиваются с проблемой поддержки всех устройств, особенно устройств с меньшим объемом оперативной памяти. Но для TWA не требуется тестировать все модели устройств, поскольку он работает на всех устройствах, поддерживающих Chrome 72+.

Критерии TWA

На самом деле это самая важная часть для публикации вашего приложения в Play Store. Чтобы опубликовать свое веб-приложение в магазине игр, необходимо выполнить некоторые требования, такие как:

  • Чтобы стать TWA, веб-приложения сначала должны быть PWA. Это означает, что вы должны выполнить все требования PWA. В некоторых статьях говорится, что скорость загрузки измеряется с помощью Lighthouse, а веб-контент в TWA должен достигать оценки производительности 80. Но в моем случае мне пришлось использовать библиотеки, такие как Material UI и другие, чтобы доставить приложение как можно скорее, поэтому я чтобы скомпрометировать производительность моего приложения, которая составила 66 (измерено Lighthouse). Но после прохождения процесса проверки в Play Store мое приложение было окончательно одобрено. Вот почему я думаю, что показатель производительности 80 больше не является требованием для TWA.
  • TWA должна иметь Ссылку на цифровые активы, которая доказывает, что оба приложения были опубликованы одним и тем же разработчиком.
  • Приложение должно соответствовать правилам Play Store. Поскольку Google не всегда может гарантировать, что ваш веб-контент соответствует Требованиям семейной программы, вам необходимо выбрать возраст аудитории 13+ при публикации приложения через Play Console.

Настройка среды

Получить пакет средств разработки Java (JDK) 8

Для запуска инструментов командной строки Android требуется правильная версия JDK. Чтобы предотвратить конфликты версий с уже установленной версией JDK, Bubblewrap использует JDK, который можно распаковать в отдельную папку.

Загрузите версию JDK 8, совместимую с вашей ОС, с AdoptOpenJDK и извлеките ее в отдельную папку.

Предупреждение. Использование версии ниже 8 сделает невозможным компиляцию проекта, а более поздние версии несовместимы с инструментами командной строки Android.

Получить инструменты командной строки Android

Загрузите версию инструментов командной строки Android, совместимую с вашей ОС, с https://developer.android.com/studio#command-tools. Создайте папку и извлеките в нее загруженный файл. Это дополнительно установит менеджер androidSdk и Android SDK без необходимости установки всей Android IDE.

Сообщите Bubblewrap, где находятся инструменты командной строки JDK и Android

При первом запуске bubblewrap спросит, где найти инструменты командной строки JDK и Android. Итак, обратите внимание на место, где оба были распакованы.

Чтобы убедиться, что вы указали правильное местоположение, проверьте, содержит ли каждый каталог следующие файлы:

  • Путь OpenJDK должен содержать bin, com, include и т. д.
  • Путь AndroidSDK должен содержать инструменты, которые должны иметь bin, cli

Обновление местоположения JDK и/или инструментов командной строки Android

Если расположение для JDK или инструментов командной строки Android было настроено с неправильным путем или если их расположение изменилось после первоначальной настройки, расположение любого из них можно изменить, отредактировав файл конфигурации в ${USER_HOME}/.llama-pack/llama-pack-config.json.

Образец llama-pack-config.json

{ 
  "jdkPath":"\\user\\home\\bubblewrap-user\\open-jdk",
  "androidSdkPath":"\\user\\home\\bubblewrap-user\\android-cli"
}

Инструкция по началу работы

Установка пузырчатой ​​пленки

npm i -g @bubblewrap/cli

Инициализация проекта Android

Создайте проект Android из существующего веб-манифеста:

bubblewrap init --manifest https://your-web-app-url.com/manifest.json

При инициализации проекта Bubblewrap загрузит веб-манифест и попросит вас подтвердить значения, которые следует использовать при сборке проекта Android.

Он также запросит у вас данные, необходимые для создания ключа подписи, который используется для подписи приложения перед его загрузкой в ​​Play Store.

Создание Android-проекта

bubblewrap build

При сборке проекта в первый раз необходимо установить Android Build Tools. Инструмент запустит процесс установки инструментов сборки. Перед продолжением обязательно прочтите и примите лицензионное соглашение. Этот процесс установит другие необходимые файлы в каталог/распакованный корневой каталог пакета Android CLI.

В результате этапа сборки инструмент создаст подписанный APK (app-release-signed.apk) и неподписанный APK (app-release-unsigned.apk). Вы можете выбрать любой из них для загрузки в Play Маркет.

Опубликуйте свое приложение через Play Console

Вы можете загрузить неподписанный APK и позволить Google управлять ключом подписи вашего приложения. Перейдите в консоль Google Play и зарегистрируйте свою учетную запись разработчика, если у вас ее нет. Вам нужно будет заплатить 25 долларов США, чтобы создать эту учетную запись. Затем создайте альфа-, бета-версию или внутреннюю версию своего приложения. Вы можете следовать их рекомендациям по созданию своих релизов. Не забудьте выбрать возрастной диапазон 13+, иначе ваш запрос на публикацию приложения не будет принят.

Создание файла ссылки на объект

Чтобы создать ссылку на объект, вам необходимо иметь файл JSON, доступный по URL-адресу вашего веб-приложения. URL-адрес этого файла JSON должен быть https://your-web-app-url/.well-known/assetlinks.json. Как упоминалось ранее, я использовал Next.js для создания своего веб-приложения. Если вы сделали то же самое, создайте папку с именем .well-known в папке public каталога вашего проекта. В этой папке создайте файл с именем assetlinks.json.

Затем перейдите в консоль Google Play, выберите выпуск приложения и скопируйте отпечаток сертификата SHA-256 из раздела Сертификат подписи приложения. Отредактируйте файл assetlinks.json следующим образом:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.appspot.pwa_directory",
    "sha256_cert_fingerprints": [
      "FA:2A:03:CB:38:9C:F3:BE:28:E3:CA:7F:DA:2E:FA:4F:4A:96:F3:BC:45:2C:08:A2:16:A1:5D:FD:AB:46:BC:9D",
    ]
  }
}]

Измените значение package_name, которое было задано или создано при создании APK-файла с помощью Bubblewrap. Обычно это выглядит как com.your-web-app-url.pwa, где URL-адрес вашего веб-приложения может быть https://pwa.your-web-app-url.com. Поместите sha256_cert_fingerprints значение отпечатка сертификата SHA-256, скопированного из Google Play Console. Не забудьте опубликовать этот файл JSON как можно скорее после того, как подали заявку на публикацию своего приложения для Android в Play Store.

Дождитесь подтверждения

После завершения процедуры, упомянутой выше, дождитесь подтверждения от органа Play Store о публикации вашего приложения. Обычно проверка занимает 1-2 дня. Но я опубликовал свое приложение в июне 2020 года, и из-за ситуации с COVID-19 Google потребовалось больше времени, чтобы завершить процесс проверки.

После отправки на проверку Google подтвердил публикацию моего первого приложения TWA в Play Store через 5 дней. Попробуйте опубликовать свое веб-приложение в Google Play Store уже сегодня. Удачного кодирования!

[Первоначально это было опубликовано на dev.to 21 августа 2020 г.]