React vs. React Native
O React é uma biblioteca JavaScript declarativa criada pelo Facebook para a componentização de UI (interfaces de usuário) em websites. A engine do React renderiza componentes web através de uma sintaxe chamada JSX, que permite a declaração de elementos HTML e estilizações CSS dentro do código JavaScript de forma simples, declarativa e reativa.
O uso dessa biblioteca é extremamente eficiente quando utilizado em conjunto com o paradigma da Programação Reativa Funcional, em oposição ao tradicional paradigma imperativo.
Para colocar de forma simplista, Programação Reativa Funcional é responder a mudanças de estado na sua aplicação através de funções que transformam os dados e que, no caso do React, podem gerar atualizações na UI.
Mas se o React é um framework para aplicações web, como ele permite construir aplicativos móveis? Resposta simples: não permite. Para isso, o Facebook criou um novo framework em 2015, chamado React Native. É sobre ele que vamos falar agora no blog da Iteris.
O React Native é um framework que permite a construção de aplicativos cross-plataforma (híbridos) de forma reativa e declarativa, utilizando o JavaScript como linguagem de programação.
Esse framework utiliza em seu core o React, mas não é possível utilizar o CSS tradicional ou o HTML, apesar de a estilização de componentes ser muito similar ao CSS. São utilizados elementos próprios do React Native, que conversam com o ambiente nativo através de uma ponte. Essa ponte permite que você não só utilize os componentes padrão existentes no framework, mas também crie seus próprios componentes nativamente (para cada plataforma) e os integre ao código JavaScript.
Atenção! A criação de componentes próprios, bem como sua integração com o ambiente JavaScript, exige alto conhecimento da arquitetura nativa das plataformas e também da forma como a engine do React Native se integra a essas arquiteturas, sob o risco de enfrentar problemas como crashes (encerramento abrupto do app) e deadlocks (travamento do app, sendo necessário encerrar e abrir de novo).
E quando vale a pena utilizar o React Native?
O ideal é que seja feita uma avaliação criteriosa da solução de negócio desejada. Algumas perguntas importantes que podem ajudar neste processo:
- O app precisará utilizar funções que exigem integrações nativas não existentes no framework do React Native (notificações push interativas ou streaming de áudio/vídeo, por exemplo)?
- Performance é requerida para aparelhos mais antigos e, portanto, com menos recursos?
Se você respondeu sim a alguma dessas perguntas, o React Native pode não ser a melhor opção para o seu app, devido a limitações técnicas atuais existentes no framework. Na dúvida, recomendamos sempre consultar um especialista para avaliar cenários de uso mais específicos.
A Iteris tem especialistas aptos a avaliar sua ideia de negócio digital de ponta a ponta e recomendar o melhor caminho para chegar no app que você imagina para sua empresa. Entre em contato e saiba mais sobre como podemos te ajudar nos desafios da sua TI.