DevGang
Авторизоваться

Как создать приложение TWA для Android из PWA Nuxt.js

Знаете ли вы, что вы можете упаковать свое прогрессивное веб-приложение (PWA) в приложение для Android и опубликовать его в Google Play Store? Таким образом, мобильные пользователи смогут найти и загрузить его, и все будет вести себя как в родном приложении. Лично я не знал об этом, пока не наткнулся на аббревиатуру TWA, которая означает: доверенная веб-активность.

В недавнем проекте мне пришлось создать приложение TWA для Android из PWA Nuxt.js. Я был удивлен, обнаружив, что это оказалось не так сложно, как я думал. Я преобразовал свой PWA в APK за несколько часов, и я сразу же загрузил его в Google Play Store.

Чтобы помочь вам добиться того же, в этом руководстве мы рассмотрим процесс шаг за шагом.

В конце концов, вам понравится, как работает эта новая технология TWA.

Вам не нужно будет писать какой-либо код Java, чтобы создать приложение для Android с помощью этого процесса. Кроме того, чтобы избежать путаницы, TWA отличается от кнопки «Добавить на главный экран», которую вы видите на некоторых PWA. В конце этого руководства вы получите APK-файл, готовый к загрузке в Google Play Store.

Создайте свой Nuxt PWA

Надежная веб-активность работает только при использовании законного работника службы. Чтобы упростить задачу, мы будем использовать официальный модуль PWA для Nuxt, но вы можете настроить PWA самостоятельно.

Вы, вероятно, уже знакомы с тем, как превратить свое приложение Nuxt в PWA. Но если вы этого не сделаете, вот пара интересных вещей, которые вам следует знать. Не стесняйтесь переходить ко второй части, если ваше приложение уже является PWA.

Короче говоря, прогрессивное веб-приложение использует набор веб-технологий, которые стремятся обеспечить максимально естественный опыт для всех, кто использует браузер (на компьютере или мобильном устройстве). Вы можете сделать свое приложение доступным в автономном режиме (с помощью сервисного работника), отправлять push-уведомления, получить более подробный доступ к операционной системе смартфона и даже разрешить мобильным пользователям добавлять веб-сайт на свой домашний экран (с помощью кнопки «Добавить на главную »).

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

Но, как всегда, Nuxt позволяет легко преобразовать ваше приложение в PWA, предоставив нам официальный  модуль Nuxt PWA.

npm install @nuxtjs/pwa
// nuxt.config.js
{
    modules: [
        '@nuxtjs/pwa',
    ],
}

Этот модуль Nuxt интегрирован со многими подмодулями, которые вы можете включить в соответствии с вашими потребностями:

  1. Модуль Manifest: автоматически генерирует обязательный манифест веб-приложения, который будет содержать информацию о том, как ваш PWA должен выглядеть и функционировать. Прочтите документацию, чтобы узнать, как его настроить.
  2. Модуль Workbox: регистрирует сервис- воркера (внутри вашей статической папки), чтобы вы могли сделать свое приложение доступным в автономном режиме с помощью документации workbox. Короче говоря, сервис-воркер - это просто скрипт, который выполняется в фоновом режиме и помогает вам управлять сетевыми запросами, выполняемыми вашим приложением.
  3. Модуль OneSignal: помогает настроить бесплатные push-уведомления с помощью документации OneSignal.
  4. Meta-модуль: помогает добавить в проект общие метатеги с помощью документации без конфигурации.
  5. Модуль значков: автоматически генерирует все значки приложений и значки различных размеров, что позволяет сэкономить время. Ознакомьтесь с документацией здесь.

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

Убедитесь, что ваш Nuxt PWA соответствует всем требованиям Lighthouse

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

Lighthouse - это инструмент с открытым исходным кодом, созданный Google, чтобы помочь разработчикам делать веб-страницы быстрее и лучше. Короче говоря, он запускает автоматические аудиты, чтобы показать вам, как можно улучшить производительность, доступность, PWA и SEO вашего приложения (среди прочего).

Вот как можно запустить Lighthouse в Chrome DevTools.

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

Не так уж и сложно выполнить все критерии, требуемые TWA (в зависимости от вашего приложения), особенно когда вы используете модуль NUXT PWA.

Единственная проблема, которую мне пришлось решить, - это отсутствующее маскируемое изображение, это проблема модуля Nuxt PWA, с которой столкнулся не только я.

Я смог быстро решить эту проблему, добавив один из них в проект, а также следующие несколько строк кода в манифесте конфигурации Nuxt:

manifest: {
    name: 'My app\'s name',
    lang: 'en',
    orientation: 'portrait',
    background_color: '#FFFFFF',
    theme_color: '#F8F8F8'
    theme_color: '#F8F8F8',
    icons: [
        {
            src: '/img/logo/static_maskable_icon.png',
            sizes: '196x196',
            type: 'image/png',
            purpose: 'any maskable'
        }
    ]
}

Превратите свой PWA в приложение для Android, используя надежные веб-действия

Надежная веб-активность (TWA) - это открытый стандарт, который позволяет браузерам предоставлять специальный контейнер, который отображает PWA внутри приложения Android. За кулисами он использует протокол, основанный на настраиваемых вкладках, а также встроенный механизм, гарантирующий, что веб-сайт и приложение принадлежат одному разработчику.

Имейте в виду, что TWA использует файлы cookie совместно с Chrome (т. е. если вы вошли на сайт внутри браузера, вы также будете аутентифицированы внутри приложения).

Но вернемся к Nuxt. Еще несколько хороших новостей - для этого также есть модуль: nuxt-twa-module. Он настроит для вас необходимую конфигурацию и сгенерирует все файлы, необходимые для запуска приложения:

npm install nuxt-twa-module --save-dev

Затем добавьте этот модуль в свой файл конфигурации и заполните параметры ниже:

// nuxt.config.js
{
  modules: [
    ['nuxt-twa-module', {
      /* module options */
      defaultUrl: 'https://your-url.com',
      hostName: 'your-url.com',
      applicationId: 'com.example.example',
      launcherName: 'Your app name',
      versionCode: 1,
      versionName: '1.0',
      statusBarColor: /* color */,
      // The sha256Fingerprints by is an array with one SHA-256 key string.
      // But if you have multiple you can add them to the array. More information about the website asociation:
      // https://developer.android.com/training/app-links/verify-site-associations#web-assoc
      sha256Fingerprints: ['/* your SHA-256 keys */'],
      /* optional */
      /* overwrite default location for icon */
      iconPath: '/static/icon.png'
      /* Overwrite folder where to put .wellknown */
      distFolder: '.nuxt/dist/client',
    }],
  ]
}

Чтобы создать приложение Android, вы можете запустить npm run build или npm run generate, и он создаст папку android в корне вашего проекта, которую вы можете открыть в Android Studio для создания своего приложения.

Выпустите приложение TWA для Android

Вам понадобится ключ для подписи вашего приложения и загрузки его в Google Play Store.

Эта документация предоставит вам полный процесс подписания вашего приложения.

Убедитесь, что вы храните этот ключ в надежном месте, так как он понадобится вам в будущем обновлении.

Чтобы опубликовать приложение в Google Play Store, используйте файл APK, созданный ранее в вашей папке android. Перейдите в консоль Google Play, и мастер встретит вас и предоставит пошаговые инструкции.

Обычно рассмотрение и утверждение вашей заявки занимает несколько часов. После этого вы сможете увидеть свое приложение в Play store.

Вывод

Если вы выполнили пошаговый процесс, вы сможете опубликовать свое приложение Nuxt в магазине Google Play. 

Источник:

Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

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

Попробовать

Оплатив хостинг 25$ в подарок вы получите 100$ на счет

Получить