Para aqueles que trabalham com – ou simplesmente já conhece – Javascript, o aprendizado de ReactJS e React Native representa uma evolução no mundo do desenvolvimento Web e Mobile! Quer descobrir por qual motivo a lista de empresas que usam essas tecnologias só aumenta? E mais, suas vantagens e desvantagens, o que eles são e de onde vieram?
Continue a leitura deste texto e descubra por que você deve aprender React e React Native se quiser tornar-se um profissional completo!
O que é React?
O React surgiu por volta de 2013, tendo sido criado pelo engenheiro do Facebook, Jordan Walke. Ele era inicialmente chamado de FaxJSV, e era utilizado apenas em projetos internos. No Facebook, existia uma dificuldade de sincronizar os diferentes eventos que ocorriam na tela ao mesmo tempo. A lógica para conseguir fazer a tela atualizar ficava muito complexa.
Na web, existe um conceito básico de que se deve separar o HTML do CSS e do Javascript. Por conta desta separação, o código do JS ficava muito distante do HTML, o que tornava difícil a sincronização de todas estas alterações.
Por este motivo eles criaram uma fórmula, para fazer com que estas alterações de estado ficassem descritas de maneira detalhada, de modo que ficasse declarado em cada pedaço da página o que deve acontecer em cada evento. Assim, então, surgiu o React, ou ReactJS, como também é conhecido.
Em 2015, foi lançado o React Native, trazendo uma nova solução para construção de apps nativos usando React. Nas palavras de Tom Occhino, Diretor de Engenharia do Facebook, a intenção era de que o React Native proporcionasse “a experiência do usuário nas plataformas móveis nativas, combinada com a experiência do desenvolvedor que temos ao construir com React na web”.
React: Biblioteca ou framework?
Mesmo com a popularidade já alcançada pelo ReactJS, há ainda quem confunda ele com React Native. Mas afinal, qual a diferença?
O React é uma biblioteca Javascript para construir interfaces focadas na utilização de componentes, criada pelo Facebook.
O React Native, também criado pelo Facebook, utiliza o React para renderizar aplicações Android e iOS, de maneira nativa.
Sendo assim, basicamente podemos distingui-los da seguinte forma: o ReactJS é uma biblioteca (lib) de desenvolvimento web front-end, e o React Native é framework de desenvolvimento de aplicativos móveis nativos.
Desde que se tornou open source, a comunidade React contribui muito para o crescimento desta biblioteca (lib), possuindo uma das maiores comunidades no GitHub com mais de 170 mil estrelas e mais de 34 mil forks.
Vantagens e desvantagens
Feitas as apresentações, bem como a popularidade, vamos conhecer um pouco mais dos benefícios em utilizá-los, e entender melhor os pontos negativos de cada um.
Começaremos elencando alguns pontos do ReactJS (a biblioteca).
Vantagens:
- Flexibilidade – não existe uma estrutura obrigatória a ser seguida, tendo liberdade para definição do padrão;
- JSX – basicamente uma sitaxe de XML dentro do Javascript, permitindo, entre muitos benefícios, escrever HTML e CSS dentro de um arquivo Javascript;
- Browser Tools – ferramentas que auxiliam no debug e construção das aplicações direto no browser;
- Popularidade;
- Mobile com React Native.
Desvantagens:
- JSX – apesar de ser uma ótima vantagem, pode também ser de difícil uso para quem está acostumado a trabalhar com HTML, CSS e Javascript separados;
- Documentação oficial reduzida;
- Sua liberdade e ausência de estrutura obrigatória pode dificultar na escalabilidade do projeto.
Seguindo para o React Native, o framework, temos os seguintes pontos:
Vantagens:
- Desenvolvimento nativo – se refere à linguagem nativa dos aparelhos. Desta forma, o acesso aos hardwares e softwares é fácil e leve;
- Proteção de dados – por ser um framework de desenvolvimento nativo, possui o poder do hardware em sua totalidade, fornecendo maior segurança para os usuários;
- Alta performance – por conta da programação nativa não ser dividida, os recursos são completamente utilizados, o que deixa o desempenho do aparelho otimizado;
Desvantagens:
- Qualidade inferior – o desenvolvimento de um aplicativo através de uma plataforma cruzada pode comprometer a qualidade, principalmente para aplicativos que executem animações pesadas;
- Desenvolvedor nativo – embora os blocos nativos sejam incorporados ao código React Native, a criação deles precisa de um desenvolvedor iOS ou Android. Sendo assim, pode ser necessário gerenciar três bases de código.
Apesar de haverem alguns contras, normalmente os benefícios obtidos pelo uso de ReactJS e React Native são bastante consideráveis e podem pesar na hora de escolher a lib ou o framework para o seu projeto. Mas será que, apesar destas vantagens, eles são utilizados em grande escala?
Algumas empresas que utilizam
Desde o início, já mencionamos que o Facebook foi o responsável pela criação do React, então, não mencionaremos eles aqui de maneira extensiva. Focaremos em outras empresas, também relevantes em seus segmentos, que se utilizam da biblioteca ou do framework.
Usuárias de ReactJS
- AirBnB: Já sendo bastante conhecido pelo seu styleguide JavaScript, o AirBnB também publica diversas libs e componentes para React;
- NFL: O pessoal da NFL publica vários módulos e ferramentas para um ambiente de desenvolvimento com React, que eles próprios usam, no GitHub deles;
- Khan Academy: Após bastante tempo baseando a maioria das suas aplicações em jQuery (até porque o próprio John Resig trabalha na empresa), a Khan Academy começou a investir em React.
Usuárias de React Native
- Walmart: o framework ajudou a empresa a compartilhar a maior parte de sua base de código entre as plataformas iOS e Android. A estrutura permitiu à empresa contar com uma única equipe de desenvolvedores JS para desenvolvimento de plataforma cruzada;
- Airbnb: sendo um dos maiores fomentadores de React, se torna natural a utilização também do framework para suas ofertas móveis. A capacidade de reutilização do código é um recurso importante que faz os desenvolvedores escolherem o framework;
- Tesla: o aplicativo móvel do Tesla foi desenvolvido com React Native, tendo sido escolhida por ser o framework mais viável e rico em recursos disponíveis hoje;
- Discord: um aplicativo da comunidade que utiliza o framework para seus aplicativos móveis, podendo desfrutar de experiências quase idênticas em dispositivos Apple e Android, devido ao compartilhamento de quase 98% de seu código.
Conheça nossa formação Primeiros Passos Full Stack Developer e aprenda a usar React JS.
Referência aqui.