[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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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:
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:
- 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.
- 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.
- 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:
- 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.
- 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.
- 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.
- 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]