1. Estilos e UI:

    • O StyleSheet padrão do React Native é uma escolha sólida para estilos simples e performance, mas você também pode considerar bibliotecas como Styled Components ou styled-system se preferir abordagens mais próximas do CSS.
    • Para componentes UI, o shadcn/ui é uma opção, mas existem muitas outras bibliotecas populares, como React Native Elements, UI Kitten, NativeBase, e Paper (Material Design).
  2. Requisições HTTP:

    • Ambos Axios e fetch são boas escolhas. O Axios é mais fácil de usar, tem uma API mais simples e suporta facilmente a criação de instâncias globais com configurações personalizadas. O fetch é uma API nativa do navegador, portanto, não é necessário importar bibliotecas adicionais.
  3. Navegação:

    • O React Navigation é uma escolha popular para a navegação em React Native. No entanto, se você estiver usando o Expo, pode considerar o Expo-Router, que é uma alternativa simplificada. A escolha entre eles depende das necessidades específicas do seu aplicativo.
  4. Requisições HTTP e Estado Global:

    • O uso de useEffect para requisições HTTP é uma abordagem comum e adequada. Quanto ao estado global, você pode considerar React Context API, Redux, ou até mesmo Mobx para gerenciar o estado global da sua aplicação. A escolha depende da complexidade do seu aplicativo e das preferências da equipe.
  5. Dados Offline:

    • Para dados que precisam ser usados offline, você pode considerar o AsyncStorage (uma API para armazenamento de chave-valor), bancos de dados locais como o SQLite, ou uma biblioteca de gerenciamento de estado que suporta armazenamento offline, como o Redux Persist.
  6. Estrutura e Padrões:

    • Ao desenvolver um projeto React Native, é uma boa prática seguir padrões como a arquitetura Flux ou Redux para gerenciamento de estado, dividir seu código em componentes reutilizáveis, seguir o princípio DRY (Don't Repeat Yourself) e manter a organização do projeto em mente para facilitar a manutenção.

Poxa que legal Daniel, obrigado por contribuir com as minhas duvidas, estou vendo que é escenssial o uso do Redux no RN, existem mais alguns outros principios além do DRY, para que eu consiga realizar uma aplicação mais escalavel possivel ? Ja dei uma boa olhada em composition pattern, é uma ideia incrivel para components dinamicos