Buscar

aula2 (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

2ºAula
React Native II
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de:
• entender o funcionamento do React e React Native;
• visualizar como se comportam durante o seu ciclo de vida de Renderização.
Olá, 
Vamos continuar os nossos estudos da disciplina 
Programação para Dispositivos Móveis. Na aula anterior foi 
apresentado um breve histórico do React Native, bem como 
algumas vantagens de ser utilizado e os casos de uso do mesmo. 
Nesta aula, entenderemos melhor o funcionamento e o ciclo de 
vida de renderização do React e React Native.
Leia atentamente esta aula e se tiver alguma dúvida, use os 
recursos que estão na sua área do aluno.
Bons estudos!
12Programação para Dispositivos Móveis
Seções de estudo
1- Funcionamento do React Native
2- Ciclo de Vida de Renderização
1- Funcionamento do React Native
Na aula anterior, vimos um breve histórico do framework 
React Native, também aprendemos como instalar o React 
Native e vimos as suas dependências. Além disso, um projeto 
foi iniciado utilizando o template em branco da ferramenta 
Expo.
Antes de ir para o código do projeto que foi criado é 
preciso entender o funcionamento do React Native, pois 
somente sabendo como uma tecnologia funciona é que é 
possível reproduzir e incrementar sem maiores complicações. 
(PINHO e ESCUDELARIO 2020).
A base para do React Native é o React, então para 
entender o funcionamento de um é preciso primeiro entender 
o do outro, primeiramente é preciso estudar o funcionamento 
do Virtual DOM (EISENMAN, 2015).
No React o Virtual DOM é uma camada entre o que 
deve ser renderizado na página web e o que o desenvolvedor 
codifi cou. No desenvolvimento de interfaces interativas do 
usuário em um navegador deve-se modifi car o DOM do 
navegador.
O DOM é uma árvore de objetos que o navegador 
cria quando uma página é carregada. Na Figura 1 é possível 
entender a estrutura dessa árvore que contém todos os 
elementos, suas propriedades e a hierarquia que existe entre 
eles. Segundo DOM(2020) com essa estrutura criada o 
JavaScript pode:
● Modifi car elementos HTML;
● Modifi car atributos dos elementos HTML;
● Modifi car os estilos CSS dos elementos;
● Remover ou inserir elementos HTML;
● Reagir e criar eventos nos elementos HTML. 
Figura 1 – Árvore de Objetos - HTML DOM. Fonte: DOM, 2020.
O React então cria o Virtual DOM que é uma 
representação mais leve do DOM do navegador, toda vez 
que um componente é renderizado na tela, o React atualiza 
o Virtual DOM dos componentes já renderizados e procura 
por mudanças estruturais. Esse processo é muito rápido, já 
que o Virtual DOM é bem leve.
As mudanças então (entrada de um texto em um input, 
por exemplo) são modifi cadas somente no Virtual DOM, 
que após todas as mudanças necessárias é comparado com 
uma versão do DOM do navegador de antes da atualização, 
então, é descoberto o que realmente mudou e a atualização é 
propagada para o DOM do navegador somente modifi cando 
o que realmente sofreu alterações. Por isso, o processo é 
extremamente rápido e efi caz.
A Figura 2 demonstra esse processo que renderiza 
somente o mínimo necessário. (EISENMAN, 2015).
Figura 2 – Cálculos Realizados no Vitrual DOM.
Fonte: Adaptado de EISENMAN, 2015.
Eisenman (2015) cita ainda que a maioria dos 
desenvolvedores acredita que a utilização do Virtual DOM 
é importante principalmente na otimização de desempenho. 
Mas, não se restringe a isso, já que uma camada de 
abstração limpa é criada entre o código do desenvolvedor 
e a renderização, abrindo possibilidades interessantes no 
desenvolvimento.
Então, o funcionamento do React Native pode ser 
comparado com o React na Figura 3. Ao invés de renderizar 
para o DOM do navegador, o react Native faz chamadas a 
bridge que aciona APIs Objective-C para renderizar os 
componentes iOS ou APIS Java para renderizar componentes 
Android. 
Dessa forma, a otimização de utilização do Virtual DOM 
continua, além disso, as chamadas às APIs se diferem de outras 
opções de desenvolvimento multiplataforma que renderizam 
aplicativos sobre uma interface web simplesmente.
Figura 3 – React pode renderizar para vários dispositivos. Fonte: EISENMAN, 2015.
A bridge é responsável por fornecer uma interface entre 
o React Native e a renderização nativa do sistema. Então a 
13
marcação que é utilizada para criar uma <View> no código 
da Figura 3 vai ser traduzida para se adequar a plataforma que 
ela será renderizada, pode se tornar nesse caso um UIView do 
iOS e Android.view do Android. (EISENMAN, 2015).
Vale ressaltar que toda interação que acontecerá através 
da bridge será iniciada pelo lado nativo, já que os eventos 
(toque na tela, por exemplo) são tratados primeiramente na 
parte nativa da aplicação. (PINHO e ESCUDELARIO, 
2020).
Camara (2018) explica que as vantagens da bridge 
serão sempre usufruídas, visto que ela é a chave para o 
funcionamento da aplicação no React Native.
Dessa forma, é possível entender que o React Native 
não funciona apenas com o JavaScript, ele possuí também o 
lado nativo já que os projetos nele criado rodam diretamente 
no dispositivo do usuário. Portanto, na arquitetura dos 
dispositivos Android terá o Android Runtime: para rodar 
o código Java e no dispositivo iOS terá o Native Runtime: 
para rodar códigos Objective-C/Swift. Além disso, em ambas 
arquiteturas haverá o JSCore virtual machine, que é destinada 
ao código em JavaScript.
Outro ponto importante a se destacar é que em uma 
aplicação React Native três threads são executadas (além das 
que são executadas em background por aplicações nativas) 
Figura 4. 
Figura 4 –Threads React Native. Fonte: CAMARA, 2018.
A primeira é a Main Thread, que também é utilizada 
por aplicações nativas. Ela trata, além das requisições 
relacionadas com a renderização de elementos na tela, os 
gestos reproduzidos pelo usuário.
A segunda é responsável exclusivamente por executar o 
código JavaScript, portanto responsável pela lógica de negócio 
da aplicação e defi nir a estrutura e funcionalidade da interface 
com o usuário.
E a terceira é a Shadow Queue responsável por realizar 
os cálculos referentes ao layout.
2- Ciclo de Vida de Renderização
O ciclo de vida da renderização do React Native é o 
mesmo do React (Figura 5). No React o ciclo começa quando 
a página é renderizada e o componente é montado no DOM 
e posteriormente ele é renderizado. Depois que isso acontece 
o React fi ca aguardando mudanças no State/props que 
resulta no cálculo da diferença com o Virtual DOM seguido 
da renderização do componente com o React (EISENMAN, 
2015).
A diferença entre o React Native e React quanto o ciclo 
de vida é que o primeiro depende da bridge para renderizar os 
componentes, todo o resto é igual.
Figura 5 – Ciclo de Vida renderização React. Fonte: EISENMAN, 2015.
Tanto React quanto React Native tem sua interface 
gráfi ca desenvolvida em JSX, que veremos mais afundo na 
próxima aula, ela é uma extensão da sintaxe do JavaScript que 
parece muito com HTML/XML. No JSX em uma mesma 
estrutura é possível escrever HTML, CSS e JavaScript. 
Pode-se inserir tags dentro de variáveis, chamar funções 
dentro de tags, colocar regras CSS em objetos JavaScript. Pode 
parecer muita coisa, porém a sintaxe do JSX é bem intuitiva, 
principalmente para quem já trabalha com desenvolvimento 
web, além de ser capaz de construir componentes completos 
com toda a estrutura para o correto funcionamento. (PINHO 
e ESCUDELARIO, 2020).
Apesar desse lado nativo, que é executado nativamente 
no dispositivo, não consegue entender o JSX. O React Native 
então converte os elementos JSX para uma linguagem de 
marcação que o sistema nativo consiga entender. Dessa 
forma, o dispositivo consegue interpretar o que tem que 
ser colocado, onde ele deve ser colocado e com quais 
propriedades. (PINHO e ESCUDELARIO, 2020).
Chegamos ao fi nal da segunda aula. Vamos recordar?
Retomando a aula
1- Funcionamento do React Native
Na pr imeira seção foi explicado o funcionamentodo 
React Native, exemplifi cando o funcionamento de seu pai, o 
React, ambos constroem os componentes no Virtual DOM 
que fi ca com toda a carga de processamento de mudanças, o 
que permite uma otimização quando da utilização dele.
2- Ciclo de Vida de Renderização
Na segunda e última seção foi demonstrado o ciclo de 
vida de renderização do React e React Native, foi possível 
entender que depois que a página é renderizada e tudo é 
colocado em seu devido lugar somente quando uma mudança 
ocorre é que o ciclo é retomado.
14Programação para Dispositivos Móveis
CAMARA, R. In: O que você deve saber sobre o 
funcionamento do React Native, 2018. Disponível em: 
https://tableless.com.br/o-que-voce-deve-saber-sobre-
funcionamento-react-native/. Acesso em: 21 jun. 2020.
DOM. In: The HTML DOM (Document Object 
Model), 2020. Disponível em: https://www.w3schools.
com/js/js_htmldom.asp. Acesso em: 21 jun. 2020.
Vale a pena acessar
PINHO, D. M.; ESCUDELARIO, B. React Native 
Desenvolvimento de aplicativos mobile com React. Editora Casa do 
Código, São Paulo, 2020.
EISENMAN, B. Learning React Native: Building 
Native Mobile Apps with JavaScript. O’Reilly Media, 2015.
BODUCH, A. React and React Native. Packt Publishing, 
2017.
LEBENSOLD, J. React Native Cookbook: Bringing the 
Web to Native Platforms. O’Reilly Media, 2018.
Vale a pena ler
Vale a pena
Minhas anotações

Continue navegando