Case: Sleep O'Clock (Relógio Noturno & Sleep Trainer)

O Sleep O'Clock é um aplicativo móvel minimalista de cabeceira desenvolvido em Flutter, projetado para resolver simultaneamente dois desafios da rotina noturna: a saúde do sono adulto (minimização do impacto de luzes no ciclo circadiano) e a educação do sono infantil (Sleep Trainer sem textos para crianças pré-escolares), com salvaguardas técnicas avançadas para hardware de telas modernas.

Engenharia & Arquitetura de Software

  • Clean Architecture + DDD: Estrutura em camadas com separação rigorosa entre domínio, casos de uso (CheckWakeUpConditionUseCase), dados e interface. A feature central de relógio gerencia seu próprio contêiner isolado de injeção de dependências (clock_injection_container.dart via get_it), impedindo acoplamento desnecessário no core.
  • Gerenciamento de Estado Reativo (BLoC): Utilização do flutter_bloc com eventos imutáveis para alternância atômica de modos (Adulto/Infantil, Dia/Noite, Modo Vermelho), controle de brilho e reações a temporizadores de alta precisão.
  • Tratamento Funcional de Erros: Adoção estrita de programação funcional com dartz (Either<Failure, T>), garantindo confiabilidade ininterrupta durante toda a madrugada sem falhas silenciosas ou crashes.
  • Navegação Declarativa: Configurado sob go_router, permitindo transições limpas e prontas para deep linking.

Desafios de Hardware-Aware UX & Inovação

Diferente de relógios de cabeceira comuns, o Sleep O'Clock foi construído considerando as restrições físicas dos displays modernos e a biologia humana:

  • Proteção Anti Burn-in Inteligente (OLED/AMOLED): Manter displays ligados a noite toda com elementos de alto contraste provoca retenção permanente de imagem (burn-in). Desenvolvi um algoritmo de deslocamento imperceptível com AnimatedAlign que recalcula micro-coordenadas espaciais a cada minuto, redistribuindo o desgaste dos pixels sem causar distração perceptível aos olhos no escuro.
  • Modo Vermelho (Preservação de Melatonina): Ativado instantaneamente através de toque duplo (double-tap), o app suprime os comprimentos de onda azuis e esverdeados, alternando para espectros vermelhos suaves que não interrompem a síntese da melatonina nem agridem a visão adaptada à penumbra.
  • Sleep Trainer Infantil (UX Zero-Texto): Para crianças de 2 a 5 anos que ainda não aprenderam a ler as horas, o aplicativo atua como orientador circadiano. Exibe um estado noturno solene (fundo escuro, Lua suave e estrelas) e realiza uma transição fluida no horário programado para o estado solar (Sol sorridente e nuvens), comunicando à criança de forma intuitiva e visual se ainda é hora de dormir ou se já pode levantar.
  • Gestos Naturais & Wakelock Ativo: Controle dinâmico de brilho via arrasto vertical na tela (de 5% a 100%), imersão total com ocultação de barras de navegação do sistema e manutenção estável da tela ativa durante toda a noite via wakelock_plus.
  • Telemetria de Produto: Integração anônima com Firebase Analytics (com.jhh.solutions.sleep_oclock) para avaliação de retenção e preferências de modo.

Status: Produto em evolução contínua — Épico 1 (Rotina de Sono Infantil e Anti Burn-in) entregue e validado pela JHH Solutions.