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