PRÓ-REITORIA ACADÊMICA SISTEMAS DE INFORMAÇÃO 8° PERÍODO
Por: Rodrigo Silva • 23/11/2019 • Projeto de pesquisa • 1.834 Palavras (8 Páginas) • 151 Visualizações
[pic 1][pic 2]
UBM - CENTRO UNIVERSITÁRIO DE BARRA MANSA
PRÓ-REITORIA ACADÊMICA SISTEMAS DE INFORMAÇÃO 8° PERÍODO
Autores: Lucas Alves da Silva e Rodrigo da Silva Lima
Professor Orientador: André Ricardo
FLUTTER FRAMEWORK
Resumo
Neste artigo falaremos sobre o desenvolvimento de aplicações mobile que tem se popularizando cada vez mais ao longo dos tempos, acompanhando assim a evolução e popularização dos smartphones, porém existem distintos sistemas operacionais e foi pensando nisso que os engenheiros da Google lançaram em Maio de 2017 o Flutter, permitindo aos desenvolvedores maior facilidade de desenvolvimento e gestão de diferentes projetos para uma mesma app mas em plataformas diferentes, mais concretamente o iOS e o Android.
Palavras Chave: Flutter - React Native - Framework.
Abstract
Mobile app development has become increasingly popular over time, following the evolution and popularization of smartphones that have just taken over the world!
We use all smartphones, but we don't remember all of them, and that's what Google engineers launched in May 2017 or Flutter, allowing developers to easily develop and manage different projects for the same application, but in different applications. platforms, specifically iOS and Android.
Keywords: Flutter - React Native - Framework.
INTRODUÇÃO
Com o expressivo crescimento dos dispositivos móveis, suas variedades de modelos, fabricantes e sistemas operacionais aumentaram muito. Houve a necessidade de se disponibilizar um software que atenda todas (ou mais de uma) plataforma, sem ser necessário desenvolver uma aplicação específica para cada uma delas. Tal requisito eleva muito os custos e o tempo do desenvolvimento. Neste contexto, surgem as aplicações híbridas, que permitem que uma mesma aplicação funcione em diferentes plataformas. Nesse cenário, nasce o framework Flutter.
O Flutter é um framework desenvolvido pelo Google na linguagem Dart para a criação de aplicativos multiplataforma, web e mobile e desktop. Diferentemente de outras soluções, como Ionic e React Native, o Flutter não é executado em uma WebView (Ionic) e nem utiliza componentes nativos através de uma "ponte" (React Native). Ao invés disso gera código verdadeiramente nativo, tanto para Android quanto para iOS.
O objetivo é mostrar o crescimento do flutter nos últimos anos e os motivos para acreditar e investir no potencial deste framework.
[as frases que você tiraram de algum lugar, devemos citá-los. Exemplo: AUTOR (ano) ] [1].
METODOLOGIA
Foi utilizado a metodologia descritiva para comparar duas ferramentas de desenvolvimento: o Flutter Framework e a biblioteca JavaScript React Native. Analisaremos as aplicações existentes no mercado e evidenciar as vantagens do novo framework apoiado pela google comparando dados encontrados em artigos e também mostrar o crescimento no interesse ao flutter nos últimos anos.
DART
Em meados de 2007, a Google lançou a sua primeira linguagem de programação, a linguagem Go ou golang, iniciando um ciclo de lançamentos futuros que desencadeariam em poderosas ferramentas entre as quais se destacam: AngularJS, GWT e App Engine. Inicialmente, as linguagens assumiram características estruturadas e estáticas, ao contrário da ampla utilização das linguagens C e C++ geralmente efetuada pela empresa. No entanto, a necessidade de abranger os universos front-end, mobile e server side ao mesmo tempo levou à criação de uma nova linguagem: a Google Dart.
A Dart é uma linguagem desenhada originalmente para a web, que foi concebida na conferência GOTO na Dinamarca em outubro de 2011, no âmbito de um projeto fundado pelos desenvolvedores Lars Bark e Kasper Lund. Tal como qualquer linguagem client side, a Dart precisou de passar por uma série de testes junto à ECMA International de modo a verificar o seu funcionamento em browsers modernos, tendo assim a sua primeira especificação aprovada e disponível para a comunidade.
A Dart foi desenhada para conceber facilmente ferramentas de desenvolvimento para aplicações web modernas e capacitadas para ambientes de alta performance. Das principais características da linguagem, podemos destacar: É fundamentada em compilação de código JavaScript; Baseada em classes; Orientada a objetos; Possui sintaxe baseada na linguagem C; Implementa heranças simples.
JIT vs AOT
O Flutter utiliza Dart como linguagem de programação. Assim como o JavaScript, a linguagem Dart é simples e fácil de aprender, no entanto, ao contrário do JavaScript que se baseia na compilação Just-in-time (JIT), o Dart utiliza a compilação ahead of time (AOT). Enquanto que o JIT vai compilando o código durante o tempo de execução, o AOT compila todo o código durante o tempo de desenvolvimento, antes da execução ser inicializada. No âmbito das aplicações móveis, a utilização do JIT pode ser um problema, nomeadamente quando se pretende desenvolver aplicações fluídas que correm a 60fps com animações, uma vez que em determinados momentos a compilação em tempo de execução pode originar falhas na performance, e podendo assim ocorrer "congelamentos" no uso da app. No entanto, esse problema não existe em aplicações móveis que utilizam a abordagem AOT. A linguagem é toda compilada antes do momento da execução, logo, a fluidez da app não será prejudicada pelo mesmo problema do JIT, o que segundo o engenheiro Leter (2017) representa uma enorme vantagem relativamente à utilização da linguagem Dart, ver Figura 1.
Figura 1 – Principais diferenças entre os 2 tipos de compilação.
[pic 3]Fonte: Wm Leler - Engenheiro de software sênior do Google (2017)
SEM PONTE
Em React Native e similares, para que o JavaScript possa se comunicar com a plataforma nativa e vice-versa é utilizada a implementação de uma camada nativa chamada Bridge. Essas implementações de Bridges sofrem com problemas associados ao tráfego de grande quantidade de dados e à mudança de contexto. Embora existam cada vez mais melhorias das bridges a serem realizadas pelos desenvolvedores de cada framework, em algum momento o tráfego elevado pode condicionar a performance da aplicação, por exemplo, ao renderizar animações personalizadas. No caso do Flutter, o código Dart é compilado diretamente para a plataforma nativa, logo, não existe a necessidade da utilização da Bridge.
...