Flutter — 3 (ou mais) motivos para começar a usar

Antes de pontuar os 3 motivos pelos quais alguém ou alguma empresa deve começar a usar Flutter, quero esclarecer algumas coisas antes:

  1. Bom, o que é Flutter? A Google chama de uma Portable UI Toolkit (ferramenta portátil para interfaces), que permite construir apps para Android e iOS escrevendo apenas um código. Já existem outras soluções cross-platform que permitem isso, mas, pelo menos para mim, nunca tinha experimentado uma solução que fosse cross-platform e apresentasse uma performance tão boa. Se você quiser mais detalhes sobre uma definição, pode acessar https://developers.googleblog.com/2018/12/flutter-10-googles-portable-ui-toolkit.html ou assistir esse vídeo https://www.youtube.com/watch?v=kpcjBD1XDwU;
  2. Eu sempre fui um defensor ferrenho de desenvolvimento nativo para apps. E quando digo ferrenho, é ferrenho mesmo, é só olhar minha bio aqui no Medium. Já tive muitas experências ruins com ferramentas que entregam 1 codebase 2 apps por 3 motivos: os apps sofriam em performance, a UI resultado era horrível e, por final, a integração com a parte nativa do sistema (seja Android ou iOS) sofria com bugs e mais bugs. Mas o Flutter mudou completamente minha opinião sobre isso.

E agora, aqui estão os motivos para que você comece a usar o Flutter como sua linguagem de programação para construção de apps.

Um código = 2 apps (1 Android + 1 iOS)

Vou começar esse ponto reforçando alguns problemas que existem com outras ferramentas de desenvolvimento cross-platform: performance ruim, UI ruim, integração nativa ruim, instabilidade, quantidade de bugs considerável e o principal, na minha opinião, a prometida facilidade em escrever um código e ter 2 apps era uma furada, sua vida de desenvolvedor virava um pesadelo.

Usando Flutter esses problemas são minizamos de uma forma sensacional. Vamos lá:

  1. Performance: é incrível. Os apps rodam muito bem, me arrisco a dizer que em alguns casos rodam até melhor que um app nativo. É a frase ‘apps com performance nativa’ finalmente levada a sério;
  2. UI: mais um ponto forte. Desenvolver UI com Flutter é simples e intuitivo, a ferramenta lida de forma transparente com as diferenças entre as plataformas, aliviando um bocado de dor de cabeça. A interface é baseada e construida inteira para que fique nativa, ou seja, nada de botões estranhos ou scrolls com efeitos nunca antes vistos. Se você for amante de Material Design, ficará ainda mais feliz;
  3. Integração nativa: aqui está a coisa mais legal. Você pode usar Flutter para construir um app inteiro ou usar apenas para partes especificas. Por exemplo, suponha que você tenha um app que trabalhe com a câmera (aplique filtros e faça edições), você constrói a parte da câmera nativa, mas o restante pode ser desenvolvido em Flutter para que seja compartilhado entre as duas plataformas. Você terá uma diminuição gigantesca bugs, ganhará agilidade e mais tempo para focar em novas funcionalidades e/ou melhorias;
  4. Estabilidade: se você fizer tudo certo, dificilmente o app escrito em Flutter vai crashar para o usuário. Erros ainda podem acontecer, mas a ferramenta adiciona uma camada que blinda seu app de muitas erros comuns (e nem sempre fáceis de serem resolvidos).
  5. Facilidade: escrever apps usando Flutter é prazeiroso. Uma das principais facilidades que a ferramenta oferece é o hot reload, que atualiza o app que está rodando (seja no emulador ou em um device real) no momento em que você altera o código. Isso garante uma agilidade gigantesca no desenvolvimento.

Qualidade dos apps

Qual das imagens representa o app nativo? (Uma das imagens tem uma dica que vai ajudar)

Com essas imagens lado a lado você consegue afirmar qual app é o nativo e qual é o feito com Flutter? Se sim, porque? Como identificou?

O resultado é fantástico. A peformance é incrível, a UI é linda e a facilidade para desenvolver é empolgante. Um dado interessante para compartilhar: reescrevi um app em Flutter que temos na Neomode em menos de 1 mês, o app inteiro. A versão original do mesmo app foi feita em Java e levou aproximadamente 3 meses para ficar pronta. E o melhor de tudo é que a versão reescrita serve para ambas as plataformas.

Facilidade (agilidade, qualidade e estabilidade)

Esse tópico existe apenas para reforçar o que já foi dito (talvez não de forma tão claro quanto agora) sobre as qualidades em torno do uso da ferramenta.

  1. Escrever código em Flutter é intuitivo, simples e direto ao ponto. A ferramenta foi escrita utilizando a linguagem Dart (https://www.dartlang.org/). Uma nova linguagem moderna, leve e (de novo) simples. Por todos esses aspectos citados, é possível enxergar uma melhora significante na questão de tempo de desenvolvimento para aplicativos, aumentando sua agilidade;
  2. Ainda mais importante é que utilizando a ferramenta não termos perda de qualidade em prol de ganho de tempo. Conseguimos unir os dois, tendo uma só base de código, o que também mitiga bugs de regra de negócio específicos de cada plataforma;
  3. Os apps resultantes são extremamente estavéis, adicionando uma camada anti-bugs, são resilientes, não tratam todo erro como erro crashável (isso quer dizer que o app pode dar erro, mas não vai parar de funcionar inesperadamente), funcionam extremamente bem integrados a parte nativa (notificações, acesso a câmera, ciclo de vida, permissões e por ai vai).

Para fechar, tenho acompanhado vários sites e muitos tem noticiado que o Flutter vem forte em 2019. Espero que esse texto sirva como um atiçador, ou até mesmo como um argumento, para que você ou sua empresa comece a considerar pra valer a adoção dessa nova ferramenta.

Se surgirem dúvidas sobre o uso da ferramenta, questionamentos válidos sobre o que foi escrito, troca de informações sobre essa comparação sempre presente entre nativo x cross-platform ou algum assunto pertinente, entre em contato comigo. Sou sempre ouvidos!

Um grande abraço!