Pular para o conteúdo principal

Fluxo e Distribuição

Última atualização: 6 de novembro de 2025

Visão Geral

Este documento descreve a estratégia completa de versionamento e distribuição dos aplicativos mobile da Vidya, contemplando tanto o Google Play Store (Android) quanto a Apple App Store (iOS). O objetivo é garantir lançamentos seguros, controlados e com capacidade de rollback rápido em caso de problemas.


✅ Estratégia Geral

Princípios Fundamentais

  • Um único app e uma única versão para todos os clientes
  • Diferenças entre clientes são feitas via configurações, feature flags e temas (não via versões diferentes)
  • Versões são disponibilizadas de forma gradual para reduzir riscos
  • Processo consistente entre Android e iOS, respeitando as particularidades de cada plataforma

Benefícios da Estratégia

BenefícioDescrição
Menos riscoRollout gradual detecta problemas antes de afetar todos
Menos retrabalhoTodos clientes na mesma versão
Suporte mais fácilUma versão = comportamento padronizado
Atualização contínuaOs clientes sempre recebem melhorias no tempo certo

🤖 Fluxo de Publicação - Android (Google Play Store)

1) Teste Interno

Quem recebe:

  • Time de implantação + suporte

Objetivo:

  • Validar se o app funciona corretamente

Disparo:

  • Toda nova versão gerada → vai automaticamente para Teste Interno

Características:

  • Disponibilização imediata (sem revisão do Google)
  • Ambiente controlado apenas para equipe interna

2) Teste Fechado

Quando usar:

  • Mudanças grandes em fluxo
  • Alterações em áreas sensíveis (login, checkout, pedidos, etc.)
  • Validação de novas funcionalidades

Quem recebe:

  • Pequeno grupo de usuários selecionados

Observação:

  • Se o update for simples → pode pular essa etapa

3) Teste Aberto (Beta controlado por empresa)

Quem recebe:

  • 1 representante por empresa (Pessoa responsável pela validação final antes da produção)

Objetivo:

  • Validar funcionamento na operação real, antes da massa de usuários

Configuração:

  • Criar lista de testers com e-mail dos representantes
  • Enviar convite via Google Play Console

4) Produção (Lançamento Gradual)

Processo:

  1. Publica a versão nova como rollout gradual
  2. Começa em 10–20%
  3. Monitora erros/crashes
  4. Se ok → aumenta para 50%
  5. Se ok → 100%

Monitoramento:

  • Acompanhar métricas de crash
  • Verificar feedback de usuários
  • Analisar logs de erro

🔙 Rollback Android

Se a versão está em rollout:

  1. interromper o rollout
  2. Automaticamente o Google Play volta a distribuir a versão anterior estável

Se a versão já estava em 100%:

  1. Play Console → Produção
  2. Versões anteriores
  3. Selecione a versão anterior
  4. Promover para Produção
  5. Escolha porcentagem (20% → 100%)
Facilidade de Rollback

Não precisa fazer novo build, nem reenviar APK. Apenas promove a versão estável anterior.


🍎 Fluxo de Distribuição - iOS (TestFlight + App Store)

1) TestFlight – Grupo Interno

Quem recebe:

  • Time de implantação + suporte

Características:

  • Não precisa aguardar revisão da Apple (build é liberado quase imediatamente)
  • Permite testar apenas dentro da equipe

Objetivo:

  • Garantir que o app está funcionando corretamente antes de enviar para testers externos

Disparo:

  • Toda vez que gerar uma nova versão → enviar para o grupo interno automaticamente

2) TestFlight – Grupo Externo (Beta Controlado por Cliente)

Quem recebe:

  • 1 representante por empresa (gerente, supervisor, power user)

Atenção:

  • Para o grupo externo, a Apple precisa aprovar o build (geralmente 1 a 48 horas)
  • Depois do primeiro build aprovado, os próximos são aprovados mais rápido

Objetivo:

  • Validar que o app funciona no mundo real, antes de liberar para todos

Como organizar:

  • Criar um grupo de testers externo com representantes definidos
  • Enviar convites via link público do TestFlight ou e-mail

3) App Store – Lançamento Gradual (Phased Release)

Processo:

  1. Enviar para App Review
  2. Ao aprovar → usar "Phased Release" (Liberação gradual)

Configuração recomendada:

  • Começa com 1%
  • Depois 2%
  • Depois 5%
  • Depois 10%
  • Depois 20% → 50% → 100%
Progressão Automática

A Apple faz a progressão automática diariamente, MAS você pode pausar/mudar quando quiser.


🔙 Rollback iOS

Se estiver em phased release (gradual):

  1. Basta pausar a liberação → isso congela a nova versão
  2. Todos novos usuários continuam recebendo a versão anterior

Se já estava 100% liberado:

Limitação do iOS

Reativar versão anterior NÃO É PERMITIDO pela Apple (ela bloqueia rollback direto)

Solução:

  1. Faça um rebuild da versão anterior (mesmo código)
  2. Suba novamente como "nova versão" (ex.: 1.8.2 → retroceder para 1.7.5 → vira 1.7.6)
  3. Envie para revisão (geralmente rápida, pois já foi aprovada antes)
  4. Liberar novamente (gradual)
Diferença entre Plataformas

iOS não permite promover build anterior igual ao Android — mas o Phased Release evita o impacto.


📊 Fluxogramas Visuais

Fluxo Android

Commit → CI Build → Teste Interno (implantação + suporte)

Teste Fechado (opcional - mudanças críticas)

Teste Aberto (1 representante por empresa)

Produção → Rollout Gradual (10% → 50% → 100%)

Se problema → Interromper rollout → Volta versão anterior

Se já estava 100% → Promover versão anterior → Rollout gradual

Fluxo iOS

Commit → CI Build → TestFlight Interno (implantação + suporte)

TestFlight Externo (1 tester por empresa)

App Store → Lançamento Gradual (Phased Release)

Se problema → Pausar rollout → Ficar na versão antiga

Se já estava 100% → Rebuild da versão anterior → Re-submeter

🔥 Dicas e Boas Práticas

Para TestFlight (iOS)

ItemRecomendação
Nome dos grupos"Interno" e "Beta Clientes"
Notas de versãoCurta, clara e com foco em o que testar
LogsIntegrar com Firebase Crashlytics ou similar
Tempo de betaIdeal de 2 a 5 dias antes da App Store

Para Play Store (Android)

ItemRecomendação
Rollout inicialComeçar com 10-20% para detectar problemas
MonitoramentoAcompanhar crashes e ANRs antes de aumentar %
Tempo entre fases24-48h entre cada aumento de porcentagem
ComunicaçãoInformar representantes sobre novidades antes do beta

🎯 Comparativo entre Plataformas

AspectoAndroid (Play Store)iOS (App Store)
Revisão teste interno❌ Não requer❌ Não requer
Revisão teste externo❌ Não requer✅ Requer (1-48h)
Rollout gradual✅ Configurável manualmente✅ Phased Release automático
Rollback direto✅ Possível (promover versão antiga)❌ Requer rebuild
Tempo de aprovaçãoInstantâneo (sem revisão)1-48h (primeira vez), depois mais rápido
Controle granular✅ Escolha exata de %⚠️ Progressão automática (pausável)

📝 Checklist de Lançamento

Antes de publicar:

  • Código revisado e aprovado
  • Testes automatizados passando
  • Build gerado com sucesso
  • Testado internamente (implantação + suporte)
  • Notas de versão documentadas
  • Representantes avisados sobre o beta

Durante o beta:

  • Acompanhar feedback dos representantes
  • Monitorar crashes e erros
  • Validar funcionalidades críticas
  • Documentar issues encontradas

Antes de ir para produção:

  • Beta aprovado pelos representantes
  • Sem crashes críticos
  • Métricas de performance OK
  • Plano de rollback preparado
  • Equipe de suporte alertada

Durante rollout gradual:

  • Monitorar crashes em tempo real
  • Acompanhar feedback de usuários
  • Verificar métricas de adoção
  • Preparado para pausar/reverter se necessário

🚨 Procedimentos de Emergência

Se detectar problema crítico:

  1. Imediatamente pausar o rollout
  2. Avaliar a gravidade do problema
  3. Decidir: fix rápido ou rollback?
  4. Se rollback: seguir procedimento específico da plataforma
  5. Comunicar a equipe e usuários afetados
  6. Documentar o incidente
  7. Planejar correção

Comunicação de incidente:

  • Informar gerência imediatamente
  • Avisar equipe de suporte
  • Se necessário, comunicar clientes afetados
  • Documentar cronologia e ações tomadas

📚 Referências