Skip to content

feat(scanner): POC funcional (UI + leitura nativa + histórico)#3

Merged
vagnerleitte merged 11 commits intomainfrom
feat/scanner-ui
Sep 19, 2025
Merged

feat(scanner): POC funcional (UI + leitura nativa + histórico)#3
vagnerleitte merged 11 commits intomainfrom
feat/scanner-ui

Conversation

@vagnerleitte
Copy link
Owner

POC de Scanner — Ionic + Capacitor

Esta PR entrega uma POC funcional do app de leitura de QR/Barcodes com foco em simplicidade e base sólida para evoluir amanhã com reorganização por design atômico.

✨ Visão Geral

  • Tela Scanner (UI+UX): header, overlay com moldura tracejada, watermark do logo, FAB central, barra de ações inferior.
  • Leitura nativa: integração com @capacitor/barcode-scanner@^2.1.0 (API CapacitorBarcodeScanner.scanBarcode).
  • Histórico: persistência via @capacitor/preferences, listagem com copy/limpar.
  • Permissões: Android (CAMERA) e iOS (NSCameraUsageDescription).
  • Tema: tokens refinados (cores, surfaces, elevação, scan-outline) e dark mode.
  • Build iOS: melhorias para arquivar em ambiente sem device support atualizado.

🔧 Alterações Principais

  • Scanner UI
    • src/app/scan/scan.page.{ts,html,scss}
    • FAB inicia/cancela fluxo local; resultado salvo no histórico.
    • Watermark do logo (src/assets/logo.png) e overlay com --scan-outline.
  • Serviço de leitura
    • src/app/services/qr.ts: uso do CapacitorBarcodeScanner.scanBarcode(...) (retorna ScanResult).
  • Histórico
    • src/app/services/storage.ts: salva {content, timestamp} com Preferences.
    • src/app/history/*: lista, limpa e copia.
  • Navegação / Tabs
    • src/app/tabs/*: imports corrigidos (standalone) para IonTabs/TabBar/TabButton/Icon/Label.
  • Tema / Estilos
    • src/theme/variables.scss: tokens completos (primary/secondary/tertiary/status), --surface, --surface-2, --elevation-1, --scan-outline.
    • src/global.scss: suporte a background transparente durante o scan quando necessário.
  • Permissões nativas
    • Android: android/app/src/main/AndroidManifest.xml — CAMERA + features opcionais.
    • iOS: ios/App/App/Info.plistNSCameraUsageDescription.
  • Logo / Splash / Favicon
    • Watermark e favicon usam src/assets/logo.png.
    • Script scripts/apply-splash.mjs para copiar o logo às pastas nativas.
  • Build / Patch iOS
    • build.sh: usa npm run build, aplica patch iOS, -destination 'generic/platform=iOS' no archive.
    • scripts/patch-cap-ios.mjs + postinstall: corrige MSEC_PER_SEC (→ 1000.0) e return no getter do Encoder em @capacitor/ios (hotfix em node_modules para viabilizar a POC).

🧪 Como Validar

  • Web (UI): npm start e abrir /scan (leitura nativa não funciona no browser).
  • Android / iOS:
    1. npm run native:sync
    2. npx cap run android ou npx cap run ios
    3. Permitir acesso à câmera quando solicitado.

📦 Build iOS (CI / Mac na nuvem)

  • bash build.sh
  • Usa destino genérico do iOS (não depende do device plugado) e aplica patches conhecidos do Capacitor.

✅ Pronto para Merge

  • Mantive a POC simples e isolada. Você pode mesclar quando quiser.

▶️ Próximos Passos (amanhã)

  • Reorganizar páginas e componentes obedecendo o Design Atômico (atoms → molecules → organisms → templates → pages).
  • Implementar ações pendentes na barra inferior (Flash, Gallery, Create).
  • Agrupar histórico por período e ícones por tipo de conteúdo.
  • Gerar assets nativos definitivos com @capacitor/assets.

…Header com título e ícone de settings\n- Overlay central com moldura tracejada usando --scan-outline\n- FAB central rosa com ícone de scan\n- Barra de ações inferior (Gallery, Flash, Create, History) usando --surface/--surface-2 e --elevation-1
… para usar assets/logo.png\n\nObs.: certifique-se de colocar o arquivo do logo em src/assets/logo.png (1024x1024 recomendado para melhor qualidade).
…tir de src/assets/logo.png e instruções de sync
…ce e salva no histórico; atalho para History
…in @capacitor/barcode-scanner v2) em vez da API antiga da comunidade
…ona stubs (openGallery, toggleFlash, createCode, goSettings)
…eDescription no iOS Info.plist para uso da câmera no scanner
…os imports do standalone para resolver NG8001
…ric/platform=iOS') para evitar dependência do device e incompatibilidade de device support
@vagnerleitte vagnerleitte merged commit efb411e into main Sep 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments