Eu também não quero esconder que o React Native é um alvo
rápido, temos novas versões sendo publicadas quase todo mês.
Mudanças inesperadas acontecem e, é claro, farei o melhor para manter esse curso atualizado para informar
sobre alterações e como ajustar seu código, mas, às vezes, basta voltar para um aplicativo criado há
seis meses e você tem que mudar alguma coisa lá porque algo mudou na versão mais
recente do React Native e
para continuar trabalhando no seu aplicativo, você precisa alterar algo no código que costumava funcionar antes, isso é
normal, isso
vai acontecer, não
todos os tempo, não todo mês, mas vai acontecer. Também no React Native, você normalmente
tem uma alta dependência de pacotes de terceiros.
Agora, a coisa boa é quando se trabalha com expo, isso é verdade apenas parcialmente porque a expo já é
um wrapper com muitos recursos interessantes embutidos, portanto
você tem uma alta dependência de expo ao trabalhar com isso, mas você não precisa encontre
dezenas de outros pacotes de terceiros para acessar a câmera, para trabalhar com Bluetooth ou qualquer coisa assim.
Se você está criando um aplicativo React Native bareboned, isso seria
diferente, há apenas um conjunto básico de recursos embutido no React Native e, para a maioria
das coisas que você deseja adicionar ao seu aplicativo nativo, você teria que entrar em contato outros pacotes
gerenciados pela comunidade para fazê-los funcionar e
até mesmo com a expo, precisaremos de alguns pacotes de terceiros para ter tudo o que queremos.
E isso é algo que você tem, você tem essa dependência e isso, é claro,
significa que se esses pacotes mudarem ou não forem mais mantidos, você terá que encontrar alternativas ou terá que atualizar
seu código, então é algo que você também precisa ciente de. E Reagir Nativo simplesmente também tem alguns bugs, não os
cruciais, você
pode construir basicamente qualquer aplicativo que quiser com o React Native, mas às vezes, as coisas simplesmente
não funcionam como você esperaria que funcionassem e você precisa ser criativo, encontrar soluções alternativas
e e também neste curso eu também mostrarei algumas dessas coisas estranhas que o React Native tem, mas
em geral, ao criar aplicativos React Native, você tem que estar disposto a ficar atualizado, usar o Google, mergulhar em
discussões de questões e simplesmente tente as coisas. Com a expo, você tem uma experiência de desenvolvimento bastante
suave, mas ainda assim, a estrada pode ser acidentada de tempos em tempos. Agora tudo isso pode soar muito ruim, então você não
deveria aprender React Native então? Bem, vamos dar uma olhada nas alternativas.
Claro que uma alternativa sempre é que você construa aplicativos nativos reais com o framework Android para
Java ou Kotlin ou com o Swift, ObjectiveC para iOS.
Você pode fazer isso, mas é claro que a desvantagem é que você tem que aprender essas linguagens e a enorme vantagem de
trabalhar em um projeto e compartilhar um monte de código será totalmente perdida. Nos aplicativos Reagir Nativos, com certeza você provavelmente
precisará ajustar seu código para a plataforma que está sendo executada de vez em
quando, mas a grande maioria de sua base de código pode ser compartilhada e pode ser reutilizada sem nenhum ajuste.
Se você está usando as linguagens de plataforma nativas, então você definitivamente tem que trabalhar em dois
projetos totalmente diferentes e você não poderá reutilizar muito código. A alternativa também é que você crie um aplicativo
da
Web progressivo, que é um aplicativo da Web normal que utiliza alguns recursos que o fazem parecer um aplicativo
para dispositivos móveis, mas não é distribuído pelas lojas de aplicativos e depende de usuários que usam os recursos você está usando
e, se esse não for o caso, seu aplicativo não funciona muito bem.
A terceira alternativa é que você usa o Ionic ou uma solução semelhante, o Ionic é uma ferramenta ou um framework que permite que você construa aplicativos nativos reais que você
distribui através das lojas de aplicativos com tecnologias da web. No final, o Ionic usa um aplicativo da
web normal e o envolve em um aplicativo nativo, de modo que ele não compila nada, apenas envolve e
é uma boa abordagem. Na verdade, gosto do Ionic e
pode ser perfeito para muitos aplicativos mas é claro, uma possível desvantagem é que o desempenho pode ser
pior porque você só tem um aplicativo da web, você não tem um
aplicativo nativo compilado e isso é algo que você tem com o React Native, claro, e já que
obtivemos ferramentas e podemos adquirir conhecimento que nos ajuda a superar os desafios que o React Native às vezes apresenta,
o React Native é uma ótima maneira de criar aplicativos nativos. Você pode compartilhar um código, obter um ótimo
desempenho, distribuí-lo pelas lojas de aplicativos, o que é muito bom.
Agora uma nota lateral, você também tem alternativas como Flutter ou Native Script, essas alternativas seguem uma
abordagem semelhante à do React Native, você obtém um aplicativo compilado lá, eles simplesmente usam linguagens
de programação diferentes, frameworks diferentes e anexados, você encontrará um link para um vídeo comparativo onde eu
comparo todas essas alternativas caso você esteja interessado em um mergulho mais profundo nesse tópico.