Flutter: o guia inicial sobre esse framework!

Tempo de leitura: 17 minutes

Até pouco tempo atrás, uma das principais dificuldades do desenvolvimento de aplicativos para smartphones era a necessidade de escrever praticamente o mesmo código, com algumas adaptações, para Android e iOS. O principal objetivo do framework Flutter é eliminar esse problema, pois ele permite a criação de aplicações para esses sistemas a partir do mesmo código fonte.

E não é só isso. Com ele também é possível desenvolver aplicativos para desktop nas plataformas Linux e macOS. Portanto, essa é uma tecnologia bem abrangente e que oferece uma série de recursos para facilitar o desenvolvimento sem a necessidade de reescrever códigos. Para apresentar essa ferramenta, fizemos este guia inicial sobre o Flutter, que contém os seguintes tópicos:

  • O que é Flutter?
  • Conheça a linguagem Dart
  • Entenda a arquitetura do Framework Flutter
  • Entenda a anatomia de um Flutter App!
  • Quais são as 5 principais características do Flutter?
  • Quais as principais aplicações do Flutter? Saiba para que é usado?
  • Quais as vantagens de usar o Flutter?
  • Quais as desvantagens de usar Flutter?
  • Instalando o Flutter e criando seu primeiro projeto!
  • Quais as diferenças entre Flutter, React Native e Xamarin?
  • Quais as principais empresas que estão usando Flutter?
  • Exemplo de uso do Flutter em aplicações

O que é Flutter?

O Flutter é um framework de código aberto, desenvolvido pelo Google, que permite o desenvolvimento de aplicações nativas para Android e iOS. A primeira versão da ferramenta foi lançada em dezembro de 2018, com a proposta de desenvolver aplicações híbridas e concorrer com outras tecnologias semelhantes, como o React Native e Ionic.

O Flutter utiliza o Dart como base para o desenvolvimento de suas aplicações. Trata-se de uma linguagem multiparadigma, criada em 2011 pelo Google, com a intenção de disputar com o JavaScript. Ela permite o desenvolvimento de aplicações cliente-servidor e de aplicativos para smartphones. No Flutter o Dart é utilizado com o padrão de programação orientada a objetos.

O Google Flutter oferece uma forma simples e fácil de construir aplicativos. Sua arquitetura é dividida, de modo geral, em três camadas específicas:

  • Framework Dart: camada que engloba os Flutter widgets — componentes predefinidos — para o desenvolvimento das aplicações com base em dois pacotes de componentes visuais: Material Design e Cupertino, os quais oferecem recursos das plataformas Android e iOS respectivamente;
  • Engine: camada responsável pela UI — User Interface — e UX — User Experience — do Flutter. Na prática, ela tem a função de unir o código do aplicativo com os recursos do framework para criar a aplicação;
  • Embedder: camada responsável por transformar a aplicação em Flutter para cada plataforma específica.

Conheça a linguagem Dart

Dart é uma linguagem de programação que lembra muito as linguagens C e Java. Foi criada pela Google e lançada ao mercado em outubro de 2011, tem suporte para uma tipagem mais dura como a do C mas também pode ser usada de maneira semelhante ao Javascript.

Como mencionado anteriormente, é a linguagem utilizada na framework Flutter e ganhou muita notoriedade por isso. No entanto, o Dart tem muito mais para apresentar do que apenas isso. Como qualquer outra linguagem, conseguimos criar qualquer tipo de aplicação, desde um servidor web até um aplicativo para Windows.

Dessa forma, temos que a linguagem Dart é muito versátil e de fácil compreensão para desenvolvedores iniciantes, tornando-se assim uma linguagem emergente nos últimos anos.

Entenda a arquitetura do Framework Flutter

Já que o Flutter é um SDK (Software Development Kit, que em português significa Kit de Desenvolvimento de Software), temos um ecossistema completo em nossas mãos, contando com um motor de renderizamento, widgets pré-prontos, APIs de integração e muito mais.

Framework Flutter

A framework é feita a partir da linguagem Dart e oferece amplo suporte ao Material Design e o estilo do Cupertino. Com isso temos a implementação de Widgets, animações, gerenciamento de estados e mais alguns fatores que influenciam a dinâmica da interface da pessoa usuária.

Framework Engine

A Engine é escrita na linguagem C++ para ter um maior desempenho. Nela, temos a implementação das funcionalidades essenciais do Flutter, incluindo o layout de textos, arquivos e gerenciamento de redes. O Dart é usado para compilar e executar as aplicações e a biblioteca Skia do Google é usada para renderização de gráficos.

Camada de plataforma Flutter

Nesta camada, temos a conversação do app com o sistema operacional do celular, Android ou IOS. De fato, é responsável por controlar o ciclo de vida dos programas, gerenciando o tamanho da tela, manipulação de threads e a plataforma de mensagem.

Entenda a anatomia de um Flutter App!

Como qualquer outro tipo de aplicação, temos um formato de projeto já pré-estabelecido e no Flutter não poderia ser diferente. Dessa forma utilizamos uma estrutura de árvores, onde separamos os componentes e os adicionamos na tela de maneira hierárquica, facilitando assim o fluxo do nosso app.

Na imagem a seguir, podemos ver um exemplo de estrutura de aplicativo no Flutter.

Como vimos, temos o Scaffold que é uma tela branca que serve como um agregador para os componentes filhos.

Logo abaixo, temos o AppBar que fica fixo na parte superior do app e o Container que é basicamente uma caixa que irá conter o conteúdo do nosso app.

Já dentro do Container, adicionamos uma Column que nos permite incluir Widgets nesse espaço. Por padrão, o alocamento dos componentes é feito na direção vertical.

O primeiro componente adicionado na Column é uma Row, que nada mais é do que um componente que nos oferece a oportunidade de adicionar mais Widgets. Só que, dessa vez de maneira horizontal. E dentro dessa Row temos apenas dois Widgets simples, um texto e um ícone.

O segundo componente da Column é apenas um Widget de texto.

Como percebemos, a estruturação do Flutter é bem simples e intuitiva, muito semelhante ao HTML nesse ponto. Podemos ver também que o possível código desse sistema não fica muito complexo, já que temos uma padronização e reutilização dos maravilhosos Widgets que o Flutter nos oferece.

Quais são as 5 principais características do Flutter?

O Flutter contém uma série de características que fazem com que ele seja uma ferramenta poderosa na construção de aplicações para dispositivos móveis. Confira algumas delas a seguir.

1. Permite o desenvolvimento multiplataforma

O framework Flutter pode ser instalado em Windows, Linux, macOS e Chrome OS. Portanto, em qualquer uma dessas plataformas é possível desenvolver aplicativos para Android e iOS. Além disso, ele pode ser utilizado em diferentes ferramentas, como no editor de código Visual Studio Code e na IDE Android Studio.

2. Possibilita o desenvolvimento de aplicações nativas

Como mencionamos, desenvolver para diferentes plataformas requer a escrita de códigos em duplicidade, especialmente a camada que contém as regras de negócio. Uma das características do Flutter é permitir a criação de aplicações nativas para diferentes sistemas operacionais — entre eles Android e iOS —, o que elimina essa necessidade.

Vale ressaltar que ele também permite o desenvolvimento de aplicativos Flutter desktop em Linux e macOS. Além disso, o projeto para o desenvolvimento de aplicações Flutter web está em versão beta.

3. Permite o acesso aos recursos nativos

Outra característica do Flutter é permitir a utilização de recursos nativos do sistema operacional, como câmera, geolocalização etc. Quando o aplicativo é compilado, ele é transformado em uma aplicação nativa de acordo com a plataforma correspondente escolhida.

4. Oferece maior desempenho

Por oferecer acesso aos recursos nativos do sistema operacional, há maior desempenho ao executar as aplicações. Outra razão para isso é por ele não necessitar de uma camada intermediária para acessar esses recursos, ou seja, o aplicativo é escrito em Dart, mas convertido para a linguagem de máquina nativa do sistema operacional.

5. Componentização e programação reativa

No Flutter, temos algumas características que podemos encontrar nas ferramentas concorrentes. No Android temos o jeito de montar o Layout, no Xamarin possuímos a unificação de código para distribuição nas diversas plataformas e no React obtemos a programação reativa e componentização, que no Flutter são referidos como Widgets.

Tudo que encontramos no Flutter são Widgets, logo, tudo no Flutter são componentes. Podemos fazer uma comparação com as aplicações web de hoje em dia. Dessa maneira temos que um texto é um Widget, um botão também e até mesmo um comportamento também é um Widget.

Fora isso, o Flutter já vem de fábrica com o Live Reload embutido. Dessa forma, se houver qualquer tipo de alteração em algum arquivo do projeto, a aplicação se modifica em tempo real, além de que temos o armazenamento dos estados das variáveis no momento da atualização para que não se perca nenhum dado na hora de salvar algum arquivo.

Quais as principais aplicações do Flutter? Saiba para que é usado?

O Flutter é usado para facilitar o desenvolvimento mobile através de um toolkit. Por ter o código fonte aberto criado pelo Google, conseguimos criar aplicativos para Android e IOS, além de ser o principal método para desenvolver programas para o Google Fuchsia.

Uma das promessas do time de desenvolvimento do Flutter é a criação de aplicativos para web. Em 2021, o suporte à plataforma web está em beta, mas funcional.

Quais as vantagens de usar o Flutter?

Algumas das características apresentadas no tópico anterior, já representam benefícios em utilizar o Flutter, como o maior desempenho e o acesso a recursos nativos. Entretanto, existem outras vantagens em utilizar essa ferramenta. Confira algumas delas abaixo.

Simples de aprender e simples de usar

O Flutter é uma ferramenta moderníssima e você consegue ver isso a partir do desenvolvimento no seu dia-a-dia. De maneira simples e com pouco código, já conseguimos criar aplicativos para celular. Se você já utilizou Java, Swift, ou React Native, vai perceber que o Flutter é muito diferente.

Um dos pontos mais invejáveis do Flutter é a utilização de pouco código para a criação de um app realmente nativo.

Economia de tempo e dinheiro

Como o Flutter é uma ferramenta de desenvolvimento multiplataforma, conseguimos criar na mesma base de código um aplicativo Android e outro IOS. Desenvolvimento multiplataforma é o melhor jeito de economizar tempo e dinheiro, já que conseguimos diminuir o processo de desenvolvimento para diversas plataformas.

Temos também a questão da licenciatura que em algumas outras frameworks, como o Xamarin, acabamos tendo de pagar para utilizar a IDE, por exemplo. No caso do Flutter, tudo é de graça, desde o SDK até as IDEs, podendo até escolher qual editor de texto você vai usar para desenvolver os aplicativos.

É um framework open source

Contar com ferramentas de código aberto contribui para reduzir o custo no desenvolvimento da aplicação, já que não será preciso pagar pela licença de uso. Além do Google, que é o desenvolvedor principal, há a comunidade de pessoas desenvolvedoras que ajudam a tirar dúvidas em diferentes plataformas, como na Stack Overflow, no Gitter, entre outras.

Alta produtividade

O Flutter permite o desenvolvimento de aplicações para diferentes plataformas. Isso significa maior produtividade para a equipe de desenvolvimento. Entretanto, ele utiliza a linguagem Dart, que não é muito popular. De acordo com a pesquisa da Stack Overflow, de 2020, sobre as tecnologias mais populares, a linguagem Dart é utilizada por apenas 4% dos entrevistados.

Já a linguagem JavaScript, é utilizada por 67,7% dos entrevistados. Por conta disso, caso seja iniciante, é melhor iniciar o aprendizado para o desenvolvimento de aplicativos em tecnologias como o React Native / JavaScript, que já estão mais consolidados no mercado.

Contudo, o framework Flutter e a linguagem Dart também devem fazer parte de um complemento desse aprendizado, já que é uma tecnologia que vem tomando espaço no mercado.

Boa documentação

É muito importante que as novas ferramentas tenham boas documentações, mas infelizmente nem sempre é o caso.

Felizmente, o Flutter provê para os seus desenvolvedores e desenvolvedoras uma documentação riquíssima em detalhes e exemplos. Nela, temos muitas receitas de código pronto e também um catálogo com todos os Widgets que o Flutter tem.

Uma ótima opção para startup MVP(Minimum Viable Product)

Se você quer mostrar um MVP (Mínimo Produto Viável) rapidamente para um investidor, o Flutter é uma boa opção. Os 4 principais motivos para isso são:

  • É relativamente mais barato desenvolver aplicativos utilizando o Flutter, já que não precisamos criar uma linha de desenvolvimento individual para cada plataforma (Android e IOS).
  • Você só precisará de apenas uma pessoa desenvolvedora para o MVP.
  • A performance de um app do Flutter pode ser comparável à um app nativo da plataforma.
  • Os Widgets são bonitos e de fácil customização, com poucas linhas é possível alterar a interface do componente para adequar ao seu projeto.

A comunidade do Flutter é crescente

O Flutter tem uma grande comunidade que está apenas começando!

Se você é o tipo de pessoa que não se sente confortável em estudar uma ferramenta que não tem muitos apoiadores, fique tranquilo pois o Flutter tem uma comunidade que vem crescendo cada vez mais a cada ano. Atualmente, o projeto do Flutter no Github já tem mais estrelas que o React Native do Facebook.

Logo abaixo, temos uma lista dos lugares que são mais frequentados dentro de universo:

  • Flutter Awesome: Uma listagem das melhores ferramentas e bibliotecas para o Flutter. Esse site publica conteúdo diariamente com um monte de exemplos, templates de aplicações, dicas e muito mais.
  • Awesome Flutter: É um repositório do Github (linkado com o Flutter Awesome) com uma lista de artigos, vídeos, componentes, utilidades e assim por diante.
  • Flutterando: A maior comunidade brasileira sobre Flutter, nela podemos ver vídeos para iniciantes na ferramenta, dicas, pacotes de Widgets e entre outras coisas.
  • Flutter comunidade BR: Uma página de publicação do Médium onde você pode ver artigos, tutoriais, etc.

Compatibilidade com Android Studio e VS Code

É possível utilizar o Flutter em diferentes IDE, sendo os dois principais editores de texto o Android Studio (IntelliJ) e o VS Code.

A principal vantagem do Android Studio é que por ser uma ferramenta robusta e com diversas integrações, você apenas precisará baixar os plugins do Dart e Flutter para iniciar.

Já o VS Code é um programa mais simples e tudo é configurável a partir dos plugins do seu marketplace. Basta escrever Flutter na barra de pesquisa e instalar o plugin de desenvolvimento, e a partir disso pode começar a se aventurar no mundo móvel.

Resumindo, se você quiser agilidade e não quer perder tempo configurando um monte de coisa, escolha o Android Studio, caso você goste de customizar o seu ambiente de trabalho, escolha o VS Code. Você é totalmente livre para escolher isso!

Quais as desvantagens de usar Flutter?

Qualquer ferramenta tem a sua fraqueza, especialmente se está no começo da sua existência. A imaturidade e a incerteza de como desenvolver um novo produto pode assustar pioneiros em potencial.

Contudo, conforme observamos a evolução do Flutter, percebemos que com o crescimento da ferramenta muitos problemas foram corrigidos. Por exemplo, as dúvidas iniciais sobre a implementação para o IOS já não são mais um problema graças aos Widgets do Cupertino serem sempre atualizados.

Além de que, a confiabilidade e eficiência da ferramenta já foi testada por muito tempo por gigantes da tecnologia como Alibaba e o Google Ads, com milhões de downloads e usuários diários.

Então, quais são as desvantagens do Flutter?

Falta de bibliotecas de terceiros

Bibliotecas e pacotes de terceiros fazem um grande papel na vida de um desenvolvedor de software, agilizando o processo de criação das telas e diminuindo os códigos feitos do zero. Essas bibliotecas são principalmente de código aberto, fáceis de usar, e com muitos testes feitos.

Para muitas tecnologias populares e antigas, não é tão difícil encontrar o pacote necessário para o seu projeto, enquanto que para as mais novas é frequentemente um problema.

Hoje em dia, existem mais de 15 mil pacotes listados na documentação oficial do Flutter e esse número continua crescendo. Obviamente é menor que o seu competidor, React Native, porém é mais do que o suficiente.

Aliás, como já comentamos, existem muitos Widgets pré-definidos no Flutter que já conseguem desempenhar um grande papel no fluxo de desenvolvimento, com isso não precisamos de muitas ferramentas terceirizadas.

A Linguagem Dart

Por ser uma linguagem muito nova e que utiliza os paradigmas da Programação Orientada a Objetos, acaba-se tendo um grande problema para se encontrar novas pessoas desenvolvedoras. Comparado com outras tecnologias, especialmente alguns anciões como JavaScript, C#, e Java, acabamos percebendo a derrota do Dart. Devemos levar isso em consideração ao escolher o Flutter como nossa ferramenta de desenvolvimento mobile.

Mesmo sendo uma linguagem relativamente fácil, para desenvolvedores iniciantes essa impressão não é verdadeira e muitos acabam aprendendo linguagens que tem a possibilidade de criação de programas para web e mobile, tais como o JavaScript.

Tamanho do aplicativo

Os usuários têm um armazenamento limitado nos seus celulares, por causa disso, é esperado que os aplicativos modernos tenham um tamanho relativamente baixo. Para isso, pessoas programadoras tentam evitar animações, diminuir o tamanho de pacotes, e até mesmo comprimir imagens.

Uma vez que usamos os Widgets pré-definidos ao invés de usar os de terceiro, temos um tamanho um pouco maior que 4 MB em um aplicativo do Flutter, que é definitivamente maior que um aplicativo nativo em Java (539 KB) e Kotlin (550 KB), isso para um aplicativo básico. Embora, devemos ser justos, os competidores compartilham do mesmo problema: no caso do Xamarin, temos um tamanho médio de 16 MB e no React Native 7 MB.

Instalando o Flutter e criando seu primeiro projeto!

Bem, já comentamos sobre muitos tópicos do Flutter e agora iremos lhe mostrar o passo-a-passo para a instalação dessa ferramenta no seu computador.

Download e instalação

Para começar a desenvolver aplicativos no Flutter é bem simples, primeiramente baixe o SDK para o seu sistema operacional no site oficial do Flutter. Atualmente as plataformas suportadas são Windows, MacOS, Linux e Chrome OS.

Se você quiser rodar algum comando do Flutter a partir de qualquer terminal, devemos adicioná-lo no Path do sistema. Para isso vá na barra de busca do seu sistema e procure por “variáveis” e selecione Editar as variáveis de ambiente do seu sistema.

Dentro, procure a variável Path dentro da listagem de variáveis do usuário e adicione um novo valor com o caminho inteiro da pasta flutter/bin.

Para o restante das configurações de desenvolvimento, aconselhamos que você leia o tutorial da sua plataforma desejada na própria documentação oficial do Flutter.

Criando seu primeiro projeto: passo a passo!

Antes de iniciar, precisamos instalar o plugin do Dart e do Flutter, para isso clique na engrenagem na tela inicial do Android Studio:

Logo em seguida, clique no item “Plugins” no menu.

Agora pesquise “Dart” e instale o plugin. Após isso, pesquise “Flutter” e faça o mesmo procedimento.

Dessa forma, podemos continuar o nosso passo-a-passo.

Depois de instalado e configurado o seu ambiente, quando você abrir o Android Studio você terá uma opção nova para criar um projeto em Flutter:

Logo após selecione a opção Flutter como mostrado na foto abaixo.

Logo após você vera a configuração…

Nesta tela você ira definir o nome do projeto, localização, descrição, (Tipo e Organização), além de tipo linguagem de Android e de iOS, plataforma por padrão é sempre marcado (Android, iOS), se desejar fazer um teste em Site, ative a opção Web. Terminando click em Finish, ele ira criar e abrir para iniciar o desenvolvimento.

 

Executando o aplicativo

Com o projeto aberto, temos um arquivo chamado main.dart. Nele já temos alguns códigos para testes. Atualmente você consegue rodar os aplicativos em navegadores web (Edge e Chrome) mas, como o foco aqui é no mobile, devemos ter configurado um emulador ou um celular para isso,

Rodando o aplicativo, temos essa tela:

A partir disso, podemos começar a desenvolver a nossa aplicação mobile multiplataforma utilizando o incrível Flutter.

Quais as diferenças entre Flutter, React Native e Xamarin?

A grande batalha entre Flutter, React Native e Xamarin para produção de aplicativos multiplataformas está fazendo muitos desenvolvedores e desenvolvedoras avaliarem os prós e contras para selecionar a melhor escolha para os seus projetos.

Qualquer framework tem os seus problemas, só que no final do dia, você deve escolher aquela que melhor se adapta às necessidades do seu projeto, visando superar as desvantagens para fornecer um aplicativo com o melhor desempenho.

Vamos dar uma olhada nas três frameworks para desenvolvimento mobile multiplataforma mais populares disponíveis hoje em dia.

Começo e mercado

Xamarin

Começando pelo mais antigo, o Xamarin foi criado em 2011 e adquirido pela Microsoft em 2016. na época o seu principal diferencial era ser uma framework para desenvolvimento de aplicativos multiplataforma, Android, IOS e Windows Phone. Com a descontinuação do Windows Phone em 2015, o Xamarin acabou perdendo um grande espaço no mercado de tecnologia.

React Native

Criado internamente no Facebook em 2015, o React Native utiliza toda a ideia reativa do React no mundo móvel. Com o slogan “Aprenda uma vez, escreva em qualquer lugar”, o React Native tem a ideia de utilizar o queridinho JavaScript para criar telas no celular. Também temos a possibilidade de criar o mesmo aplicativo para Android e IOS utilizando a mesma base de código, tudo isso por meio de componentes internos e APIs. Hoje em dia, é uma das ferramentas mais populares do mercado.

Flutter

Por último o Flutter, que é o mais jovem de todos, como apresentado durante esse artigo, foi criado pela Google em 2017 com o objetivo de entregar uma framework de código aberto que permita que os desenvolvedores e desenvolvedoras construam aplicativos multiplataformas. Ele tem um comportamento muito semelhante a um aplicativo nativo. No entanto, diferentemente dos outros, o Flutter adota uma linguagem própria denominada Dart.

Linguagens de desenvolvimento

Um dos problemas na vida dos desenvolvedores de aplicativos é ter que aprender uma linguagem de programação para cada ferramenta nova, algumas têm uma curva de aprendizado baixa e conseguimos desempenhar bem o nosso papel, só que outras nem tanto.

No Xamarin temos o uso principal das linguagens C# e F# com a grande ajuda da plataforma .NET para desenvolvermos aplicativos nativos de forma fácil.

Ao escolher o React Native, temos a oportunidade de escrever códigos de script utilizando o Javascript que, em seguida, se transformam em aplicativos React Native. Contudo, uma das desvantagens do Javascript é o esforço adicional na hora de construir os recursos para as multiplataformas.

O fluxo de desenvolvimento do Flutter é completamente diferente dos demais, isso porque utilizamos a linguagem Dart para construção dos aplicativos móveis e temos a nossa disposição toda a rede do Google.

Performance

Para resumir, o Flutter tem a melhor performance entre todas as ferramentas, visto que a engine do Dart converte o seu código um nível acima do C, chegando muito perto do código nativo.

O React Native acaba perdendo muita agilidade por causa da ponte que ele acaba fazendo com o JavaScript para utilizar os componentes nativos do sistema. E no Xamarin, temos praticamente o mesmo caso.

No fim, a performance em si da framework não é muito relevante, devemos levar em conta as práticas aplicadas no código e o uso adequado da ferramenta e recursos que as frameworks oferecem. Neste ponto conseguimos tanto criar aplicações velozes como também projetos lentos, tudo isso depende de como as pessoas arquitetam o seu programa.

Reusabilidade de código

A reusabilidade de código é um dos fatores mais importantes na hora de criar aplicativos Android e IOS. Devemos sempre que possível usar as ferramentas das frameworks e os conceitos do clean code antes de desenvolver algo.

A partir da política de códigos do React, onde devemos “aprender uma vez e utilizar em qualquer lugar”, acabamos tendo pequenos problemas na hora de adotar várias plataformas. Outro ponto que devemos levar em conta é o fato que a reutilização de código é um processo bem complicado de se manter ao passo que vai se criando novos componentes e fluxos.

O Flutter provê uma reusabilidade de código máxima através do desenvolvimento de poderosos Widgets que utilizam lógicas já programadas. É a ferramenta recomendada para o desenvolvimento de multiplataforma pois oferece uma consistência no User Experience.

Xamarin é o top dessa lista com um código que chega até 96% de reusabilidade, usando Xamarin Forms, componentes e a linguagem C#.

Quais as principais empresas que estão usando Flutter?

Flutter vem tendo uma grande ascensão entre pessoas desenvolvedoras e empresas. Logo abaixo, você pode ver algumas empresas que utilizam essa ferramenta.

  • Nubank: Adotado em 2019 pelo emergente banco digital é um dos casos mais completos e interessantes dessa lista.
  • Tencent: Gigante chinesa que utiliza o Flutter em diversos aplicativos.
  • Google Assistant: O Flutter ajuda a potencializar um número cada vez maior de aplicativos do Google Assistant.
  • Ebay: O aplicativo Ebay Motors é um recurso poderoso para navegar, comprar e vender veículos.
  • Google Ads: Mais um aplicativo da Google. Nele, o usuário ou usuária consegue gerenciar, otimizar e seguir todos os seus anúncios com a conveniência de um celular.
  • Alibaba: O Flutter ajudou a dar vida a um novo aplicativo para um dos maiores mercados online do mundo.
  • E no nosso Governo tem feito uma migração de suas aplicações com o do INSS etc para Flutter.

Exemplo de uso do Flutter em aplicações

Vamos conferir o algoritmo de uma aplicação simples em Flutter para exibir uma mensagem na tela. Veja a depuração do código abaixo.

import 'package:flutter/material.dart';
void main() {
  runApp(AplicacaoPrincipal());
}
class AplicacaoPrincipal extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
           home: Scaffold(
            appBar: AppBar(
            title: Text("App Flutter"),
      ),
      body: Text("Essa é a nossa aplicação em Flutter"),
    ));
  }
}

Toda aplicação em Flutter contém um arquivo principal chamado main.dart, que representa o ponto de partida do aplicativo. Nele, devem ser feitas as principais configurações do sistema. Perceba que na primeira linha fizemos a importação do pacote material.dart, o que permite o acesso aos componentes para o desenvolvimento da aplicação.

A seguir, criamos uma função main() que executa runApp(), fazendo a chamada à aplicação principal. Observe que criamos uma classe chamada AplicacaoPrincipal(), herdando as características de StatelessWidget. Trata-se de uma classe que permite a criação de widgets que não sofrerão interações com a pessoa usuária do aplicativo.

Então, chamamos a função MaterialApp(), o widget principal que contém uma série de propriedades e outros widgets que podemos utilizar para criar a interface para a aplicação. No nosso exemplo, criamos uma página chamada home, contendo uma barra de aplicativo com a mensagem “App Flutter” e um body para exibir a mensagem “Essa é a nossa aplicação em Flutter”.

O Flutter vem ganhando desde o seu lançamento uma boa recepção do público em geral. Sendo uma framework muito nova, temos a utilização da também nova linguagem de programação Dart, além de conseguirmos desenvolver aplicativos híbridos para Android e IOS. Além do mais, temos todo o esquema de Hot Reload e reatividade que ficou muito popular através do React.

Além de tudo isso, a maneira que criamos os layouts das telas lembra muito o Android Studio em si, utilizamos um fluxo de desenvolvimento em árvores e componentização através dos Widgets que são construídos a partir dos pacotes Material Design e Cupertino.

Entre os pontos positivos e negativos, o Flutter se sai muito bem. Tendo um grande número de aplicações rodando em produção, conseguimos ter uma noção da força que essa nova tecnologia disponibiliza para os seus desenvolvedores e desenvolvedoras