Olha oque eu fiz

Um ano de React Native

June 06, 2018

Em 2017 precisei fazer um app multiplataforma e a linguagem que eu conhecia bem era js. Então procurei ferramentas que pudesse me auxiliar na criação desse app e algumas que encontrei foram.

  • Ionic
  • Native Scricpt
  • React Native

Dentre essas ferramentas fiz um hello world para sentir como seria o desenvolvimento do app.

Ionic

No desenvolvimento de apps usando o Ionic o resultado final não era muito bom quanto o desejado, mas a facilidade de desenvolver o app era muito boa, já que as tecnologias utilizadas no desenvolvimento eram HTML, CSS e JS, tecnologias que eu já tinha um conhecimento prévio.

Native Script

Na utilização do Native Script eu tinha o processo bem parecido com o no Ionic mas com algumas dificuldades na hora do desenvolvimento, já que as tecnologias utilizadas não auxiliavam na atualização rápida da tela após adicionar algo no código. O ponto positivo era que após a compilação o app ficava com o resultado muito bom para o usuário, pois os componentes serão gerados nativamente.

React Native

Na utilização do React Native para confecção do demo tive uma ótima experiência pois continha técnicas como Hot Reload, técnica que atualiza apenas o que foi modificado, coisa que agiliza muito na atualização da tela após ser alterado o código. O resultado final foi muito semelhante ao gerado pelo Native Script, já que ambos usam técnicas semelhante para geração de componentes nativos.

Aprendizados

Quando comecei já tinha bastante material em inglês, mas muito pouco em português e durante quase um ano vi muita coisa evoluir, aprendi muito e agora vou escrever um pouco do que vi e vivi com React Native.

Diferente de outras plataformas que testei para escrever código multiplataforma, o React Native usa muito da filosofia do React JS de não limitar a forma como você escreve seu código js, pois basicamente ele usa a muito do recurso da linguagem para entregar uma boa experiência para o desenvolvedor.

O que me fez aprender muito sobre js e os novos recursos que estão sendo trabalhados na linguagem, além de incentivar o uso de programação funcional o que apura seus sentidos para escrever um código mais declarativo.

Alguma das técnicas que aprendi no decorrer do estudos sobre React Native foram.

  • programação funcional
  • HoC (High order Component)
  • programação declarativa
  • testes unitário

Essas técnicas me auxiliaram em um desenvolvimento mais limpo, com menos bugs e com a manutenção facilitada.

Ecossistema

Além de oferecer varias ferramentas para um desenvolvimento facilitado o React juntamente com React Native trouxeram algumas outras ferramentas que visam melhorar mais a qualidade dos aplicativos e algumas que venho estudando para aplicar em projetos são:

  • ReasonML
  • GraphQL
  • CI (Continuous Integration)

Vantagens

Algumas vantagens que vejo no uso do React Native para desenvolvimento de código multiplataforma são:

  • Uso dos mesmos componentes para diferentes plataformas.
  • Fácil criação de códigos específicos para cada plataforma
  • Fácil utilização de código nativo através de libs.
  • Comunidade bem ativa no Slack e Telegram
  • Uso de reactjs para criação e manipulação da parte visual.

Desvantagens

Como toda tecnologia tem seu ponto fraco, com React Native não seria diferente, algumas desvantagens em relação a outras tecnologias multiplataforma:

  • O código nativo e a forma de compilação continua a mesma de projetos nativo.
  • O aprendizado da tecnologia, apesar de ter uma curva baixa para aprender, ainda é um custo um pouco alto em relação a tecnologias híbridas.
  • Tecnologia nova e em constante evolução, isso faz com que bugs não respondidos no StackOverflow possam surgir no desenvolvimento de alguns projetos, mas nada que estudando o código disponível no GitHub possa ajudar.

Conclusão

A utilização do React Native para novos projetos pode ser bem simples, mas que deve ser pensada e estudada para criar uma boa experiência para os usuário e que seja de fácil desenvolvimento para a equipe que ira utilizar.

Um agradecimento especial ao josenaves pela revisão do artigo.


Escrito por Enieber Cunha, aprendendo Reason ml e Elixir. Veja algumas coisas que faço no meu site