Skip to content

ADR-010: Upgrade Contínuo e Agressivo de React Native

Status: Política ativa Commits: 12+ commits de upgrade entre 0.74 e 0.84 (0.74 → 0.75 → 0.76 → 0.77 → 0.78 → 0.79 → 0.80 → 0.81 → 0.82 → 0.83 → 0.84) Tipo: ADR Retroativo


Contexto

React Native evolui rapidamente, com novas minor versions a cada ~3-4 meses. Ficar para trás implica acumular breaking changes e perder acesso a libs modernas (Fabric, Bridgeless, etc.).

Decisão

Adotar uma política de upgrade proativo: atualizar o React Native em cada nova minor version estável, sem esperar acumulação de versões.

Alternativas Consideradas

  • Atualizar apenas a cada major (ex.: a cada ano) — descartado: breaking changes acumulados são mais custosos
  • Manter versão LTS — React Native não tem ciclo LTS formal
  • Travar em versão estável conhecida — descartado: impossibilita uso de libs novas (unistyles 3.x requer RN 0.75+)

Consequências

  • 🟢 App sempre com APIs modernas do React Native (New Architecture, Bridgeless)
  • 🟡 Alto custo de manutenção — cada upgrade exige atualização de libs nativas (Podfile, Gradle)
  • 🟢 Bugs do React Native são corrigidos rapidamente ao atualizar
  • 🟡 Risco de regressão em cada upgrade — necessário testar em iOS, Android e Web
  • 🟢 Evita acúmulo de dívida técnica de infraestrutura
  • 🟡 libs instáveis (ex.: FlashList v2, libs de reordenação) são descobertas mais rápido — custo visível mas aceitável