Desenvolvimento Mobile: React Native CLI vs Expo ,quais as diferenças?
Tags: reactnative, beginners, programming
Published: 2023-03-27 18:56:46

Ao iniciar sua jornada no desenvolvimento Mobile, utilizando React Native, os desenvolvedores serão confrontados com a decisão de usar o React Native CLI ou o Expo. Neste artigo nós iremos analisar as diferenças existentes entre os diferentes caminhos que um desenvolvedor pode recorrer na criação de sua aplicação.

Ele foi pensado para os que querem saber a diferença entre eles,logo, não teremos um veredito sobre "qual dos dois é o melhor". Ao final, sinta-se a vontade para decidir qual dos dois mais se encaixa com seu projeto pessoal, até mesmo tendo ciência e poder de escolha entre essas opções.


**React Native CLI**

O React Native CLI é a maneira padrão de criar aplicativos React Native. Seria uma forma mais "nativa" de construir um aplicativo, permitindo acesso direto às bibliotecas nativas do dispositivo. Isso significa que você terá _controle total sobre o projeto_ e poderá ajustá-lo para atender às suas necessidades localmente. Nós podemos iniciar um projeto usando o código a seguir:

```
npx react-native init NomeProjeto
```

Entre seus pós e contras estão:

**PRÓS:**

- _Maior controle_: Nós sabemos que aplicativos Android são desenvolvidos usando Java ou Kotlin e aplicativos IOS são desenvolvidos usando Objective-C e Swift de maneira Nativa. No React Native CLI nós podemos chegar o mais próximo disso ,você pode adicionar módulos nativos escritos em Java/Objective-C , e temos a nossa disposição os arquivos de desenvolvimento do Android e iOS

- _Acesso direto às bibliotecas nativas_: Como o React Native CLI permite acesso direto às bibliotecas nativas do dispositivo, ele oferece maior desempenho e a capacidade de adicionar recursos que o Expo pode não suportar.

- _Maior flexibilidade_: Com o React Native CLI, você pode adicionar qualquer biblioteca nativa de terceiros ao seu projeto, enquanto no Expo, você está limitado às bibliotecas suportadas pelo Expo.

**CONTRAS:**

- _Curva de aprendizado mais acentuada_: Devido a tamanho poder e controle sobre tantas funções,o aprendizado do desenvolvedor iniciante é parcialmente prejudicado.

- _Configuração inicial mais complicada_: A configuração inicial pode ser um pouco mais difícil, pois você precisará configurar o ambiente de desenvolvimento e instalar dependências adicionais manualmente as vezes antes mesmo de começar a desenvolver.

- _Requer mais tempo de desenvolvimento_: Como você terá que lidar com mais tarefas de configuração, o tempo de desenvolvimento pode ser maior do que com o Expo.


**Expo**

O Expo é uma estrutura de código aberto que fornece um conjunto de ferramentas para criar aplicativos móveis React Native rapidamente. O Expo fornece um conjunto de APIs abstratas para criar aplicativos, o que simplifica o processo de desenvolvimento, permitindo que você se concentre mais em escrever código do que em configuração.

Como o Expo é uma estrutura externa, é necessário instalá-lo:

```
npm install -g expo-cli
```

Para iniciar seu projeto utilizando expo o seguinte comando:

```
npx create-expo-app nome-projeto
```

Caso queira iniciar um projeto utilizando TypeScript, o comando a seguir:

```
npx create-expo-app -t expo-template-blank-typescript
```


**PRÓS:**

- _Configuração fácil_: O Expo oferece uma experiência de desenvolvimento mais fácil e tranquila, com uma configuração inicial simples e fácil.

- _Suporte para vários dispositivos_: O Expo suporta facilmente o desenvolvimento de aplicativos para iOS e Android, bem como para a web e outras plataformas.

- _Desenvolvimento rápido_: O Expo simplifica o processo de desenvolvimento, permitindo que você se concentre mais na criação de seu aplicativo do que em configurações e personalizações.


**CONTRAS:**

- Menor controle: O Expo oferece menos controle sobre o projeto, limitando as opções de personalização e ajustes.

- Limitações: O Expo tem limitações quanto à quantidade de bibliotecas nativas que você pode adicionar ao seu projeto, pois algumas bibliotecas podem não ser suportadas pelo Expo.

- Dependência de terceiros: Você estará dependendo do Expo para gerenciar seu projeto, o que pode ser um problema.


O React Native recomenda o uso do React Native CLI se você já estiver familiarizado com o Desenvolvimento Mobile(usando Java e ObjetiveC). No entanto, se você é novo no desenvolvimento de aplicativos mobile e deseja configurar o projeto mais rapidamente,sem muitas configuraçõe, o Expo CLI é recomendado.

Espero que esta artigo tenha dado um caminho para suas dúvidas. Obrigado por ler!!!