UM ESTUDO SOBRE O DESENVOLVIMENTO MOBILE UTILIZANDO REACT NATIVE ATRAVÉS DE UMA APLICAÇÃO PRÁTICA

Tipo de documento:Monografia

Área de estudo:Tecnologia da informação

Documento 1

SUMÁRIO 1 TEMA 6 2 PROBLEMA 6 3 OBJETIVOS 7 3. Objetivo geral 7 3. Objetivos específicos 7 4 JUSTIFICATIVA 7 5 REFERENCIAL TEÓRICO 11 5. Plataformas 11 5. Desenvolvimento de Aplicações Móveis 14 5. Dessa forma, verifica-se que seria inviável economicamente e também em desenvolvimento em tempo hábil, desenvolver o mesmo aplicativo para todas as plataformas de forma nativa, ou seja, um desenvolvimento específico para cada sistema operacional. Surgem então as opções de desenvolvimento multiplataforma ou híbridos, com a proposta de que um único código possa ser válido para as principais plataformas existentes no mercado. OBJETIVOS Abaixo apresentamos o objetivo geral, e os objetivos específicos que devem ser alcançados para conclusão do mesmo. Objetivo geral Estudar e avaliar o uso do React Native no desenvolvimento de aplicações mobile multiplataforma, buscando identificar os principais recursos, vantagens e desvantagens através da implementação de um estudo de caso.

Objetivos específicos - Estudar a arquitetura das 2 principais plataformas existentes no mercado, iOS e Android. Com a expansão da internet, diversos serviços passaram a ser realizados online, tal como compra e venda de produtos, agendamento de serviços, operações bancárias, entre outros. Em uma pesquisa realizada pela Pesquisa Brasileira de Mídia em 2015 demonstrou que os brasileiros ficam em média 5 horas na internet de segunda a sexta-feira, sendo que em 2018 esse tempo já subiu para uma média de 9 horas, onde 3h e 30minutos são relativos ao uso de redes sociais, segundo o relatório 2018 Global Digital (2018). Na Figura 3 apresentamos um gráfico apresentando o tempo médio onde cada país gasta navegando na Internet, onde o Brasil ocupa o 3 lugar, segundo também o relatório 2018 Global Digital (2018).

O crescimento dos sites na Internet começou a causar problemas de usabilidade, segundo Patil e Khandagale (2016), pois cada site tem uma forma de navegação e gerenciamento de suas diferentes fontes de conteúdo, bem como tecnologia utilizada. Essa evolução de tecnologia também representou um desafio para os profissionais da área, pois segundo Barry e Lang (2001), eles precisavam ajustar a demanda e qualidade esperadas pelos usuários, e também pela evolução das tecnologias e a chegada de dispositivos móveis, como smartphones, tablets, relógios inteligentes, entre outros. A App Annie, empresa especializada em monitorar o mercado de aplicativos, afirmou em um relatório sobre o estado do mercado no final de 2017 (App Annie 2017), que o número de aplicativos baixados nas duas maiores lojas, iTunes App Store e Google play, ultrapassou a casa dos 26 bilhões rendendo uma receita total de quase U$ 17 bilhões o que representa um crescimento de 28% em relação aos números no ano anterior.

A partir deste cenário, a motivação deste trabalho consiste no estudo sobre as tecnologias de desenvolvimento de aplicações mobile multiplataforma, visando principalmente o framework React Native. REFERENCIAL TEÓRICO Nesse capítulo abordaremos o referencial teórico em que essa pesquisa está baseada, como os tipos de desenvolvimento mobile e também a respeito das tecnologias em si. Plataformas Antes de iniciar qualquer tipo de desenvolvimento, seja ele multiplataforma ou nativo, devemos conhecer melhor as principais plataformas, de forma a entender qual tipo de desenvolvimento se enquadra melhor para cada problema. Atualmente as principais plataformas para os dispositivos móveis são, o iOS da Apple e o Android da Google. Na Figura 5 apresentamos a arquitetura do sistema Android. A última camada é a mais abstrata, onde os desenvolvedores dos aplicativos irão atuar, inclusive quando for necessário criar ligações com o hardware.

Na 2 camada temos o Framework, que será utilizado quando o desenvolvedor precisar acessar serviços do kernel do Android, tal como notificações, chamadas telefônicas, câmera, entre outros. Na terceira camada temos a ligação do hardware com os serviços do sistema tal como funções e mídia. Na quarta e última camada temos o acesso ao kernel do Linux, responsável pelo gerenciamento de todo o sistema, tal como memória, aplicativos, armazenamento, entre outros. Figura 6: Arquitetura do iOs Fonte: Apple, 2015. Na Tabela 1 apresentamos um resumo das 2 plataformas abordadas, considerando a linguagem de programação e o ambiente de desenvolvimento. Tabela 1: Comparativo entre as 3 diferentes linguagens de programação para mobile. Android iOS Linguagem de programação Java Objective-C Ambiente de desenvolvimento Android Studio em qualquer plataforma Xcode no Mac Fonte: Petzold (2016).

Desenvolvimento de Aplicações Móveis A principais abordagens no desenvolvimento de um aplicativo para dispositivos móveis são: desenvolvimento nativo e desenvolvimento multiplataforma. Desenvolvimento multiplataforma Tecnologias de desenvolvimento multiplataforma, refere-se a qualquer implementação que não faz uso de linguagens nativas e que podem gerar aplicações que, com um único código, podem ser executadas em mais de uma plataforma. Surgem como resposta aos problemas enfrentados no desenvolvimento nativo. Sua principal vantagem é a redução de custos, agilidade no desenvolvimento e maior facilidade de manutenção, já que é necessária manutenção em apenas um código. Como desenvolvimento multiplataforma temos algumas opções de framework, tal como React, Ionic, Xamarin, entre outros. Ionic O Ionic é um SDK para desenvolvimento de aplicativos móveis híbridos, criado por max Lynch, Ben Sperry e Adam Bradley (Drifty Co, 2013).

Flutter Inicialmente conhecida como Sky, era uma tecnologia que rodava sobre o sistema operacional Android, baseada na linguagem Dart e tendo sido apresentada em um evento em 2015 com o objetivo de ser capaz de renderizar de forma consistente 120 quadros por segundo, segundo Ron (2015). Posteriormente o Sky foi renomeado para Flutter, tornando-se um SDK de código aberto criado pelo Google para desenvolvimento de aplicativos, tanto na plataforma web, mobile ou desktop, e tornou-se a base de desenvolvimento de aplicativos do Google Fuchsia. Sua arquitetura é conforma apresentada na Figura 9, onde o aplicativo é ligado com os serviços do sistema operacional através de canais e plugins, e renderizado através de canvas e eventos, possuindo um rápido mecanismo de renderização 2D e alguns widgets prontos. Figura 9: Arquitetura do Flutter. Fonte: App Coda, 2019.

NET. Dessa maneira os desenvolvedores podem escrever suas aplicações em C# e na hora da compilação, elas serão compiladas na respectiva linguagem nativa, conforme demonstrado na Figura 10. Figura 10: Relação entre o Xamarin e as suas bibliotecas para mobile. Fonte: Petzold (2016). Web app A abordagem de desenvolvimento mobile Web app utiliza as tecnologias comuns que rodam em qualquer navegador HTML, CSS e JavaScript. Como principais vantagens temos o desenvolvimento mais rápido e a possibilidade de ter acesso as funções nativas de cada sistema operacional, e como desvantagens, o desempenho mais fraco, se comparado com o desenvolvimento nativo. Como principais plataformas de desenvolvimento híbrido podemos citar o PhoneGap e Ionic Cordova. JavaScript Conforme Flanagan (2013), o JavaScript é uma linguagem de programação interpretada de alto nível que junto com o HTML e CSS formam as três principais linguagens de desenvolvimento Web.

Sua importância dá-se pelo fato de que todos os navegadores modernos sejam em computadores desktop, consoles de jogos, tablets e smartphones possuem nativamente interpretadores de JavaScript, tornando-a a linguagem de programação mais presente em desenvolvimento web. A nova versão do Javascript é conhecida como ES6 e apresenta algumas otimizações da linguagem, porém a maior parte dos browsers ainda não dão suporte ao ES6, dessa forma é necessário utilizar um transpiler, o mais conhecido é o Babel. React Native O React Native é da mesma empresa do React Js, e permite a criação de aplicações mobile nativas utilizando javascript para implementação das regras de negócio e React no design. O React Native originou-se de um projeto desenvolvido pelos engenheiros do Facebook, consistindo em um framework que cria aplicações nativas para as plataformas iOS e Android de forma native.

Também permite utilizar tecnologias como ECMAScript 6, CSS Flexbox, JSX, entre outras no desenvolvimento. Tecnologias Relacionadas Algumas tecnologias são relacionadas e auxiliam na experiência do usuário, tal como o Firebase, que além de funcionar como banco de dados também é utilizado para fazer o envio de notificações para os aplicativos. Firebase O Firebase foi adquirido pela Google em 2013, tendo sido lançada em 2004 e oferece um serviço conhecido como BaSS (Backend as a Service) tanto para o desenvolvimento web como para o mobile. Acesso em 4 de maio de 2018. Ankit, C. Neetu, S. Xamarin for Android Application. International Journal of Computer Science and Information Technology, v. App Coda. Introduction to Flutter: Building iOS and Android Apps from a Single Codebase. Disponível em <https://www. appcoda. com/flutter-basics/>.

vol. Cetip. PR. Apresentação de resultados - TIC Kids Online Brasil 2014. Disponível em <https://nic. poli. ufrj. br/pdf/monografias/2017/MBCA/construindo_aplicacoes_moveis_nativas_com_javascript. pdf>. Acesso em: 11 mar. Garcia M. A. P. Filtros de imagens para ios. Disponı́vel em: <http://www. idclatin. com/releases/news. aspx?id=2312>. Acesso em: 29 mar. Global Digital. Mukesh, Prajapati; Dhananjay, Phadake; ARCHIT, Poddar. Study on Xamarin Cross-plataform Framework. International Journal of Techinal Research and Applications, v. p. Disponível em: < https://www. Nostrum. Introdução Ionic. Disponível em <https://www. nostrum. com. Disponível em <https://www2. camara. leg. br/camaranoticias/noticias/COMUNICACAO/516912-CONFIRA-COMO-E-O-USO-DA-INTERNET-NO-BRASIL. html>. ufrgs. br/handle/10183/150981>. Acesso em: 11 mar. Rocketseat. Firebase: serviços, vantagens, quando utilizar e integrações.

170 R$ para obter acesso e baixar trabalho pronto

Apenas no StudyBank

Modelo original

Para download