Desenvolvimento para dispositivos móveis

Notas de aula do prof. Eduardo da disciplina de Desenvolvimento para Dispositivos Móveis (curso técnico)

View on GitHub

Instalação dos pré-requisitos

Uma vez que a aplicação VueJS já está criada, vamos instalar os pré-requisitos para que ela se torne um PWA. Para isso, vamos instalar o vite-plugin-pwa e o workbox-precaching:

npm install vite-plugin-pwa workbox-precaching

O pacote vite-plugin-pwa é um plugin para o Vite que facilita a criação de PWAs. Ele é responsável por gerar o Service Worker e o manifest da aplicação. O pacote workbox-precaching é uma biblioteca que permite a criação de Service Workers para aplicações web, sendo que ele procura por arquivos estáticos e os armazena em cache, remove arquivos antigos e atualiza arquivos novos, além de evitar a duplicação de arquivos.

Geração dos ícones

Para que a aplicação se torne um PWA, é necessário que ela tenha ícones para a tela inicial. Para isso, sugiro que você crie alguma logo para a aplicação, e o salve na pasta public com o nome logo.png. Em seguida, acesse o site https://www.pwabuilder.com/imageGenerator. Neste site, você escolherá o arquivo logo.png e o site irá gerar os ícones necessários para a aplicação. Em seguida, basta baixar o arquivo gerado e descompactá-lo.

Nós não utilizaremos todos os arquivos gerados, mas apenas os arquivos android/android-launchericon-192x192.png e android/android-launchericon-512x512.png. Esses arquivos devem ser salvos na pasta public da aplicação, com os nomes pwa-192x192.png e pwa-512x512.png, respectivamente.

Também usaremos o arquivo ios/180.png que será salvo na pasta public com o nome apple-touch-icon.png.

Obs: Você pode gerar esses arquivos com outros utilitários, como o pwa-asset-generator, bem como fazer uso de outros arquivos para a sua aplicação. Estamos aqui com uma configuração mínima

Ajustes no arquivo de configuração do Vite

Agora, vamos ajustar o arquivo de configuração do Vite, que é o arquivo vite.config.js. Abra este arquivo e adicione o seguinte conteúdo:

import { fileURLToPath, URL } from 'node:url';

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { VitePWA } from 'vite-plugin-pwa';

export default defineConfig({
  plugins: [
    vue(),
    VitePWA({
      registerType: 'autoUpdate',
      includeAssets: ['favicon.svg', 'apple-touch-icon.png', 'masked-icon.svg'],
      manifest: {
        name: 'Fake Store',
        short_name: 'FakeStore',
        description: 'Fake Store: Fantástica loja de produtos',
        theme_color: '#ffffff',
        icons: [
          {
            src: 'pwa-192x192.png',
            sizes: '192x192',
            type: 'image/png',
            purpose: 'any',
          },
          {
            src: 'pwa-512x512.png',
            sizes: '512x512',
            type: 'image/png',
            purpose: 'maskable',
          },
        ],
        id: 'com.fake-store.app',
        orientation: 'any',
        background_color: '#ffffff',
        start_url: '.',
        launch_handler: {
          client_mode: ['navigate-existing', 'auto'],
        },
      },
      devOptions: {
        enabled: true,
      },
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
});

Neste arquivo, estamos importando o VitePWA e adicionando-o como plugin do Vite. Também estamos configurando o Service Worker para que ele seja atualizado automaticamente, e estamos configurando o manifest da aplicação. Alguns itens que podem ser configurados no manifest são:

Ajustes no arquivo index

Agora, vamos ajustar o arquivo index.html. Abra este arquivo e adicione a seguinte tag no bloco head conteúdo:

<link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180" />
<meta name="theme-color" content="#ffffff" />

Neste arquivo, você também pode alterar a tag title para o nome da aplicação, e a tag meta description para a descrição da aplicação. Você também poderia adicionar uma fonte personalizada, ou mesmo alterar o estilo da aplicação.

Testando a aplicação

Agora, basta executar o comando npm run dev e acessar a aplicação no navegador. Você verá que a aplicação será instalada, e que o componente de instalação será exibido. Se você atualizar a aplicação, verá que o Service Worker será atualizado, e que a aplicação será recarregada.

Também, se você acessar a aplicação no navegador, e clicar no botão de instalação, verá que a aplicação será instalada na tela inicial do dispositivo.

Mais adiante, vamos publicar essa aplicação e gerar um pacote para instalação em dispositivos móveis.

< Criando a aplicação Vue Deploy da aplicação >