Estamos buscando um Desenvolvedor Mobile Sênior com vasta experiência em React Native e TypeScript para assumir um projeto já em andamento, hospedado no GitHub. O profissional será responsável por tarefas críticas que incluem a refatoração da camada nativa de permissões de hardware, visando corrigir falhas existentes no scanner de câmera do aplicativo. Além disso, o escopo principal envolve a implementação de uma funcionalidade de In-App WebView nativa (client-side) que permitirá a injeção de JavaScript para realizar DOM scraping. O objetivo é capturar de forma automatizada a lista de itens, quantidades e valores de cupons fiscais (nfc-e) diretamente do portal móvel da sefaz-df. Após a captura, a tela deverá ser fechada e o carrinho de compras do usuário atualizado localmente, garantindo um custo zero de API para esta funcionalidade. Detalhes técnicos aprofundados e diretrizes rígidas de arquitetura serão fornecidos no escopo completo do projeto.
🎯 escopo detalhado do trabalho e requisitos técnicos:
1. Ajuste de permissões de câmera (nativo):
corrigir os manifestos nativos (
androidmanifest.xml e
Info.plist), garantindo que o aplicativo realize o preflight check de permissões de hardware antes de invocar o sensor da câmera para eliminar os crashes atuais. Integração via bibliotecas estáveis (ex: react-native-vision-camera ou expo-barcode-scanner).
2. INTEGRAÇÃO de in-app webview (bypass de cloudflare/waf):
implementar o componente 'react-native-webview' rodando 100% no client-side (dispositivo do usuário). É PROIBIDO o uso de iframes ou proxies em backend. Ao digitar a Chave ou ler o QR Code, o app deve abrir a WebView direcionando para:
https://fazenda.df.gov.br[CHAVE_DE_44_DIGITOS]
O usuário irá resolver o Captcha e interagir com o portal de forma nativa e visível.
3. EXTRAÇÃO de dados via dom scraping (injeção de javascript):
desenvolver um script otimizado para ser disparado através da propriedade 'injectjavascript' da webview assim que a página final com a lista de itens da sefaz-df for renderizada. O script deve extrair a Descrição do Produto, Quantidade, Unidade de Medida e Valor Unitário. Os dados devem ser transmitidos via window.ReactNativeWebView.postMessage() em formato JSON estruturado, fechando a WebView automaticamente e populando o carrinho de compras local.
⚠️ IMPORTANTE: Não serão aceitas propostas que sugiram processamento de imagem/OCR via servidores backend (como Express/Node), uso de
Tesseract.js ou consumo de APIs de IA (como Gemini/OpenAI) para essa leitura. O foco é engenharia front-end client-side limpa, escalável e de custo zero de infraestrutura.
Prazo de Entrega: Não estabelecido