Flutter: o que é, como funciona, vantagens e desvantagens

[vc_row type=”in_container” full_screen_row_position=”middle” column_margin=”default” column_direction=”default” column_direction_tablet=”default” column_direction_phone=”default” scene_position=”center” text_color=”dark” text_align=”left” row_border_radius=”none” row_border_radius_applies=”bg” overlay_strength=”0.3″ gradient_direction=”left_to_right” shape_divider_position=”bottom” bg_image_animation=”none”][vc_column column_padding=”no-extra-padding” column_padding_tablet=”inherit” column_padding_phone=”inherit” column_padding_position=”all” column_element_spacing=”default” background_color_opacity=”1″ background_hover_color_opacity=”1″ column_shadow=”none” column_border_radius=”none” column_link_target=”_self” gradient_direction=”left_to_right” overlay_strength=”0.3″ width=”1/1″ tablet_width_inherit=”default” tablet_text_alignment=”default” phone_text_alignment=”default” bg_image_animation=”none” border_type=”simple” column_border_width=”none” column_border_style=”solid”][vc_column_text]O Flutter é uma estrutura de UI – Interface do usuário –, lançada pela Google em 2018, que permite aos desenvolvedores criarem aplicativos nativos para Android, IOs, Desktop e Web com apenas uma base de código.[/vc_column_text][/vc_column][/vc_row][vc_row type=”in_container” full_screen_row_position=”middle” column_margin=”default” column_direction=”default” column_direction_tablet=”default” column_direction_phone=”default” scene_position=”center” text_color=”dark” text_align=”left” row_border_radius=”none” row_border_radius_applies=”bg” overlay_strength=”0.3″ gradient_direction=”left_to_right” shape_divider_position=”bottom” bg_image_animation=”none”][vc_column column_padding=”no-extra-padding” column_padding_tablet=”inherit” column_padding_phone=”inherit” column_padding_position=”all” column_element_spacing=”default” background_color_opacity=”1″ background_hover_color_opacity=”1″ column_shadow=”none” column_border_radius=”none” column_link_target=”_self” gradient_direction=”left_to_right” overlay_strength=”0.3″ width=”1/1″ tablet_width_inherit=”default” tablet_text_alignment=”default” phone_text_alignment=”default” bg_image_animation=”none” border_type=”simple” column_border_width=”none” column_border_style=”solid”][vc_column_text]

O que é o Flutter?

 

Apesar de ter ganhado bastante notoriedade nos últimos dois anos, o Flutter é de 2015 e esteve em fase beta por alguns anos, até ser oficialmente lançado pela Google em maio de 2018. 

Ele é um devkit de código aberto e gratuito, utilizado para o desenvolvimento e codificação de apps nativos a partir da mesma base de códigos, ou seja, permite que o profissional crie para Android e IOs, por exemplo, utilizando uma linguagem de programação e uma única base de código. 

O framework conta com uma coleção de elementos de interface do usuário reutilizáveis – botões, entradas de texto, controles deslizantes, entre outros –, passíveis de personalização, de acordo com a necessidade do projeto. 

O Flutter consegue manter a estrutura visual entre as plataformas, enquanto oferece um desenvolvimento com desempenho semelhante à performance nativa. 

Ele atua com a linguagem de programação Dart, criada em 2011 também pela Google, considerado o substituto do JavaScript. O Dart é uma linguagem de programação que pode ser utilizada em back-end bem como em front-end, com o Flutter.

 

Flutter 2.0: as principais atualizações

Antes de mais nada, o Flutter é relativamente jovem e esse é o motivo de alguns recursos interessantes não estarem presentes em sua estrutura inicial. Mas parece que isso é passado! 

Ouvindo a sua forte comunidade, o Flutter recebeu uma atualização que trouxe mudanças promissoras para os desenvolvedores. 

Em março de 2021, a Google anunciou a versão 2.0, que trouxe mudanças consideráveis e bastante aguardadas. Confira:

  • App web estáveis

Primeiramente, temos os apps estáveis! Segundo a própria Google, o suporte de qualidade de produção para a web talvez tenha sido a maior novidade. 

Era possível criar para a web utilizando o Flutter? A princípio, sim! Havia essa possibilidade antes da atualização, mas a sua baixa usabilidade e os problemas de desempenho o faziam ser visto com maior foco, inicialmente, para o desenvolvimento móvel. Mas isso mudou, principalmente em relação ao desempenho. 

A versão mais atual está disponível para 3 cenários:

  1. PWA: o progressive web app, em outras palavras, aplicações web progressivas que unem o melhor do mobile e da web. Em seu formato técnico funcionam como páginas comuns da web, porém sua interface visual é semelhante aos apps móveis. 
  2. SPAs: são os aplicativos de página única. Eles carregam uma única página, que será atualizada conforme as interações do usuário. Sua dinâmica permite criar aplicativos web com fluidez, sem a necessidade de recarregamentos constantes da página. 
  3. Conexão com os aplicativos já existentes: por fim, será viável levar os apps móveis, já criados, para a versão web, permitindo o código compartilhado para ambas as experiências. 

Você pode conferir um exemplo de um app estável publicado por um dos nossos Especialistas em Flutter, Matheus Silva, clicando aqui

  • Mais participação em desktop, dobráveis e dispositivos incorporados

Em busca da presença em outros dispositivos, a Google anunciou três parcerias em seu evento de lançamento do Flutter 2.0.

  1. Canonical: a empresa responsável pelo sistema operacional Ubuntu firmou uma parceria com a Google para levar o Flutter aos desktops. Os engenheiros da companhia serão responsáveis pelo desenvolvimento e implantação no Linux. 
  2. Microsoft: a empresa passa a aumentar as contribuições, que já são realizadas de forma contínua para que o apoio ao Windows seja qualificado. Agora, a Microsoft passa a contribuir também com o mecanismo do Flutter que oferece suporte à classe emergente de dispositivos Android dobráveis.
  3. Toyota: a montadora, visando promover uma melhor experiência digital, adaptará o Flutter às necessidades de sistemas veiculares através do API embutido no devkit. 
  • Melhorias na área de trabalho

A Google lançou o suporte a desktop, no entanto “sob a bandeira de lançamento antecipado”. A versão final é programada para o final de 2021, mas o “beta instantâneo” é capaz de mostrar como será a versão final. 

Os principais esforços foram destinados à garantia de que a edição de texto opere como a experiência nativa de cada uma das plataformas suportadas, ou seja, Android, IOs, Linux, macOS, Web e Windows. 

Tudo isso aliado a alguns recursos básicos, como pontos de pivô de seleção de texto e a capacidade de interromper a propagação de algum evento de teclado após o seu tratamento. 

Além disso, o atraso necessário, ao lidar com entradas de toque, deu lugar às ações imediatas ao arrastar com um dispositivo apontador de alta precisão. 

Houve a integração do menu de contexto aos widgets TextField e TextFormField para as linguagens de design Material e Cupertino. 

Outra melhoria que vale destaque foi a inserção das alças ao widget ReorderableListView. 

A barra de rolagem também contou com uma atualização para ser mais interativa, que antes facilitava o trabalho do desenvolvedor, mas forçava o usuário a arrastar de forma longa, o que pode ser cansativo. 

Agora é possível arrastar o polegar, clicar na trilha para subir e descer e deixá-la estilizada conforme o design do app.

  • Flutter Folio

Para que os apps se adaptem bem às plataformas exploradas, o SDK agora conta com o app de álbum de recortes. Esse app é o Flutter Folio, que permitirá que os projetos rodem bem em todos os tamanhos de telas, reajam bem a todos os tipos de modo de entrada (toque, teclado e mouse) e respondam com êxito em celulares, web e desktops, apenas com uma única base de códigos.

  • Novos widgets

A versão mais recente vem acompanhada com o Autocomplete. Em outras palavras, essa é a funcionalidade básica que permite o preenchimento automático dos apps Flutter. A segunda novidade é o ScaffoldMessenger, que foi uma solução para resolver diversos problemas com o Snackbar.

Além dessas, ainda existem tantas outras novidades que merecem atenção, confira:

  • Múltiplas instâncias com Add-to-App

Para aqueles que não podem criar um aplicativo do zero, é possível reaproveitar o código Flutter, em Android e IOs, preservando a base de código nativo existente. 

  • Correção de flutuação

Através do Flutter Fix, o objetivo é facilitar o trabalho dos Devs e evitar que eles façam quebras constantes de código.

  • DevTools

Uma ferramenta de depuração de aplicativos Flutter.

 

Ainda foram adicionados:

  • Extensão Android Studio/IntelliJ
  • Extensão de código do Visual Studio
  • DartPad atualizado para suportar a versão 2.0
  • Atualização de Ecossistema
  • Suporte ao Null Safety
  • Novos recursos para IOs
  • Versão beta do Google Mobile Ads for Flutter

Crescimento

 

Atualmente, em nível de popularidade e utilização, é possível fazer algumas comparações entre o Flutter e o React Native. 

Estima-se que haja mais de 150 mil apps criados com ele disponíveis na Play Store e, talvez, o exemplo mais importante seja o aplicativo Xianyu, do Alibaba, utilizado para mais de 45 milhões de usuários mensalmente, segundo dados de maio de 2021. 

Empresas como eBay e Groupon, bem como BMW e NuBank, além de outras de vários setores, já fazem uso do Flutter para unificar as aparências dos seus aplicativos mobile e da web, o que mostra uma certa tendência de que haja uma oferta elevada de apps disponíveis criados a partir de Flutter.

Outro fato interessante sobre o constante crescimento do Flutter é a considerável existência de comunidades. Por elas é possível conseguir uma série de artigos, tutoriais, informações e afins.

Algumas dessas comunidades são:

  1. Flutter Awesome
  2. GitHub
  3. Its All Widgets
  4. Medium

Em especial, não poderíamos deixar de destacar a maior e mais importante comunidade dedicada ao Flutter na América Latina, a Flutterando.

Figurando dentre as maiores comunidades do mundo, a Flutterando surgiu aqui nas terras Tupiniquins e conta com criadores e idealizadores que, além de contribuírem diretamente com a evolução e melhoria do próprio Flutter, resolvendo problemas abertos em seu repositório oficial, mantêm packages utilizados mundialmente, como o Triple, Flutter_Modular, Slidy, entre outros. 

Vale a pena dar uma conferida! 

Há cerca de 500 mil profissionais utilizando-o, mensalmente. As principais localidades desses desenvolvedores são: Brasil, China, Estados Unidos, UE e índia.

De acordo com Eric Seidel, gerente de engenharia da Google:

“Você vê hoje como o Flutter já está permitindo que desenvolvedores em todo o mundo entreguem aplicativos bonitos para centenas de milhões de pessoas em todo o mundo. Mas isso também é apenas o começo.”

“O Flutter é altamente portátil e já funciona em muitos formatos além dos telefones… Então, se eu olhar para a frente alguns anos, verei o Flutter rodando em muitos outros lugares.”

 

Principais vantagens do Flutter

Não é à toa que o SDK desenvolvido pela Google já esteja figurando entre as principais estruturas móveis, nos dias de hoje. Há uma série de benefícios que ele oferece e que chamam a atenção dos profissionais. Confira quais são os principais pontos positivos:

  • Rápido desenvolvimento de código

A agilidade na entrega do aplicativo é algo notório. Claro que existem outros fatores que influenciam no cumprimento dos prazos, mas se depender do devkit da Google, tempo não será um problema. Essa rapidez é alcançada graças aos seguintes recursos:

  1. Hot reload: em primeiro lugar o recarregamento a quente. Ele permite que desenvolvedor visualize as alterações aplicadas em tempo real. Essa ferramenta confere mais agilidade durante os trabalhos e ajuda na economia de tempo. O recarregamento a quente do Flutter é considerado melhor que os recursos dos concorrentes – o que se caracteriza como um diferencial para atrair novos usuários, que podem pausar a execução do código, fazer alterações neles e continuar do mesmo lugar.
  2. Widgets: como é de se esperar, os widgets do Flutter são baseados no próprio Google. Assim, não há dúvidas sobre a qualidade dos códigos, que são melhores do que outras estruturas de código aberto. Portanto, são disponibilizados modelos consistentes para desenvolvimento e design, que em sua maioria são personalizáveis e encurtam bastante o tempo dos profissionais, principalmente se compararmos com outros frameworks. Outra vantagem nesse quesito é a aparência de Material e Cupertino. 
  3. Código mínimo e acesso a recursos nativos: como o Flutter tem a linguagem Dart, que possui ligação direta no código ARM dos dispositivos mobile, os desenvolvedores encontram mais uma facilidade, por conta das integrações de terceiros e base de código nativa. Tudo isso abre portas para o acesso de recursos nativos. 
  • A incrível UI

Segundo Will Larche, engenheiro de software da Google:

“A arquitetura do Flutter foi projetada para construir uma interface de usuário bonita e personalizada. O principal objetivo do Flutter é tornar a construção de interfaces de aplicativos personalizadas e sofisticadas uma experiência mais rápida e agradável para designers e desenvolvedores. Flutter é poderoso o suficiente para desenhar qualquer coisa que os designers sonhem.”

Podemos destacar três características sobre a interface:

  1. Design personalizado: primordialmente, o Flutter conta com o motor gráfico de alto desempenho e código aberto Skia, o mesmo utilizado pela Adobe; no Google Chrome e Chrome OS, Android, Mozilla Firefox, entre outros. Com esse mecanismo gráfico é possível construir apps com layouts/designs personalizados, com chances quase nulas da presença de falhas de interface após atualização de software – como nos concorrentes – e ficarão iguais tanto no Android, quanto no sistema operacional móvel da Apple. 
  2. Mesma lógica de negócios e UI: essas similaridades promovem uma experiência fluída, independentemente do sistema operacional. Além disso, o Flutter não precisa de nenhum componente de UI específico para renderizar sua interface de usuário, a única coisa que ele precisa para mostrar a UI do app é uma tela para desenhar. 
  3. Potencial de personalização da UI: praticamente, tudo que é visto em tela pode ser personalizado, considerando ou não a complexidade do elemento. Para isso, a quantidade de esforços é menor, se comparada à necessária em programas de desenvolvimento em plataformas nativas.
  4. Custo reduzido: não é necessário criar e manter dois apps diferentes por conta das duas plataformas. Basta criar um, para ambos os sistemas operacionais.

 

Desvantagens do Flutter

Apesar de inúmeras vantagens que podem nos tendenciar a escolhê-lo, em detrimento de seus concorrentes, o Flutter também apresenta alguns pontos negativos que precisam ser considerados antes de começar a desenvolver com ele. Confira a seguir quais são eles.

  • Arquivos grandes

Por mais que muitos smartphones, tablets e outros dispositivos contenham uma disponibilidade interessante de memória, é sempre viável entregar um aplicativo que ocupe o menor espaço possível. Se esse for um fator determinante para o seu app, o Flutter pode te atrapalhar, porque a quantidade dos apps desenvolvidos no devkit da Google são grandes. Por exemplo, um aplicativo Hello World, criado em Java nativo tem cerca de 500 KB; no Flutter, ele pode representar de 4,7 até 6,7 MB. 

  • Novas habilidades são necessárias

O Flutter é fácil de utilizar, mas, como tudo que é novo, há a exigência de novos conhecimentos. Essa dificuldade é a menor de todas, já que cabe ao Developer buscar informações (principalmente nas comunidades listadas no início do texto). Caso o profissional não conheça o Dart, aprendê-lo é o caminho inicial, mas não será uma tarefa difícil, mesmo para os iniciantes. 

 

Resumo 

 

Como foi possível perceber, o Flutter é uma tecnologia que traz uma série de features importantes que conseguem diminuir o tempo de trabalho, promover mais agilidade para os Devs bem como reduzir custos, além de tantas e tantas outras vantagens. 

É preciso reconhecer que, mesmo que poucos, os pontos negativos podem nos fazer pensar duas vezes antes de escolher esse devkit, mas há horizontes esperançosos e o grande exemplo disso é a atualização 2.0.

Ainda não há soluções pertinentes a SEO, já que não existem, por enquanto, recursos que facilitem ou mesmo habilitem as otimizações para o motor de busca. 

Nesse sentido, outra coisa que pode preocupar é o tempo de carregamento da página. Como o Flutter precisa ser inicializado antes do carregamento do aplicativo, a tendência é lentidão. Em síntese, esse fator é crucial para o próprio SEO e para a rejeição dos usuários no momento da abertura de uma aplicação. 

Claramente, a Google não deve parar por aí e no futuro teremos mais correções e melhorias desejadas pela comunidade.

Por fim, com o tempo, as desvantagens serão contornadas e teremos uma ferramenta mais robusta e completa a nossa disposição. 

 

Agora, queremos saber de você. Já desenvolveu com o Flutter ou pretende estudá-lo para começar a colocar a mão na massa? Conta pra gente aqui nos comentários as suas expectativas também. Ah! Compartilhe com seus amigos.

 

Contribuições e revisão: Matheus Silva Ataídes[/vc_column_text][/vc_column][/vc_row]

0 0 Votos
Article Rating
Inscreva-se
Notificar-me
guest

0 Comentários
Feedbacks embutidos
Ver todos os comentários

São José dos Campos
São Paulo – Brasil

Ponta Grossa
Paraná – Brasil

Ciudad del Este
Paraguai

Madrid
Espanha

0
Adoraria sua opinião, por favor, comente.x