Descomplicando o Flutter: o framework que vai transformar o seu desenvolvimento multiplataforma

Descomplicando o Flutter: o framework que vai transformar o seu desenvolvimento multiplataforma

Quem está iniciando no desenvolvimento topa com muitas tecnologias diferentes para escolher se especializar, muitas terminologias para entender e muitas vagas que pedem muitas coisas das quais a gente nunca ouviu falar, não é? Logo, resolvi iniciar uma pequena série de artigos com informações que me ajudaram quando comecei no Flutter e espero que ajudem quem está começando agora. 😄

Para começar, o que é um framework?

Basicamente é um conjunto de componentes, estruturas e ferramentas que podem ser reutilizados no desenvolvimento de diversas aplicações. Atua como um facilitador que tem como objetivo mitigar dificuldades recorrentes de uma forma mais genérica. Trazendo isso para o contexto do dia a dia, um framework permite que você foque nos problemas da aplicação, em vez de se preocupar com a configuração e arquitetura.

Dito isso, o que é o Flutter? Como ele se encaixa no contexto de framework e como vai facilitar a minha vida ou a da minha empresa?

Calma, pequeno gafanhoto! Vamos por partes.

Sabemos que um framework é um conjunto de ferramentas e componentes que facilitam nosso dia a dia como desenvolvedores, certo? E sabemos também que existem muitas linguagens de programação e que cada uma delas tem seu(s) alvo(s), seja backend, frontend, mobile, desktop e por aí vai.

Agora, imagine um cenário de uma empresa que precisa desenvolver um aplicativo para Android e iOS. Pensando no cenário tradicional, seria necessário desenvolver um código para Android em Kotlin ou Java, e um código para iOS em Swift ou Objective-C, em que ambos vão fazer as mesmas coisas, ter as mesmas telas, a mesma lógica, mas que necessitam serem escritos com códigos-fonte diferentes. Sintetizou o trabalho que isso dá? Fora o custo para a empresa, que provavelmente necessitará de pelo menos um dev para cada stack ou então assumir o risco do projeto demorar no mínimo o dobro do tempo para ir para produção.

Pensando em todos estes problemas (e muitos outros), nasceram os frameworks multiplataforma, e um dos mais famosos é também o nosso queridinho e alvo desta série de artigos: o Flutter! A magia é que um desenvolvedor, com um código-fonte e com uma só linguagem consegue resolver o problema dessa empresa e publicar uma aplicação que atenda ambas as plataformas. Também existem outras vantagens (explicadas a seguir neste artigo) como desempenho, compilação nativa, hot reload e muitos outros pontos que tornam o Flutter uma opção muito bacana para aderir.

A cereja do bolo é que hoje em dia não estamos mais falando somente de Android e iOS. Os frameworks híbridos estão evoluindo e atendendo diversas plataformas, como desktop para Windows, Linux e Mac, ou mesmo desenvolvimento Web. E tudo isso com um único código, com uma única regra de negócio. Não é uma belezinha? 😍

Claro que quando falamos em Flutter, existem muitas comparações com outras soluções de mercado: React Native e Kotlin Multiplataforma, por exemplo. Cada um tem suas vantagens e desvantagens mas todos tem seu espaço, e como um antigo gestor meu costumava dizer, "tem mercado para todo mundo!" 😄

Mas enfim, agora que você entendeu quais problemas o multiplataforma resolve, vamos ao que interessa.

Flutter

O Flutter é um framework open source para desenvolvimento multiplataforma, criado e mantido pela Google. Utiliza como base a linguagem Dart e já é o queridinho de diversas empresas gigantes do mercado: iFood, QuintoAndar, BMW, Alibaba e muitas outras, além da própria Google.


Algumas das empresas que utilizam Flutter

Características

  • Multiplataforma: bom, não preciso dizer mais nada, não é? Android, iOS, Windows, Mac, Linux, web... Tem para todos os gostos 😉
  • Aplicações nativas a partir de um único código base: isso mesmo, o Flutter compila nativo! Isto quer dizer que o código Dart é transformado diretamente em código de máquina nativo das plataformas target, em vez de ser interpretado em tempo de execução como acontece em outras soluções multiplataforma. Isso traz benefícios de desempenho, trazendo o Flutter para mais próximo dos apps nativos.
  • Acesso direto aos recursos nativos do sistema: apesar de ser multiplataforma, ele permite que os devs utilizem funcionalidades específicas das plataformas nativas sem limitações significativas, através dos Platform Channels (prometo que explico melhor nos próximos artigos!). Estamos falando de acesso à câmera, geolocalização, sensores, push notifications, bluetooth, NFC e muitos outros.
  • Renderização com maior desempenho: é uma das razões que fizeram muitas empresas migrarem para o Flutter (lado a lado com a questão de unificar o código fonte). Um dos motivos é que utiliza renderização direta em um mecanismo próprio em vez de passar pelo UIView do iOS ou pelo View do Android, por exemplo, eliminando a necessidade de uma camada de tradução entre o código Flutter e os componentes nativos, já que o Flutter controla cada pixel da tela.
  • Ausência de pontes (Bridges) com o código nativo: uma comparação básica com o React Native é que o RN utiliza uma bridge para comunicar com o código Javascript com os componentes nativos. Essa ponte introduz latência, especialmente em interações complexas ou de alto volume de dados (animações, listas grandes etc). O Dart, por sua vez, trabalha com compilação AOT (Ahead-of-Time), ou seja, todo o código Dart é compilado diretamente em código de máquina nativo antes de ser executado, o que resulta em um desempenho muito próximo ao nativo.
  • Manejo eficiente de Threads: o flutter utiliza o isolate do Dart para isolar tarefas de longa duração do thread principal da UI, permitindo que operações intensivas (como cálculos ou chamadas de rede) rodem em paralelo sem bloquear o fluxo da interface. Isso permite que a UI permaneça responsiva, independentemente do que esteja acontecendo em background.
  • Hot Reload: é o queridinho dos devs mobile! Embora não afete diretamente o desempenho em produção, otimiza muito o processo de desenvolvimento, permitindo mudanças rápidas no código sem a necessidade de recompilar todo o app e aumentando a produtividade do dev.

Considerações finais

O Flutter combina um motor de renderização rápido e eficiente com a compilação nativa e uma arquitetura otimizada, resultando em uma experiência de alta performance, tanto durante o desenvolvimento quanto na execução de apps. É uma boa alternativa de framework para ingressar no mercado, já que conforme vimos anteriormente, as grandes empresas estão aderindo e cada dia está tomando mais espaço em nossos corações. ❣️

A essa altura você pode estar se perguntando: "mas por que o Flutter e não o React Native ou mesmo o Kotlin Multiplataforma?" Bom, isto é assunto para os próximos artigos, então fica ligado que logo logo tem mais! Mas se estiver com muita pressa, dá uma olhada nesse link. Espero que ajude! Até a próxima 😉

Referências

Muito informativo, gostei do artigo.

Excelente artigo. Parabéns!!!

Leonardo Figueiredo do Nascimento

Desenvolvedor de Software | Java | Spring | JavaScript | Node.js | React.js

1 m

Ótimo artigo Bruna, comecei minha jornada com Flutter ontem, seu artigo deu uma clareada em algumas dúvidas.

Cindi Nishimoto

Flutter Developer | Software Engineer | Dart | Mobile | C# | .NET

1 m

Muito bacana o seu artigo, Bruna. Com certeza vai ajudar muita gente!! 👏🏻👏🏻🩵

Parabéns pelo artigo

Entre para ver ou adicionar um comentário

Outras pessoas também visualizaram

Conferir tópicos