O React Native é a framework híbrida mais comentada atualmente, baseado na Framework React do Facebook, a ferramenta possui uma série de recursos avançados como: geração de aplicativos nativos através de código híbrido, desempenho superior às outras frameworks híbridas, live reload, utilização de plugins, integração com código nativo e desenvolvimento utilizando componentes.

Veremos a seguir a fundo alguns destes recursos:

 

Desenvolvimento utilizando componentes

ReactNative1

 

O React Native trabalha com componentes, todo o código é estruturado e criado focando no layout. Cada uma das nossas telas é um componente que possui subcomponentes (como o View e o TextInput) que são exibidos na tela através do método render().

Cada um desses componentes possui métodos próprios de acordo com as necessidades de cada componente, o componente TextInput por exemplo possui o método onTextChange() que é acionado toda vez que o usuário digita no campo. É possível também criar seus próprios componentes, estendendo os componentes padrões, a vantagem de criar novos componentes é que você pode por exemplo criar um campo de texto customizado, ou com funções mais inteligentes.

Também existem inúmeros componentes prontos criados por usuários e disponíveis na internet através de plugins, a utilização de componentes de terceiros faz com que a prototipação do seu aplicativo seja muito mais rápida, é possível por exemplo baixar um componente de TextInput baseado no Material Design ou Flat Layout.

 

Geração de código nativo

ReactNative02

 

Um dos maiores problemas das frameworks híbridas atuais é que geralmente o código gerado roda em um navegador encapsulado dentro de um aplicativo, ou seja, quando acessamos um aplicativo híbrido no celular, na realidade estamos acessando um site que está armazenado dentro do dispositivo. A desvantagem desta abordagem é que o navegador é naturalmente mais lento do que o código nativo (código desenvolvido utilizando a linguagem de programação padrão da plataforma, Java para Android e Swift para iOS), fazendo assim com que os aplicativos híbridos tenham um desempenho inferior aos aplicativos nativos.

O React Native possui uma outra abordagem para resolver este problema: o desenvolvedor programa em código híbrido (utilizando Javascript através do React e uma linguagem XML equivalente ao HTML) e quando a framework gera os aplicativos Android e iOS, ela converte este código híbrido para código nativo, ou seja, os aplicativos gerados pelo React Native são idênticos aos aplicativos gerados utilizando as ferramentas nativas (Java e Swift através do Android Studio e X Code) de desenvolvimento.

Isto faz com que o React Native seja capaz de gerar aplicativos com desempenho similar aos aplicativos gerados utilizando as ferramentas híbridas, tornando-o uma das ferramentas híbridas com maior desempenho.

 

Live reload

 

Outro problema no desenvolvimento nativo é o teste e compilação dos aplicativos, geralmente o processo é demorado, pois é necessário compilar o projeto, processo que pode levar até 5 minutos e só então enviar o app para um emulador ou dispositivo.

O React Native utiliza uma abordagem chamada Live Reload para resolver este problema, através de uma ferramenta chamada Expo ele permite que o usuário rode um servidor local na máquina e acesse o aplicativo em seu celular ou emulador através da url deste servidor. Toda alteração de código realizada, é enviada para o servidor em tempo real e o aplicativo é atualizado automaticamente no celular.