Flutter - o guia completo para você

Assinatura Cubos On Demand:
Cursos Online On demand

Conheça os cursos da Cubos Academy:

Formação em Análise de Dados
Formação em Product Management

O uso dos smartphones nunca foi tão comum quanto hoje em dia, passamos boa parte do nosso tempo em contato com os celulares, afinal os diferentes tipos de aplicativos que se tem a disposição ajudam em diversas atividades como se comunicar com outras pessoas, ter um mapa do melhor caminho para se chegar a um lugar, organizar as tarefas do dia, pedir mercado ou comida e muitas outros problemas conseguimos resolver pelos telefones móveis.

Os aplicativos mobiles podem ser feitos por tecnologias diferentes, mas existe uma em específico que tem tomado conta das últimas discussões sobre o desenvolvimento mobile, pelas suas características peculiares e, principalmente, pelos grandes nomes que têm adotado-a: FLUTTER.

O Flutter é uma ferramenta desenvolvida pelo Google que foi apresentada ao público em 2015 e a princípio, surgiu para facilitar o processo da programação de interfaces mobile. Até 2019 era possível desenvolver aplicativos para Android e iOS utilizando um único código a partir do Flutter, mas com o lançamento da versão 1.5, web e desktop também passaram a integrar o hall de possibilidades dessa ferramenta, transformando-a em uma multiplataforma completa.

Desde então o Flutter vem chamando atenção pela sua versatilidade e atributos e, neste texto, você saberá quais são essas características e possibilidades que vêm tornando o Flutter uma excelente opção para o desenvolvimento de software. Vamos nessa?!

O que é Flutter?

Flutter é um kit de desenvolvimento de interface opensource, de código aberto, criado pelo Google. O Flutter é um framework, uma ferramenta, feito para facilitar o desenvolvimento de aplicativos mobile - dispositivos móveis - para rodar de forma nativa em qualquer sistema operacional: iOS, Android, Linux, Windows e outros, sendo assim multiplataforma.

Porém a versatilidade não para por aí, hoje em dia já é possível construir aplicações para desktop e também web, ou seja, através de um único código o software consegue funcionar de forma nativa em qualquer tipo de aparelho (celular, computador e tablet), em qualquer sistema operacional. Isso facilita muito a vida da pessoa desenvolvedora e é por isso que tantas empresas estão cada dia mais desenvolvendo apps em Flutter.

A linguagem base do Flutter é o Dart, também criada pelo Google e que se assemelha bastante ao JavaScript, já já falaremos um pouco melhor dela.

O nosso instrutor, Eduardo Lacerda, gravou um vídeo de quase 1 minuto sobre Flutter, confira:

O que é um framework?

Para o desenvolvimento de software, framework é uma estrutura de código pré-definida que contém um conjunto de funções e componentes já relacionados, resultando em funcionalidades específicas básicas de uma certa aplicação. Dessa forma, os desenvolvedores partem de uma estrutura pré-pronta, servindo como base para construção do código central, agilizando o trabalho.

Cada linguagem de programação possui seus respectivos frameworks que podem ter sido criados pela própria comunidade ou por empresas que a mantém.

Esses frameworks são facilmente encontrados nas bibliotecas de código e em comunidades de desenvolvimento de software, além disso é bem comum que mesmo uma equipe experiente de desenvolvedores utilize frameworks para economizar tempo e recursos.

Características do Flutter

O Flutter tem várias características únicas que facilitam, principalmente, o trabalho em equipe do desenvolvimento de software. Isso acontece porque as pessoas programadoras envolvidas em um projeto de Flutter, estudarão todas a mesma ferramenta, sem necessidade de especialização de front-end, Android ou outras.

Isso acaba pesando na decisão das empresas na hora de escolherem as especificações do desenvolvimento de um novo aplicativo e, por esse motivo, grandes nomes como: Google, Nubank, Alibaba, iFood, Ebay, BMW e a própria Cubos Tecnologia, acabam optando por Flutter.

De uma maneira geral, pode-se dizer que este kit de desenvolvimento é baseado em 3 pilares: desenvolvimento rápido, interfaces atrativas e performance nativa.

O desenvolvimento rápido, entre outros motivos já ditos anteriormente, também se dá porque um aplicativo construído nesta ferramenta é um widget composto por vários outros widgets menores, e dentro do próprio framework já existem esses elementos estruturais prontos, como menus, botões, layouts, textos e etc. Ou seja, criar um aplicativo em Flutter se assemelha a um LEGO, onde várias partes menores formam a integridade do app.

Além disso, o Flutter garante a performance nativa dos seus softwares porque ele se localiza na camada da interface do usuário (UI - User Interface), sem precisar de nenhum intermediário com o dispositivo, pois ele é compilado para a linguagem base do próprio dispositivo. Isso fornece aos aplicativos uma ótima experiência do usuário, já que a sua performance e fluidez não são impactadas por nenhum intermediário.

Mas não pára por aí, agora vamos conferir outras características que tornam o Flutter um framework diferente dos demais:

  • Suporte oficial do Google: por ser construído pelo Google, o Flutter conta com o padrão da empresa no seu desenvolvimento, manutenção e suporte. Além disso, este framework conta com a integração facilitada com qualquer um dos produtos Google;
  • Documentação completa: a documentação do Flutter é completa, de fácil acesso e está sempre atualizada, facilitando a consulta de quem usa o framework. Você pode consultar aqui a documentação Flutter;
  • Comunidade: outro ponto importante é que já existe uma comunidade construída com usuários ao redor do mundo, o que facilita ainda mais as trocas de informações sobre o assunto. Como por exemplo, a Flutterando, a maior comunidade de Flutter no Brasil e a Flutter - Comunidade BR, uma página no Médium cheia de artigos e tutoriais do framework e de Dart;
  • Hot Reload: é uma feature do Flutter que permite que as alterações feitas no código sejam automaticamente carregadas no aplicativo. Ou seja, ao mesmo tempo que as pessoas usuárias estão utilizando o software, pessoas desenvolvedoras podem estar consertando um bug e em questão de segundos o problema não existirá mais para os usuários. Isso acontece porque apenas o que é mexido é recarregado automaticamente;
  • Código aberto gratuitamente: toda documentação e código do Flutter está disponível na internet para qualquer pessoa consultar, facilitando a resolução de problemas técnicos;
  • Vida útil dos aplicativos: os widgets para a construção do aplicativo são parte do Flutter e não dependem do dispositivo para isso, assim não há mudança estética de um dispositivo para outro, evitando atualizações de interface, garantindo uma vida útil maior de um app. Além disso, como não existe intermediário entre o Flutter e o dispositivo, diminui a incompatibilidade em diferentes versões de um mesmo sistema operacional, o que garante ao Flutter a possibilidade de continuar funcionando no futuro em dispositivos com novas tecnologias, prolongando, também, a existência do software no futuro.

O que pode ser feito com Flutter?

O Flutter surgiu para melhorar a experiência do desenvolvimento mobile, afinal para cada sistema operacional era preciso um desenvolvimento de código específico antes do Flutter, porém com o desenvolvimento do framework, hoje em dia ele é multiplataforma, sendo usado não só para o desenvolvimento mobile, como também para desenvolvimento web e desktop.

Ou seja, com o Flutter é possível fazer softwares para celulares, mas também para computadores e internet, sendo preferencialmente usado para aplicativos móveis. Além disso, ele é o principal método de criação de aplicativos para o Google Fuchsia, o novo sistema operacional do Google que está em desenvolvimento desde 2016 e foi lançado em uma escala pequena em Maio de 2021, mas que promete ser um grande marco na história do Google.

Com o avanço do mercado de aplicativos móveis e o crescimento do Google Fuchsia, que promete uma grande escalabilidade, rodando em sistemas simples e complexos, desde sinais de trânsitos até carros, o crescimento do Flutter e Dart será cada vez maior!

O que é Dart?

Dart é uma linguagem de programação também criada pelo Google em 2011 que dá fundamentação ao Flutter. Em princípio, essa linguagem foi criada para substituir o JavaScript, acabou não cumprindo este papel - afinal o JavaScript hoje é a linguagem mais utilizada no mundo - mas o que levou ao sucesso foi a utilização no framework Flutter.

Hoje o Dart é considerado uma linguagem multiparadigma, ou seja, sustenta mais de um paradigma da programação e no seu site oficial ela se define como "linguagem otimizada para o cliente para construção de aplicativos rápidos em qualquer plataforma" - em livre tradução.

É ela quem permite a criação dos aplicativos nativos e além disso, permite também a criação de softwares que mesmo com várias telas, são de página única, ou seja, mesmo mudando de uma tela pra outra, não precisa necessariamente carregar uma nova página. Assim acrescentando mais um ponto na agilidade dos apps criados a partir do Flutter e do Dart.

Mas a rapidez não é a única vantagem do Dart que podemos destacar, ela também é mais segura se tratando de erros na hora do desenvolvimento, o que as pessoas da área costumam chamar de "type-safe". Isso acontece porque o Dart é uma linguagem compilada e para ser executada precisa passar por um programa "compilador", ainda na máquina da pessoa desenvolvedora, enviando para o cliente o código já pronto para ser executado. Durante este processo de compilar o código, possíveis erros já são encontrados e resolvidos imediatamente.

Em outras linguagens de programação, o erro só será encontrado na hora de rodar o aplicativo, assim sendo ainda mais necessária a etapa de testes no processo de desenvolvimento.

Apesar de Dart ser a base do Flutter, isso não implica necessariamente em aprender a linguagem antes do framework, é possível fazer as duas coisas ao mesmo tempo: aprender Dart e Flutter. Enquanto se estuda e aprende Flutter, mais se aprende sobre Dart, consequentemente, uma coisa leva a outra.

Sintaxe

Como vimos, o Dart foi criado pelo Google com o objetivo de substituir o JavaScript, logo, não podemos deixar de mencionar que essas duas linguagens tem familiaridade e uma delas é a sua sintaxe que é bem parecida.

O Dart é uma linguagem C-style, mas ao mesmo tempo ela tenta reduzir os ruídos que são característicos desses tipos de linguagens e também tem características de linguagens funcionais. Vejamos agora como escrever um "Hello World" em Dart:

main() {
print('Hello World!');
}

Como instalar o Flutter?

Instalar o Flutter é bem simples, afinal estamos falando de um framework de código aberto e gratuito que é facilmente encontrado na internet. Primeiro é preciso instalar o SDK Flutter, basta escolher o sistema operacional do computador que será instalado, baixar e descompactar o pacote de arquivos em uma pasta do computador.

Além disso, é preciso também um dispositivo mobile para conseguir executar o aplicativo que será desenvolvido, pode ser o aparelho físico ou um emulador de Android/iOS e o SDK do sistema operacional em que o software será desenvolvido. Mas não se preocupe, tanto o emulador quanto o SDK da plataforma são encontrados na internet em uma simples busca.

Junto com o SDK do Flutter, a instalação já inclui o SDK do Dart, seu compilador, o próprio framework Flutter e todas as outras ferramentas necessárias para começar o desenvolvimento do seu primeiro aplicativo Flutter!

Como o Flutter funciona?

O Flutter funciona similarmente a engines dos jogos, renderizando os widgets do aplicativo direto em um Canvas, por isso é possível rodar o app tanto em Android como iOS ou outro sistema operacional. Como dito anteriormente, isso contribui para a alta performance dos aplicativos em Flutter e faz com que, caso o aparelho suporte, o app possa rodar em até 120 frames por segundo.

Por que usar Flutter?

Durante o texto já apresentamos características do Flutter e algumas de suas vantagens, mas nesse tópico iremos resumir os principais motivos que estão levando grandes empresas a desenvolverem suas aplicações por meio deste framework do Google.

Segundo os seus próprios criadores, o Flutter foi criado com o objetivo de construir aplicativos mobiles de uma maneira mais fácil e com interfaces lindas para o usuário, por isso o Google se dedicou especialmente ao visual das interfaces, montando previamente diversos widgets visualmente bonitos, simplificando o desenvolvimento e garantindo a estética. Você pode conhecer o catálogo de widgets do Flutter.

Antes do Flutter, cada sistema operacional mobile (Android, iOS ou outros) necessitava de um desenvolvimento separado e específico, duplicando e até triplicando o trabalho das pessoas desenvolvedoras. A partir de 2019 com o lançamento da versão 1.5 do Flutter, o mesmo código era capaz de criar aplicativos que rodassem em todos os sistemas operacionais de smartphones, mas também no formato web e desktop, se tornando assim, multiplataforma e um dos frameworks mais completos em desenvolvimento de software.

Isso dito, uma coisa fica clara: desenvolver com Flutter economiza tempo e dinheiro das empresas, dois recursos que sempre causam dor de cabeça para serem otimizados.

Outro ponto importante é a possibilidade de criação dentro dos aplicativos, pois além de conseguir montar seus próprios widgets é possível também utilizar os recursos do Material Design (Android) e Cupertino (iOS) para incluir animações e aprimorar o visual.

O Flutter também tem alguns plugins que permitem a utilização de ferramentas do aparelho do usuário, como a câmera, galeria e outros, dando mais possibilidade para as pessoas desenvolvedoras usarem a criatividade!

Os componentes do Flutter são os widgets e eles são escritos de uma forma que possibilita maior compatibilidade com os dispositivos eletrônicos já existentes. Celulares, tablets, computadores, laptops ou smartphones se adaptam aos aplicativos desenvolvidos por Flutter, o que significa que mais usuários podem utilizar o app.

Mas assim como existem pontos positivos, também existem alguns pontos que precisam de atenção na hora de decidir pelo uso do Flutter.

Nós já sabemos que o Flutter é uma ferramenta relativamente nova se comparada a outras que já estão no mercado há anos, e apesar de grandes nomes já estarem utilizando-a, muitas pessoas desenvolvedoras podem ficar com o "pé atrás" em relação ao seu uso.

Isso acontece porque ao longo do crescimento da ferramenta, muitos problemas foram encontrados e apesar de terem sido corrigidos, existe uma insegurança do que ainda pode precisar desses ajustes. Porém, assim como tudo que é novo, é normal que algumas correções precisem ser feitas ao longo do caminho, mas tendo o Google por trás e a validação do Nubank, Ebay, iFood e outros, pode-se considerar um framework estável e confiável, apesar de recente.

Apesar de ter uma comunidade já formada ao redor do mundo, a quantidade de material gerado por outras pessoas respondendo dúvidas específicas, explicando e ensinando o uso do Flutter ainda está em crescimento. O que não acontece com tecnologias mais antigas como o JavaScript, onde é possível encontrar muito material e pacotes já prontos, facilitando a curva de aprendizado.

Porém, apesar desses pontos, em 2020 o Flutter ultrapassou o número de uso e de procura do React Native (framework desenvolvido pelo Facebook e que utiliza JavaScript como linguagem) segundo o Google Trends e de lá pra cá esse número só aumenta, assim como é possível constatar na imagem abaixo:

Avanço esse que também é possível constatar nas linguagens mais utilizadas ao redor do mundo afinal, apesar do número de pessoas desenvolvedoras que utilizam Dart ainda ser baixo, 6,5% segundo uma pesquisa feita pela Stack Overflow em 2022, esse número cresceu 2,5% em 2 anos, como podemos ver na mesma pesquisa da Stack Overflow de 2020.

O fato é que o futuro do combo Flutter e Dart é promissor, pois cada vez mais vêm ganhando espaço entre as empresas e pessoas programadoras que buscam se especializar, se atualizar e estarem preparadas para qualquer desafio. Mas peraí, será que para aprender Flutter é preciso algum conhecimento prévio? Isso é o que veremos no próximo tópico.

Quais são os pré-requisitos para programar em Flutter?

Para começar a programar com Flutter não é preciso nenhum pré-requisito específico, pelo contrário, os próprios criadores da ferramenta desenvolveram ela pensando que qualquer pessoa poderia criar um aplicativo com o Flutter, mesmo sem saber programar!

Ou seja, o framework não exige conhecimentos aprofundados de programação para quem deseja se aventurar, assim sendo o Flutter um ótimo caminho para começar os estudos no desenvolvimento mobile.

É claro que para desenvolvimentos complexos, profissionais e com mais recursos, um estudo profundo sobre a ferramenta e a linguagem de programação Dart seria imprescindível. E isso é possível através de uma formação em Flutter, tanto para aqueles que estão iniciando na carreira de programação, como para aquelas pessoas que já são desenvolvedoras e buscam ampliação do conhecimento na área.

Para saber mais sobre Flutter, por onde começar os estudos e aprender, na prática, os primeiros passos nesse mundo, fizemos a Imersão Flutter do Zero, onde nossos professores partilharam suas experiências, tiraram dúvidas recorrentes e ensinaram tudo que você precisa saber para começar! Confira:

Como está o mercado para desenvolvedores mobile?

O mercado para desenvolvedores mobile está bastante aquecido! Em uma pesquisa feita pela Geekhunter (uma plataforma de vagas de trabalho para o mercado tech) em 2021 mostrou que em relação a 2020, a procura por profissionais de desenvolvimento de software mobile cresceu 600%. Sim, você não leu errado, seiscentos por cento em apenas um ano.

Muito disso se deve a pandemia do Covid-19, onde a grande maioria das empresas migrou parte da sua operação - se não toda - para internet, aplicativos ou presença maior em redes sociais. Mas o movimento não poderia ser outro, o relatório State of Mobile 2022 da App Annie mostrou que o uso de smartphones em todo mundo aumentou 30% desde 2019 e onde a atenção dos consumidores está é onde as marcas vão procurar estar também.

Este mesmo estudo mostrou que no Brasil, em 2019 as pessoas gastavam em média 3,8 horas diárias em seus celulares e que em 2021 esse número saltou para 5,4 horas por dia. Isso leva o Brasil ao topo da lista de países que mais fazem uso dos smartphones no mundo.

Destes dados podemos tirar a seguinte conclusão: o mercado brasileiro para devs mobile que já deu um salto de 2020 para 2021 tende a continuar crescendo, uma vez que o uso de smartphones do Brasil é cada vez maior e não tem nada que impeça esse movimento crescente.

Ok, mas e o Flutter nisso?

Mercado de trabalho para desenvolvedores mobile em Flutter

Como você já sabe, o Flutter é um framework criado com o objetivo de melhorar o desenvolvimento mobile e, com a sua evolução, passou a ser multiplataforma, sendo possível desenvolver aplicativos em todos os formatos. Assim, conforme o mercado de trabalho para o desenvolvimento mobile avança, o mercado para Flutter também acompanha esse movimento, afinal com todas as vantagens dessa ferramenta, o Flutter é o próprio futuro do desenvolvimento mobile.

Comparando as pesquisas do Stack Overflow de 2020 e 2022 é possível perceber um avanço de 5,44% em 2 anos do uso de Flutter pelos profissionais de desenvolvimento de software entrevistados, veja nas imagens a seguir:

2020

2022

Esse avanço do uso do framework mostra que empresas já estão buscando por essa tecnologia e cada vez mais empresas seguirão o mesmo passo, fazendo com que profissionais capacitados em Flutter saiam na frente daqueles que ainda não se atentaram a este movimento de mercado.

Média salarial para desenvolvedores mobile em Flutter

Segundo o Glassdoor (uma plataforma de recrutamento e vagas), o salário médio para uma pessoa desenvolvedora mobile em Flutter é de R$5.300, mas isso pode variar de acordo com a senioridade da pessoa e da vaga. Quanto mais experiente tanto na área de desenvolvimento de software, quanto no próprio framework, maior será o salário.

"Considerando o histórico, estimamos um crescimento anual entre 10% e 20% na média salarial destes profissionais, considerando a escassez de mão de obra, a concorrência com empresas internacionais e o crescimento das vagas" afirma Lucas Martins, CTO da Geekhunter sobre o salário de devs mobile.

Comprovando assim que a procura por pessoas programadoras em Flutter não acontece só no Brasil, assim como a área de tecnologia em geral, o mercado mobile está em alta no mundo todo, estudando desenvolvimento de software em Flutter as portas estarão abertas mundo á fora!

O Flutter ainda é uma ferramenta em crescimento e, caso você deseje se aprofundar neste estudo, o mais recomendado é procurar uma escola de tecnologia e, em paralelo, se informar através de profissionais que já utilizam esse framework no seu dia a dia.

A Cubos Academy é uma escola de tecnologia que tem como missão transformar a realidade por meio da educação, formando talentos conectados com as demandas do mercado de tecnologia. Contamos com a experiência de um curso interno de Flutter destinado aos desenvolvedores da Cubos Tecnologia e também com turmas anteriores de Flutter abertas ao público em geral!

Se você se interessa pela área, acompanhe as nossas redes sociais, lá informamos tudo sobre nossas futuras turmas e eventos que realizamos constantemente visando uma maior distribuição de conteúdo sobre tecnologia!

Assinatura Cubos On Demand:
Cursos Online On demand

Conheça os cursos da Cubos Academy:

Formação em Análise de Dados
Formação em Product Management