Instruções PWA - Free-for-Dev
Este projeto foi convertido em uma Progressive Web App (PWA), permitindo que seja instalado como um aplicativo nativo em dispositivos móveis e desktop.
📋 Arquivos Criados
manifest.json: Configuração da PWA (nome, ícones, cores, etc.)sw.js: Service Worker para funcionalidade offlinegenerate_pwa_icons.py: Script para gerar ícones PWAicons/: Diretório com todos os ícones gerados
🚀 Como Usar
1. Gerar Ícones
Se você ainda não gerou os ícones, execute:
python generate_pwa_icons.py [caminho_para_imagem]
Exemplos:
# Usar uma imagem existente
python generate_pwa_icons.py icon-192.png
# Usar qualquer imagem (recomendado: 512x512px ou maior)
python generate_pwa_icons.py logo.png
# O script tentará encontrar automaticamente uma imagem padrão
python generate_pwa_icons.py
O script irá:
- Gerar todos os tamanhos necessários (16x16 até 512x512)
- Criar versões maskable para melhor compatibilidade
- Gerar favicon.ico
- Salvar tudo no diretório
icons/
2. Testar a PWA
- Servir via HTTP/HTTPS: PWAs não funcionam com
file://- Use um servidor local (ex:
python -m http.server 8000) - Ou hospede em um servidor web
- Use um servidor local (ex:
-
Abrir no navegador: Acesse
http://localhost:8000/free-for-dev.html - Verificar no DevTools:
- Abra DevTools (F12)
- Vá em “Application” > “Manifest” para verificar o manifest
- Vá em “Application” > “Service Workers” para verificar o SW
- Instalar a PWA:
- Chrome/Edge: Clique no ícone de instalação na barra de endereços
- Firefox: Menu > “Instalar Site como Aplicativo”
- Mobile: Menu do navegador > “Adicionar à Tela Inicial”
🔧 Configurações
Personalizar Cores
Edite manifest.json:
{
"theme_color": "#ff5722", // Cor da barra de status
"background_color": "#f9f9f9" // Cor de fundo ao carregar
}
Personalizar Nome
Edite manifest.json:
{
"name": "Seu Nome Aqui",
"short_name": "Nome Curto"
}
Atualizar Service Worker
Se você modificar o sw.js, os usuários precisarão atualizar:
- O navegador detectará automaticamente
- Ou force atualização: DevTools > Application > Service Workers > “Update”
📱 Funcionalidades PWA
✅ Implementado
- ✅ Instalação como app
- ✅ Funcionalidade offline básica
- ✅ Cache de recursos estáticos
- ✅ Ícones em todos os tamanhos
- ✅ Manifest completo
- ✅ Service Worker funcional
- ✅ Atualização automática
🔄 Estratégia de Cache
- Recursos estáticos: Cache First (HTML, CSS, manifest)
- APIs externas: Network First (dados do GitHub)
- Offline: Exibe página cached se disponível
🐛 Troubleshooting
Service Worker não registra
- Verifique se está servindo via HTTP/HTTPS (não
file://) - Verifique o console do navegador para erros
- Limpe o cache: DevTools > Application > Clear Storage
Ícones não aparecem
- Verifique se o diretório
icons/existe e contém os arquivos - Verifique os caminhos no
manifest.json - Verifique o console para erros 404
PWA não instala
- Verifique se o manifest.json é válido (sem erros de JSON)
- Verifique se há pelo menos um ícone 192x192 e 512x512
- Verifique se está usando HTTPS (ou localhost para desenvolvimento)
📚 Recursos
📝 Notas
- O Service Worker cacheia recursos estáticos por 30 minutos
- Dados do GitHub são sempre buscados online (não cacheados)
- A PWA funciona melhor com conexão, mas pode exibir dados cached offline
- Ícones maskable garantem melhor aparência em diferentes dispositivos