ADR-002: styled-components → react-native-unistyles
Status: Implementado Data (estimada): feature/unistyles-14 → master (commits
2afc9153,b6fb2b78) Tipo: ADR Retroativo
Contexto
O app usava styled-components como sistema de estilos. Com a expansão para suporte multi-plataforma (iOS, Android, Web), dark theme e Material You, a solução apresentou limitações de performance e de adaptação responsiva.
Decisão
Migrar completamente para react-native-unistyles v3, que oferece:
- Tokens de design tipados (temas)
- Breakpoints responsivos nativos
- Suporte a múltiplos temas sem re-renders
- Compatibilidade com react-native-web
Alternativas Consideradas
StyleSheet.createpuro — descartado por falta de temas e breakpointstamagui— avaliado implicitamente; descartado provavelmente por sobrecarga de build- Manter
styled-components— descartado por performance em listas longas
Consequências
- 🟢 Melhor performance em listas de músicas (sem re-renders de tema)
- 🟢 Sistema de temas unificado (CLARO, ESCURO, CLARO_LEGADO, CLARO_ALTERNATIVO)
- 🟡 Breakpoints legacy (
xs,sm,md) ficaram deprecated na migração — ainda existem no código - 🟢 Material You (#55) implementado sobre o novo sistema de temas