Atualizando seu app React Native 👨🏾‍💻
Tags: reactnative, upgrade, tutorial, tooling
Published: 2022-11-15 14:28:13

Atualizar um projeto feito em React Native nunca é uma tarefa fácil, principalmente se você já não atualiza seu app a alguns anos, questões como mudanças na arquitetura e no core do RN podem tornar a sua vida bem dificil.

Porém existem ferramentas essenciais que podem facilitar muito a sua vida na hora do update, nesse artigo vamos falar um pouco sobre elas. Bora?

### Decidindo a nova versão:

Primeiramente analise a sua versão atual, se o seu projeto está na versão 0.60 por exemplo, precisamos fazer um questionamento, vale a pena ir direto para a 0.70 que conta diversas mudanças na arquitetura do core do React Native?

Nessas horas vale seguir o exemplo do Jason e ir por partes 🔪, o seguinte link: https://reactnative.dev/versions é uma lista com a documentação e o changelog de todas as atualizações do React Native versão a versão, da 0.60 até a 0.69.

Então recomendo que você leia o que mudou, o que você vai precisar alterar para que o seu app continue funcionando normalmente, e assim, evite dores de cabeça atualizando para uma versão com break changes grandes demais.

### Requerimentos e Políticas das Lojas:

Outra questão importante são os requerimentos das lojas, por exemplo, esse ano a Play Store emitiu um comunicado aonde os apps deveriam ter um nivel de api 31 como requerimento minimo para fazer upload de apps na loja.

Isso acontece todo ano, mudanças nesses requerimentos e políticas, então o ideal é estar sempre atualizando o seu aplicativo para versões mais recentes e estáveis.

Link do comunicado da Play Store: https://developer.android.com/google/play/requirements/target-sdk

### Meus 10 centavos:

Não deixe o seu projeto ficar defasado em relação aos requerimentos das lojas, o pior cenário possível de um update é você ter que fazer as pressas porque senão você ou a sua empresa não consegue lançar novas versões nas lojas.

É seu dever como desenvolvedor(a) mobile sempre acompanhar esses requerimentos, e antecipar updates para que o seu projeto fique sempre disponível de subir nas lojas.

Fica a dica 😉

---

### Atualizando

Por fim, após seguir os tópicos anteriores e descobrir a versão mais correta e lógica para atualizar seu app, é hora de botar a mão na massa. Para isso existem algumas ferraementas que irão te auxiliar MUITO!

#### React Native Upgrader:

É uma ferramenta do próprio React Native que faz uma análise do seu projeto e atualiza a versão automaticamente. O comando é o seguinte e deve ser digitado no terminal do seu projeto:

`npx react-native upgrade 0.61.0-rc.0`

Embora pareça uma abordagem prática e rápida, isso raramente é o suficiente, projetos tendem a ser complexos com libs externas e internas, com várias dependências que por vezes ficam icompatíveis e que fazem com que essa abordagem automática nem sempre funcione.

Link para o site: https://reactnative.dev/docs/upgrading

#### React Native Upgrade Helper:

É uma ferramenta incrível criada pela comunidade que pega como input 2 versões do React Native, e lista cada mudança necessária para fazer o update de forma manual.

Recomendo que tire alguns minutos, leia as mudanças de uma versão para outra e então comece a editar o seu projeto.

O aprendizado sobre os arquivos nativos do React Native é gigante quando precisamos fazer tarefas desse tipo.

![react native upgrade helper](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t141l7o3bvyt8upw7098.png)

#### Dependency Management (rnx-kit):

Lembra que eu falei sobre várias dependências que com o tempo acabam ficando incompatíveis com a versão que você quer atualizar e que ao atualizar, irão gerar problemas no build do seu projeto?

Entonces, essa lib `rnx-kit` vai ajudar muito a identificar quais libs são essas e como atualizar elas para a versão compatível.

E vai por mim, fazer isso manualmente é algo bem massivo, envolve muita leitura de changelog e tentativa e erro para achar uma versão no meio do caminho que é compativel com o seu projeto. Tenho pesadelos com `expo-unimodules` até hoje 😭

![dependency managment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4u58idvv3dg7gnoe4u0n.png)

---
Bom pessoal, nesse artigo eu trouxe algumas ferramentas e reflexões que foram necessárias para mim quando precisei fazer um update do meu projeto em React Native.

Eu espero que essas informações consigam alcançar alguem que estaja com a mesma missão em mãos e que precise de um norte.

No mais um abraço, até a próxima 👋