# PWA Quick Start Guide - Angular IDT App ## šŸš€ Comandos Essenciais ### Desenvolvimento PWA Local ```bash # 1. Build de produção (obrigatório para Service Worker) npm run build:prafrota # 2. Servir com HTTPS (obrigatório para PWA) npx http-server dist/idt_app -p 8080 --ssl # 3. Acessar aplicação # Chrome: https://localhost:8080 # Firefox: https://127.0.0.1:8080 ``` ### Testes de Funcionalidade #### Testar Prompt de Instalação ```bash # 1. Abrir DevTools (F12) # 2. Application > Manifest > verificar se estĆ” vĆ”lido # 3. Application > Service Workers > verificar se estĆ” registrado # 4. Aguardar prompt automĆ”tico ou usar debug panel ``` #### Testar Updates AutomĆ”ticos ```bash # 1. Build inicial npm run build:prafrota # 2. Servir aplicação npx http-server dist/idt_app -p 8080 --ssl # 3. Fazer alteração no código (ex: console.log no app.component.ts) # 4. Build novamente npm run build:prafrota # 5. Atualizar pĆ”gina - notificação de update deve aparecer ``` ## šŸ”§ ConfiguraƧƵes Importantes ### Debug Mode No `PWANotificationsComponent`, debug desabilitado por padrĆ£o: ```typescript // šŸ”§ DEBUG PWA - Painel de desenvolvimento // showDebugInfo = true; // āœ… Habilitar para desenvolvimento/testes showDebugInfo = false; // āœ… Desabilitado para produção (padrĆ£o) ``` **Para reativar o debug:** 1. Descomentar `showDebugInfo = true` 2. Comentar `showDebugInfo = false` 3. Rebuild da aplicação ### Service Worker em Desenvolvimento ```typescript // app.config.ts - jĆ” configurado provideServiceWorker("ngsw-worker.js", { enabled: !isDevMode(), // Apenas em produção registrationStrategy: "registerWhenStable:30000", }) ``` ## šŸ“± VerificaƧƵes de Compatibilidade ### Chrome/Edge (Desktop e Android) - āœ… Prompt de instalação automĆ”tico - āœ… NotificaƧƵes de update - āœ… ƍcone na barra de tarefas/home screen ### Firefox - āœ… Service Worker funciona - āš ļø Prompt de instalação limitado - āœ… Updates funcionam normalmente ### Safari (iOS) - āœ… Add to Home Screen manual - āš ļø Prompt automĆ”tico nĆ£o suportado - āœ… Service Worker com limitaƧƵes ## šŸ› Troubleshooting ### Service Worker nĆ£o registra ```bash # Verificar se build Ć© de produção ng build --configuration=production # Verificar no DevTools > Application > Service Workers # Deve aparecer "ngsw-worker.js" com status "Activated" ``` ### Prompt de instalação nĆ£o aparece ```typescript // Verificar no console do browser console.log('PWA Suportado:', pwaService.isPWASupported()); console.log('Pode Instalar:', pwaService.canInstall); // Verificar critĆ©rios PWA no Lighthouse // DevTools > Lighthouse > Progressive Web App audit ``` ### Updates nĆ£o detectados ```typescript // ForƧar verificação manual via debug panel ou console await pwaService.checkForUpdate(); // Verificar no DevTools > Application > Service Workers // Deve mostrar nova versĆ£o em "Waiting" ou "Installing" ``` ### Cache nĆ£o funciona offline ```bash # Verificar configuração ngsw-config.json # Testar offline: DevTools > Network > Offline checkbox # Recursos essenciais devem carregar do cache ``` ## šŸ“Š MĆ©tricas de Sucesso ### Lighthouse PWA Score - **Target**: 90-100/100 - **Comando**: DevTools > Lighthouse > Progressive Web App ### CritĆ©rios Essenciais - āœ… HTTPS (produção) ou localhost - āœ… Manifest vĆ”lido com Ć­cones - āœ… Service Worker registrado - āœ… Offline fallback page - āœ… Viewport meta tag - āœ… Theme color definido ## šŸ” URLs de Teste ### Desenvolvimento Local - **HTTP**: `http://localhost:4200` (desenvolvimento normal) - **HTTPS**: `https://localhost:8080` (PWA testing) ### Validação Externa - **Manifest Validator**: https://manifest-validator.appspot.com/ - **PWA Tester**: https://www.webpagetest.org/ - **Lighthouse CI**: Integração para CI/CD ## šŸ“‹ Checklist de Deploy ### Antes do Deploy - [ ] Build de produção executado - [ ] Service Worker registrado localmente - [ ] Manifest vĆ”lido - [ ] ƍcones em todos os tamanhos (72px-512px) - [ ] HTTPS configurado no servidor - [ ] Cache headers configurados ### Após Deploy - [ ] Lighthouse audit score > 90 - [ ] Prompt de instalação funciona - [ ] Updates automĆ”ticos funcionam - [ ] Funciona offline (recursos bĆ”sicos) - [ ] ƍcones corretos na home screen - [ ] Splash screen personalizada ## šŸš€ Performance Tips ### Bundle Size - **PWA Impact**: ~20kB total - **Service Worker**: ~15kB (Angular SW) - **PWA Service + Component**: ~5kB ### OtimizaƧƵes ```typescript // Lazy loading para PWA components loadComponent: () => import('./pwa-notifications.component').then(m => m.PWANotificationsComponent) // Service Worker lazy registration registrationStrategy: "registerWhenStable:30000" ``` --- **Status**: āœ… PWA Totalmente Implementado **Última atualização**: Janeiro 2025