Flutter

O que é ?

O Flutter é o framework móvel do Google que permite construir aplicativos Android e iOS com apenas um código. Ele também é um código aberto e gratuito.

Ele inclui:

  • Framework reativo moderno;
  • Mecanismo de renderização em 2D muito rápido;
  • Ferramentas para desenvolvimento;
  • Widgets prontos que constituem os componentes da UI do aplicativo.
  • O que os usuários geralmente esperam de aplicativos?
  • Posso listar pelo menos três fatores:
  • Design bonito;
  • Animações suaves;
  • Ótimo desempenho.

Além disso, os desenvolvedores precisam criar novos recursos sem comprometer a qualidade e o desempenho. É aí que o Flutter entra.

O Flutter fornece o melhor do desenvolvimento mobile: desempenho e integração de plataformas móveis, com desenvolvimento rápido e alcance multiplataforma e com ferramentas de UI portáteis.

Segundo o Google, o Flutter foi construído para melhorar a qualidade dos aplicativos, a velocidade do desenvolvimento, e para alcançar mais usuários.

O Flutter é único, porque o código é compilado em ARM, ou seja, compila o código para cada plataforma. Isso agiliza a abertura e o desempenho do aplicativo. Além disso, utiliza um renderizador Mobile First acelerado por GPU para que haja consistência da UI entre as plataformas e o dispositivo. Então ele projeta os Widgets com um Framework personalizável e extensível em camadas.

Como funciona ?

Falaremos um pouco de como funciona o Flutter para o desenvolvimento mobile.

Tudo em Flutter é Widget, vai de um simples Label a uma screen completa. Essa é uma abordagem bastante interessante que nos facilita na compreensão e construção de views, pois tudo se trata de uma árvore de Widget.

Existem Widgets que tem como papel organização e disposição de elementos (famosos contêineres) como :

Row: Organiza os widgets um do lado do outro

Container: Como diz o próprio nome: ele é somente um container para por um Widget, que nos possibilita setar parâmetros como padding, margin, background, etc

Column: Organiza os widget um abaixo do outro, existem muitos outros mas esses são os mais básicos e mais utilizados.

Juntando todos esses existentes, ou fazendo do zero utilizando Canvas, você pode criar seus próprios Widgets e reutilizá-los em sua aplicação, e se quiser, até disponibilizá-lo em forma de Lib para o público.

Quais são as vantagens de Flutter ?

1. Aplicativos móveis mais rápidos

Apps desenvolvidos usando Flutter são mais rápidos em comparação com outras frameworks multiplataforma. Por possuir widgets próprios, os aplicativos em Flutter tem uma interface leve que permite ótima experiência ao usuário, conseguindo, segundo a Google, rodar animações em 60 fps, além de ser compilado para código nativo, enquanto React Native roda em uma VM que controla a UI nativa.

Os apps em Flutter funcionam quase como um aplicativo nativo, e por isso React-Native, por exemplo, perde em desempenho para o Flutter; Já o Ionic funciona como uma webview incorporada em um aplicativo nativo, tornando-o mais lento que os demais, principalmente em aplicações que usam mais recursos.

2. Hot reload

Hot Reload pode ser considerado uma das maiores vantagens do Flutter. Essa funcionalidade permite que o desenvolvedor veja as mudanças feitas no código imediatamente, poupando, assim, tempo durante o seu desenvolvimento e na fase de testes. Além disso, Hot Reload facilita a correção de bugs e erros, já que é possível testá-lo rapidamente. Diferente do Hot Reload do React-Native, que recarrega o aplicativo do começo, o Flutter recarrega apenas a tela alterada, e de forma muito mais rápida.

3. Suporte oficial da Google

Assim como todas as ferramentas desenvolvidas e disponibilizadas pela Google, Flutter possui suporte oficial. Sendo assim, a documentação oficial sobre Flutter é sempre atualizada e possui informações necessárias para a implementação do projeto. Flutter também possui integração prática e simples com diversos recursos da Google, como Login, Firebase.

4. Fácil para instalar e configurar

Ao contrário do seu principal concorrente (React Native), Flutter possui um setup de instalação e configuração muito simples e prático, até mesmo no Linux. Com poucos comandos (flutter doctor, por exemplo), é possível verificar se há problemas e como consertá-los. Algumas IDEs, como Intellij IDEA, Android Studio e VS Code, possuem integração com Dart/Flutter através de plugins, tornando a experiência mais vantajosa ao desenvolvedor; atualizar os plugins, criar novos projetos ou até mesmo corrigir erros no Flutter podem ser feitos pela interface desses programas.

5. Menos código

O desenvolvimento é feito com um único código (no caso do Flutter, na linguagem Dart), poupando tempo e trabalho para os desenvolvedores. Esse, porém, é um benefício de todos os frameworks multiplataforma e um dos maiores pesos para desenvolvedores em grupos pequenos ou independentes, e para projetos pequenos.

6. A mesma interface até em dispositivos antigos

Como dito anteriormente, o pacote do SDK de Flutter vem com widgets próprios, portanto dispositivos antigos terão os mesmo widgets que os dispositivos novos, já que não são utilizados os widgets nativos das plataformas. Dessa forma, o fato de que alguns aplicativos são “mais bonitos” em dispositivos recém-lançados do que em dispositivos antigos não se encaixa em Flutter.

E quais são as desvantagens?

1. Só suporta mobile

Enquanto seu principal concorrente, o React Native, também é utilizado para desenvolvimento web, Flutter só é compatível com desenvolvimento mobile, então se for necessário o mínimo de esforço possível para desenvolver aplicações para várias plataformas (além de mobile), Flutter pode não ser a melhor solução. Entretanto, Flutter será utilizado para desenvolver aplicações na plataforma Fuchsia, um novo sistema operacional que está sendo desenvolvido pela Google desde 2016.

2. Recente

O beta 2 de Flutter foi anunciado em abril deste ano (2018), portanto Flutter ainda não é muito estável em comparação com React, e alguns recursos importantes podem ainda estar em desenvolvimento. Contudo, a Google está trabalhando arduamente para aperfeiçoá-lo e está atualizando-o frequentemente.

3. Poucas bibliotecas

Como dito no tópico acima, Flutter é relativamente novo e ainda está em beta, por esse motivo algumas funcionalidades essenciais para o desenvolvimento da aplicação podem não estar prontas ainda, e isso significa que o desenvolvedor precisará implementá-las por conta própria, aumentando o tempo necessário para o desenvolvimento da aplicação, o que a maioria dos desenvolvedores não desejam. Todavia, a maior parte das bibliotecas mais importantes já está pronta. Além disso, a equipe de desenvolvedores do Flutter está ativamente auxiliando os usuários do Flutter, e problemas que são frequentemente enviados têm sido resolvidos rapidamente.

No geral, cabe a cada desenvolvedor analisar as necessidades do projeto a ser implementado, os prós e contras, para decidir se é vantajoso utilizar Flutter. Por ser desenvolvido pela Google, com seu enorme poder de investimento, Flutter tem um grande potencial no mercado, e há um crescente número de aplicações desenvolvidas em Flutter, mostrando que há uma boa aceitação por parte dos desenvolvedores.