Logo Passei Direto
Buscar

Estrutura básica de aplicativos Flutter

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Estrutura básica de aplicativos 
Flutter
Apresentação
O desenvolvimento de aplicações e sistemas para dispositivos móveis consiste em atividades e 
processos acerca do desenvolvimento de software para smartphones, tablets e PDAs, entre outros.
Flutter é um kit de ferramentas desenvolvido pela Google para facilitar a criação de aplicações 
móveis para múltiplas plataformas. Com ele, você poderá criar um código apenas e executá-lo em 
diversos ambientes: Android, iOS, web e até mesmo desktop.
Nesta Unidade de Aprendizagem, você vai aprender os passos de configuração do SDK do Flutter e 
como usar a ferramenta Android Studio para criar aplicações básicas. Além disso, também vai 
aprender a estrutura e os componentes de código principais de uma aplicação Flutter: os widgets.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Configurar um projeto de aplicativo móvel em Flutter e Dart.•
Definir a estrutura básica de um aplicativo Flutter.•
Explicar o funcionamento básico de widgets e leiautes.•
Desafio
Os widgets são os componentes principais que compõem as aplicações Flutter. Podem ser de dois 
tipos: stateless widgets, cujo conteúdo não se altera durante a execução; e stateful widgets, cujo 
conteúdo (estado) pode se alterar durante a utilização.
Tudo que compõe uma aplicação Flutter é um widget de um desses tipos, desde contêineres que 
organizam os leiautes da aplicação até controles básicos de interação do usuário, como campos de 
texto e botões.
Imagine a seguinte situação:
Desenvolva uma aplicação Flutter com dois campos de entrada para ler os valores de duas notas 
(N1 e N2) do usuário e um botão com o texto "Calcular Média".
Infográfico
Para criar um aplicativo Flutter, primeiro é preciso criar um projeto. Isso pode ser feito por meio do 
comando flutter create na linha de comando, ou utilizando uma ferramenta de desenvolvimento 
como o Android Studio. Um projeto de aplicativo Flutter é composto de diversos diretórios e 
arquivos.
Neste Infográfico, você vai compreender a estrutura de um projeto Flutter, explicando a finalidade 
de cada componente.
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/6be4e328-bd23-4d45-96a8-a55e63e45173/dca0ad7f-6db0-410c-97b5-de5df568f422.jpg
Conteúdo do Livro
O Flutter foi desenvolvido para facilitar a criação de aplicações móveis. Ele se baseia na linguagem 
Dart e possibilita criar aplicações que podem ser executadas nativamente em diversas plataformas: 
Android, iOS, web e até mesmo desktop.
No capítulo Estrutura básica de aplicativos Flutter, base teórica desta Unidade de Aprendizagem, 
você vai aprender a desenvolver aplicações Flutter desde o processo de configuração de seu SDK, 
além de usar uma IDE para criar aplicações básicas. Por fim, vai entender a estrutura dessas 
aplicações e os widgets usados em sua implementação.
Boa leitura.
FUNDAMENTOS DE 
DESENVOLVIMENTO 
MOBILE
OBJETIVOS DE APRENDIZAGEM
 > Configurar um projeto de aplicativo móvel em Flutter e Dart.
 > Definir a estrutura básica de um aplicativo Flutter.
 > Explicar o funcionamento básico de widgets e leiautes.
Introdução
O Flutter é um conjunto de ferramentas desenvolvido pela Google para me-
lhorar o desenvolvimento e a experiência do usuário, com o objetivo principal 
de renderizar aplicativos com alto desempenho e construir aplicativos móveis 
nativos para Android e iOS a partir de uma única base de código.
Neste capítulo, você vai conferir como criar um projeto de aplicativo móvel 
Android utilizando o Flutter. Além disso, vai verificar como ocorre o processo 
de instalação e configuração das ferramentas necessárias. Por fim, você vai 
conhecer a estrutura básica de um aplicativo Flutter, bem como o funcionamento 
de alguns widgets e sua utilização para criar os aplicativos.
Criando um aplicativo móvel utilizando 
Flutter
Antes de utilizar as ferramentas do Flutter, precisamos realizar alguns pro-
cedimentos de instalação. Embora seja possível escrever o código utilizando 
qualquer editor simples de código, é interessante utilizar um ambiente inte-
Estrutura básica de 
aplicativos Flutter
Rafael Leal Martins
grado de desenvolvimento (IDE, integrated development environment) para 
facilitar a codificação. Para tanto, a ferramenta que utilizaremos aqui é o 
Android Studio. 
Inicialmente, vamos seguir o procedimento descrito na seção Get Started 
do site oficial do Flutter, como pode ser observado na Figura 1.
Figura 1. Opção Get Started no site do Flutter.
Fonte: Adaptada do site oficial do Flutter (GOOGLE, 2021b). 
O próximo passo é selecionar em qual sistema operacional o Flutter será 
instalado. Aqui, escolheremos a opção Windows, conforme a Figura 2.
Figura 2. Escolha do sistema operacional (OS) em que o Flutter será instalado.
Fonte: Adaptada do site oficial do Flutter (GOOGLE, 2021c). 
Estrutura básica de aplicativos Flutter2
Em seguida, você precisa baixar o Flutter SDK (software development kit), 
conforme a Figura 3.
Figura 3. Baixando o Flutter SDK.
Fonte: Adaptada do site oficial do Flutter (GOOGLE, 2021d).
Após baixar o SDK, descompacte o arquivo em alguma pasta do seu sistema 
operacional. A documentação não recomenda que pastas que requerem pri-
vilégios de acesso sejam escolhidas (p. ex., pasta C:\Arquivos de Programas).
Se quiser utilizar os comandos Flutter no console Windows, você 
precisa adicionar a pasta de arquivos binários do Flutter à variável 
de ambiente Path. A documentação do Flutter (FLUTTER..., [2021], documento 
on-line) indica os seguintes passos:
Na barra de pesquisa Iniciar, digite “env” e selecione Editar as variáveis de ambiente 
para sua conta. 
Em seguida, clique em Variáveis de Ambiente...
Em Variáveis do Usuário, verifique se há uma entrada chamada Path.
Se a entrada existir, insira o caminho completo para o subdiretório flutter/bin 
utilizando ; (ponto e vírgula) como separador dos valores existentes.
Se a entrada não existir, crie uma nova variável de usuário chamada Path com o 
caminho completo para o diretório flutter/bin como seu valor.
Você tem de fechar e reabrir quaisquer janelas de console existentes para que essas 
alterações entrem em vigor.
Fonte: Google (2021d, tradução nossa). 
Estrutura básica de aplicativos Flutter 3
Android Studio
Após instalar o Flutter SDK, é necessário instalar e configurar o Android 
Studio. Você pode baixá-lo no site Android Developers. Segundo o site oficial 
do Android Studio, (GUIA..., 2021, documento on-line): 
O Android Studio é o ambiente de desenvolvimento integrado (IDE, na sigla em 
inglês) oficial para o desenvolvimento de apps Android e é baseado no IntelliJ IDEA. 
Além do editor de código e das ferramentas de desenvolvedor avançadas do IntelliJ, 
o Android Studio oferece ainda mais recursos para aumentar sua produtividade 
na criação de apps Android.
Embora tenha sido originalmente criado para o desenvolvimento de apli-
cações Android, o Android Studio pode ser configurado para trabalhar com 
o desenvolvimento em Flutter. Contudo, o Flutter depende de uma instala-
ção completa do Android Studio para fornecer as suas dependências para a 
plataforma Android. Confira, a seguir, o passo a passo para essa instalação.
De acordo com a documentação oficial do Flutter (FLUTTER..., [2021]), 
deve-se completar o passo a passo a seguir para realizar a instalação 
completa do Android Studio.
1. Baixe e instale o Android Studio.
2. Inicie o Android Studio e execute Android Studio Setup Wizard. Com isso, você 
instalará as mais recentes ferramentas de linha de comando Android SDK, 
Android SDK e Android SDK Build-Tools, que são exigidas pelo Flutter para 
desenvolver para Android.
3. No terminal (Prompt de comando ou PowerShell), execute o comando flutter 
doctor para confirmar se o Flutter consegue localizar a sua instalação do 
Android Studio. Se tudo estiver correto, a saída daimagem a seguir deve ser 
exibida. (Observação: se o Flutter não conseguir localizar o Android Studio, 
execute o comando flutter config --android-studio-dir no terminal para definir o diretório no qual o Android Studio está 
instalado.)
Estrutura básica de aplicativos Flutter4
4. Dentro do Android Studio, abra a opção de gerenciamento de plugins (menu 
File > Settings > Plugins).
5. Selecione a opção Marketplace, pesquise pelo plugin Flutter e clique em Install.
Observe que o plugin Flutter também requisitará que o plugin Dart seja 
instalado. Após instalar o Flutter SDK e o Android Studio, confira, a seguir, 
como criar um projeto Flutter nessa ferramenta de desenvolvimento.
Criando um projeto Flutter no Android Studio
É possível criar um projeto para um novo aplicativo Flutter no Android Studio 
de várias formas, e uma delas é por meio da tela inicial do Android Studio. 
Na tela inicial, clique na opção Create New Flutter Project, conforme a Figura 4.
Estrutura básica de aplicativos Flutter 5
Figura 4. Criando um projeto Flutter na tela inicial do Android Studio.
Em seguida, selecione a opção Flutter Application, conforme a Figura 5. 
Figura 5. Selecionando a opção Flutter Application.
Estrutura básica de aplicativos Flutter6
Após selecionar essa opção, faz-se necessário definir os parâmetros do 
projeto, conforme a Figura 6. Deve-se definir um nome para o projeto (opção 
Project Name) e indicar a localização do Flutter SDK (Flutter SDK path) e do 
diretório do projeto (Project location). Também é possível definir uma descrição 
do projeto (Description). 
Figura 6. Definindo os parâmetros do projeto Flutter.
Por fim, para gerar o código para aplicativos nativos para as plataformas 
Android e iOS, deve-se definir um nome de pacote (Package name) e se deverá 
ser incluído suporte para código em Kotlin para Android e/ou Swift para iOS, 
conforme a Figura 7.
Estrutura básica de aplicativos Flutter 7
Figura 7. Definindo parâmetros específicos para códigos nativos.
Assim que esse processo for finalizado, será criado um aplicativo de 
exemplo (flutter_app), que será disponibilizado para edição. Na próxima 
seção, confira mais detalhes sobre a estrutura do projeto Flutter criado.
Entendendo a estrutura de um aplicativo 
Flutter
Como visto, ao criar um projeto Flutter, automaticamente é gerado o código 
para uma aplicação básica. Apesar de se tratar de um exemplo funcional bem 
interessante, idealmente esse não é o melhor código para iniciar o aprendizado 
desse framework. Vamos iniciar com um exemplo mais simples. 
Criando um (outro) primeiro aplicativo Flutter: 
Hello World
O código de um aplicativo Flutter é escrito na linguagem Dart. Segundo o site 
oficial da DART (GOOGLE, 2021a, documento on-line, tradução nossa):
Estrutura básica de aplicativos Flutter8
Dart é uma linguagem otimizada para o cliente para desenvolver aplicativos rápidos 
em qualquer plataforma. Seu objetivo é oferecer a linguagem de programação mais 
produtiva para o desenvolvimento de várias plataformas, emparelhada com uma 
plataforma de execução flexível para frameworks de aplicativos.
Dart é uma linguagem relativamente simples e muito flexível, con-
tando com centenas de bibliotecas para aumentar a sua funciona-
lidade. Confira, a seguir, um exemplo de programa em Dart (DART.DEV, 2021). 
Esse programa utiliza alguns recursos comuns aos aplicativos Dart:
//Isto é um comentário.
Um comentário de linha única. Dart também suporta comentários multilinha 
e de documentos. 
void
Um tipo especial que indica que um valor não é retornado ou utilizado. 
Funções como imprimirInteiro() e main(), que não retornam explicitamente 
um valor, têm o tipo de retorno void. 
int
Outro tipo de do, indicando um inteiro. Alguns tipos de dados adicionais 
são: String, List e bool.
42
Um número literal. Os números literais são uma espécie de constante de 
tempo de compilação.
print()
Estrutura básica de aplicativos Flutter 9
Comando de saída do console.
'...' (ou "...")
Um texto (String) literal.
$nomeVariável (ou ${expressão})
Interpolação de Strings: incluindo uma variável ou expressão em uma String.
main()
Função especial, obrigatória e de alto nível que inicia a execução do aplicativo. 
var
Uma maneira de declarar uma variável sem especificar o seu tipo. O tipo 
dessa variável (int) é determinado pelo seu valor atribuído (42).
Dart é uma linguagem segura para realizar a verificação de tipos estáticos, 
além de ser flexível, permitindo o uso de tipos dinâmicos combinados com veri-
ficações de tempo de execução, que podem ser úteis durante a experimentação 
ou para códigos que precisam ser especialmente dinâmicos.
A linguagem Dart oferece um recurso chamado null safety, que indica que os 
valores não podem ser nulos a menos que você diga que eles podem ser. Com isso, 
a Dart pode proteger a execução do código de exceções nulas (null exceptions). 
Para o nosso primeiro aplicativo, substitua o conteúdo do arquivo /lib/
main.dart pelo código mostrado a seguir:
import 'package:flutter/material.dart';
void main() => runApp(PrimeiroApp());
class PrimeiroApp extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
 return MaterialApp(
 title: 'Oi Flutter',
 home: Scaffold(
 appBar: AppBar(
 title: const Text('Oi Flutter'),
 ),
 body: const Center(
Estrutura básica de aplicativos Flutter10
 child: Text('Hello World'),
 ),
 ),
 );
 }
}
Fonte: Write... ([2021], documento on-line).
O código apresentado é de um aplicativo Flutter simples, intitulado Oi 
Flutter, que exibe a mensagem “Hello World” centralizada na tela do dispositivo 
móvel. Esse exemplo cria um aplicativo Material. Material é uma linguagem de 
design visual utilizada em aplicações para smartphones e na web. O Flutter 
oferece um rico conjunto de componentes que podem ser utilizados para 
compor o leiaute e o visual de um aplicativo. Em Flutter, esses componentes 
se chamam widgets, dos quais falaremos mais na próxima seção. 
O método main () usa a notação de seta (=>) para funções ou méto-
dos de uma linha. Aqui, ele chama o método runApp, que executa usando 
como argumento um objeto da classe PrimeiroApp, definida em seguida. 
O aplicativo é composto por um objeto da classe PrimeiroApp, que estende 
(herda) da classe StatelessWidget do Flutter. Isso faz do próprio aplicativo 
um widget. Em Flutter, quase tudo é widget, incluindo alinhamento, preen-
chimento e leiaute.
O widget Scaffold, da biblioteca Material, fornece uma estrutura de 
interface básica para o aplicativo: uma barra de aplicativo padrão (appBar) 
e uma propriedade body que contém a o conjunto de widgets aninhados para 
a tela inicial. Esse conjunto se organiza hierarquicamente em uma árvore. 
O principal trabalho de um widget é fornecer um método build(), que 
descreve como exibir o widget em termos de outros widgets de nível inferior. 
O body para esse exemplo consiste em um widget Center contendo um 
widget “filho” (child) Text, para exibir uma mensagem de texto. O widget 
Center alinha a sua subárvore de widgets ao centro da tela.
Widgets básicos e exemplos de sua 
utilização
Segundo o site oficial do Flutter (GOOGLE, 2021b), widgets Flutter são os 
componentes utilizados para construir a interface de usuário. Os widgets 
descrevem como eles devem ser exibidos na tela, além de sua configuração 
e estado atuais. Quando o estado de um widget muda, ele reconstrói a sua 
Estrutura básica de aplicativos Flutter 11
descrição. Em suma, construímos nossos aplicativos Flutter utilizando dos 
tipos de widgets, apresentados a seguir.
 � Widgets de leiaute: responsáveis por determinar a organização e o 
posicionamentos de outros widgets. Esses widgets servem para de-
limitar áreas nas telas dos dispositivos que serão preenchidas por 
outros widgets.
 � Widgets de interface: responsáveis por criar os componentes visuais 
que serão exibidos para os usuários. Eles determinam os componentesque irão compor a interface do aplicativo.
Como visto na seção anterior, a função runApp() no arquivo main.
dart pega o widget dado e o torna a raiz da árvore de widgets. Ao escrever 
um aplicativo, você geralmente cria outros widgets que são subclasses de 
StatelessWidget ou StatefulWidget, dependendo de se o widget está em 
estado estático ou dinâmico no aplicativo. Um StatelessWidget é utilizado 
quando o estado (conteúdo) do widget não é alterado durante a execução do 
aplicativo, ao passo que um StatefulWidget permite alterar o seu estado 
em tempo de execução.
Confira, a seguir, alguns dos widgets mais utilizados em aplicativos Flutter.
 � Text: O widget Text permite criar uma execução de texto estilizado 
dentro do aplicativo.
 � Row, Column: esses widgets flex permitem criar leiautes flexíveis nas 
direções horizontal (Row) e vertical (Column). O design desses objetos 
é baseado no modelo de leiaute flexbox da web.
 � Stack: em vez de ser orientado de modo linear (horizontal ou ver-
ticalmente), um widget Stack permite que você coloque os widgets 
em cima um do outro em ordem de renderização. Em seguida, você 
pode usar o widget posicionado como filhos (children) em uma pi-
lha e posicioná-los em relação à borda superior, direita, inferior ou 
esquerda da pilha. As pilhas são baseadas no modelo de leiaute de 
posicionamento absoluto da web.
 � Container: O widget Container permite criar um elemento visual 
retangular. Um Container pode ser formatado (decorado) com uma 
BoxDecoration como um fundo, uma borda ou uma sombra. Ele 
também pode ter margens, preenchimento e restrições aplicadas ao 
seu tamanho. 
Estrutura básica de aplicativos Flutter12
Confira, a seguir, mais um exemplo de aplicativo Flutter que utiliza esses 
widgets.
O código a seguir deve ser inserido no arquivo main.dart de um 
projeto Flutter:
import 'package:flutter/material.dart';
void main() {
 runApp(
 const MaterialApp(
 title: 'App 02', 
 home: SafeArea (
 child: MeuScaffold(),
 ),
 ),
 );
}
class MeuScaffold extends StatelessWidget {
 const MeuScaffold({Key? key}) : super(key: key);
 @override
 Widget build(BuildContext context) {
 return Material(
 child: Column(
 children: [
 MeuAppBar(
 title: Text(
 'Segundo App',
 style: Theme.of(context) 
 .primaryTextTheme
 .headline6,
 ),
 ),
Estrutura básica de aplicativos Flutter 13
 const Expanded(
 child: Center(
 child: Text('Outro app em Flutter!'),
 ),
 ),
 ],
 ),
 );
 }
}
class MeuAppBar extends StatelessWidget {
 const MeuAppBar({required this.title, Key? key}) : super(key: 
key);
 final Widget title;
 @override
 Widget build(BuildContext context) {
 return Container(
 height: 56.0, 
 padding: const EdgeInsets.symmetric(horizontal: 8.0),
 decoration: BoxDecoration(color: Colors.blue[500]),
 child: Row(
 children: [
 const IconButton(
 icon: Icon(Icons.menu),
 tooltip: 'Um Menu',
 onPressed: null, // null desabilita o botão
 ),
 // Expanded expande seu child para ocupar o espaço livre.
 Expanded(
 child: title,
 ),
 const IconButton(
 icon: Icon(Icons.search),
Estrutura básica de aplicativos Flutter14
 tooltip: 'Pesquisar',
 onPressed: null,
 ),
 ],
 ),
 );
 }
}
Uma vez executado, o aplicativo deve retornar o resultado mostrado na 
figura a seguir.
Muitos widgets da linguagem Material Design precisam estar dentro de 
um MaterialApp para serem exibidos de modo correto. Portanto, dentro 
da função main(), runApp inicia criando um MaterialApp, que define sua 
propriedade title para App 02 e define como página principal (home) um wid-
get SafeArea, responsável por garantir que seu widget-filho não ultrapasse 
limites “seguros” de visualização dentro da área visível do dispositivo-alvo. 
O widget SafeArea define como filho um widget MeuScaffold. 
Estrutura básica de aplicativos Flutter 15
O widget MeuScaffold organiza seus filhos (children) em uma coluna 
vertical. Na parte superior da coluna, ele coloca uma instância do widget 
MeuAppBar, passando a barra de aplicativo de um widget de texto para utilizar 
como seu título. Passar widgets como argumentos para outros widgets nos 
permite criar widgets genéricos que podem ser reutilizados de várias maneiras. 
Por fim, o widget MeuScaffold usa um widget Expanded para preencher o 
espaço restante com seu body, que consiste em uma mensagem centralizada 
contida em um widget Text: 'Outro app em Flutter!'.
O widget MeuAppBar cria um Container com a altura de 56 pixels in-
dependentes do dispositivo com preenchimento interno de 8 pixels, tanto 
à esquerda quanto à direita. Dentro do Container, o widget MeuAppBar 
usa um widget de leiaute Row para organizar seus filhos (children). Seus 
widgets-filhos são um IconButton, que exibe: um ícone de menu (Icons.
menu); um Expanded contendo o título (title) a seguir, exibido na barra; 
e outro IconButton, que exibe um ícone de pesquisa (Icons.search). 
Os widgets IconButton que tem uma dica definida (tooltip) estão desa-
bilitados (propriedade onPressed igual a null).
Portanto, você constrói aplicativos Flutter basicamente “encaixando” 
widgets uns nos outros, como se fossem peças de Lego. Isso nos fornece 
uma forma poderosa e flexível para criar aplicações com interfaces gráficas 
mais bonitas e eficientes para os usuários. Para se profundar mais nesse 
assunto, leia a documentação disponível no site oficial do Flutter e confira 
mais exemplos de utilização de widgets. 
Referências 
DART.DEV. A tour of the Dart language. [S.l.: s.n.], 2021. Disponível em: https://dart.dev/
guides/language/language-tour. Acessado em: 28 ago. 2021. 
FLUTTER documentation. [Mountain View: Google, 2021]. Disponível em: https://flutter.
dev/docs. Acesso em: 28 ago. 2021.
GOOGLE. Dart Overview. Versão 2.13. [Mountain View]: Google, 2021a. Disponível em: 
https://dart.dev/overview. Acesso em: 28 ago. 2021.
GOOGLE. Flutter. Versão 2.2. [Mountain View]: Google, 2021b. Disponível em: https://
flutter.dev/. Acesso em: 28 ago. 2021.
GOOGLE. Flutter: install. Versão 2.2. [Mountain View]: Google, 2021c. Disponível em: 
https://flutter.dev/docs/get-started/install. Acesso em: 28 ago. 2021.
Estrutura básica de aplicativos Flutter16
GOOGLE. Flutter: Windows install. Versão 2.2. [Mountain View]: Google, 2021d. Disponível 
em: https://flutter.dev/docs/get-started/install/Windows. Acesso em: 28 ago. 2021.
GUIA do usuário: Android Studio. [Mountain View: Google], 2021. Disponível em: https://
developer.android.com/studio/intro. Acesso em: 28 ago. 2021.
WRITE your first Flutter app, part 1. [Mountain View: Google, 2021]. Disponível em: 
https://flutter.dev/docs/get-started/codelab. Acesso em: 28 ago. 2021.
Leituras recomendadas
ZAMMETTI, F. Flutter na prática. [S.l.]: Novatec, 2020.
MARINHO, L. H. Iniciando com Flutter Framework. [S.l.]: Casa do Código, 2020.
Os links para sites da web fornecidos neste capítulo foram todos 
testados, e seu funcionamento foi comprovado no momento da 
publicação do material. No entanto, a rede é extremamente dinâmica; suas 
páginas estão constantemente mudando de local e conteúdo. Assim, os edito-
res declaram não ter qualquer responsabilidade sobre qualidade, precisão ou 
integralidade das informações referidas em tais links.
Estrutura básica de aplicativos Flutter 17
Dica do Professor
Um desafio na criação de aplicações móveis é executá-las para testes, uma vez que o ambiente de 
desenvolvimento é quase sempre diferente daquele de execução. É possível conectar o dispositivo 
móvel (smartphone) à máquina de desenvolvimento por meio de um cabo USB e executar o 
aplicativo diretamente no dispositivo físico, procedimento recomendado para se ter a experiência 
real de execução. No entanto, isso requer a configuração do dispositivo, que não é padrão 
(especialmente se for Android). Então, é possível executar osaplicativos Flutter em um dispositivo 
virtual emulado.
Nesta Dica do Professor, você vai aprender como configurar um dispositivo virtual Android no 
Android Studio para executar aplicações Flutter.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/2ec03b4e04388204953d29f2aaf9c563
Exercícios
1) Dentro das corporações, a tecnologia mobile proporciona vários benefícios, como acesso 
mais rápido e prático a informações, facilitando a análise de dados, o gerenciamento e a 
tomada de decisão.
Assim, é importante que os desenvolvedores de software acompanhem de perto todas as 
tendências, não apenas para manterem seu produto atrativo, mas também para não 
desperdiçarem oportunidades no mercado mobile. Nesse contexto, o Flutter é um dos 
frameworks móveis mais usados atualmente.
Qual das alternativas a seguir apresenta uma vantagem de se criarem aplicativos móveis 
utilizando Flutter?
A) Os aplicativos Flutter são mais seguros do que os criados em outras plataformas.
B) Os aplicativos Flutter são mais rápidos do que os criados em outras plataformas.
C) Os aplicativos Flutter têm melhor interface gráfica do que os criados em outras plataformas.
D) Os aplicativos Flutter reduzem os custos de publicação e manutenção nas stores.
E) Os aplicativos Flutter são produzidos a partir de uma única base de código, permitindo 
construir aplicativos nativos em múltiplas plataformas.
Um desafio para o desenvolvedor Flutter é definir corretamente a hierarquia de widgets de leiaute 
e interface a fim de gerar o aspecto visual desejado.
Como desenvolvedor Flutter, você deseja criar um aplicativo que exiba três mensagens de texto, 
uma em cima da outra. O código parcial desse aplicativo é dado a seguir:
2) 
Qual alternativa completa corretamente a lacuna?
O código Flutter para esse aplicativo é:
A) Confira a justificativa:
 
 
Clique aqui
B) Confira a justificativa:
 
Clique aqui
C) Confira a justificativa:
 
Clique aqui
Confira a justificativa:D) 
https://statics-marketplace.plataforma.grupoa.education/sagah/a9f8201a-6f46-4646-8991-a2156e8c379d/091f1ec7-f521-4e6a-9dd7-a4f26cd96b9c.pdf
https://statics-marketplace.plataforma.grupoa.education/sagah/961da8bf-f494-4b6e-ad8e-95eeed9cf551/64674b1c-61de-4bb7-9869-af878c6a3376.pdf
https://statics-marketplace.plataforma.grupoa.education/sagah/c480017f-73e3-4b22-b30d-b90ceb031867/f337a3ba-c91a-49b8-bdc8-c881bea86568.pdf
 
Clique aqui
E) Confira a justificativa:
 
 
Clique aqui
3) Os widgets Flutter são os componentes básicos com os quais se constroem aplicativos. A 
interface de usuário de um aplicativo Flutter normalmente é composta de widgets de leiaute, 
que estruturam e organizam a exibição dos demais widgets, e widgets de interface, que são 
os componentes visuais que compõem a tela do aplicativo.
Qual das alternativas a seguir contém um nome de widget de interface?
A) Center.
B) Column. 
C) Scaffold. 
D) Row. 
E) Text. 
A primeira coisa que se deve analisar ao entender como uma interface será construída em Flutter é 
imaginar qual combinação de widgets pode ser feita para chegar no resultado esperado. Podem-se 
desenvolver alguns customizados, além de utilizar os disponíveis do catálogo do Flutter e, até 
mesmo, pacotes criados pela comunidade.
Como deveria estar estruturado o código Flutter para exibir quatro widgets de texto (Text), de 
forma que fiquem dispostos em duas linhas e duas colunas, como mostrado a seguir?
4) 
https://statics-marketplace.plataforma.grupoa.education/sagah/d3b7920f-6850-4a75-8bee-9f6dece56f16/ff780e6a-8418-4afe-89d8-59e31a44c725.pdf
https://statics-marketplace.plataforma.grupoa.education/sagah/b678275c-ef47-4a67-9d13-46066dfd654a/39caa235-aec9-480d-b09c-19d0a9eab47c.pdf
 
Assinale a resposta correta.
A) Confira a justificativa:
 
 
Clique aqui
B) Confira a justificativa:
 
 
Clique aqui
Confira a justificativa:
 
 
C) 
https://statics-marketplace.plataforma.grupoa.education/sagah/46a7ad87-5d07-427e-a11c-4ee0bd18897c/0b26f22c-0cda-48f5-b540-3fb032e943b0.pdf
https://statics-marketplace.plataforma.grupoa.education/sagah/40e61514-3252-4602-9232-867811c1b9f5/66ff7cee-c9f8-4643-83a8-57e034f6fed7.pdf
Clique aqui
D) Confira a justificativa:
 
 
Clique aqui
E) Confira a justificativa:
 
 
Clique aqui
Um aplicativo Flutter utiliza um estilo de definição de leiaute declarativo: o desenvolvedor 
descreve como os widgets de leiaute e de interface são dispostos em uma hierarquia em forma de 
árvore.
O Flutter tem uma rica coleção de widgets de interface, responsáveis por exibir componentes na 
tela do aplicativo para que o usuário possar ler/interagir. Entre esses widgets, pode-se citar o 
Image.network(URL), responsável por exibir uma imagem baixada do URL especificado da internet. 
Normalmente, esse widget é inserido dentro de um widget contêiner, para permitir o 
dimensionamento da imagem no aplicativo. O widget contêiner tem os parâmetros width e height, 
que definem, respectivamente, a largura e a altura de sua área na tela. Outro widget muito comum 
é o TextButton, que pode ser usado para criar um botão a partir de um Text definido como seu 
widget-filho.
Os parâmetros dos widgets podem ser usados para formatar sua exibição. O widget Text tem um 
parâmetro opcional chamado style, que usa um objeto TextStyle para formatar o texto escrito no 
widget Text, alterando o tamanho de sua fonte (parâmetro fontSize), por exemplo.
Considere o código Flutter a seguir:
5) 
https://statics-marketplace.plataforma.grupoa.education/sagah/f98a0b4c-b41a-400b-b8a1-9d2da3ee8234/2ecab80b-78ff-4f87-b1b4-22d30571d6a8.pdf
https://statics-marketplace.plataforma.grupoa.education/sagah/00955866-9597-4972-8c5d-62ac7e0555aa/5536f09b-3fd6-4cce-ad15-7af91351f5f5.pdf
https://statics-marketplace.plataforma.grupoa.education/sagah/23e5a70a-9e78-43a9-9b23-a3081d349af7/44a44687-e045-4ac9-9d59-45cdf5a2605d.pdf
 
Quando for executado em um dispositivo móvel, qual será a aparência do aplicativo?
A) 
B) 
C) 
D) 
E) 
Na prática
Uma das grandes vantagens de se utilizar o Flutter para criar aplicações móveis é a possibilidade de 
desenvolver aplicativos nativos tanto para Android como para iOS.
Por ser programado exclusivamente para o sistema operacional do dispositivo móvel, um aplicativo 
nativo é mais rápido e confiável. Além disso, apresenta melhor experiência para o usuário, ao 
utilizar todos os recursos oferecidos pelos smartphones, como câmera, GPS e notificações push. Eles 
também podem ter um maior tempo de utilização, por poderem funcionar sem conexão com a 
internet.
Você vai conhecer, Na Prática, o caso de Eduardo, um desenvolvedor de aplicativos móveis que 
precisa criar para as plataformas Android e iOS e encontrou no Flutter a solução para seu 
problema.
Aponte a câmera para o 
código e acesse o link do 
conteúdo ou clique no 
código para acessar.
https://statics-marketplace.plataforma.grupoa.education/sagah/7b9df622-d29c-4a00-af52-f5861eda9680/0bdbb30f-b109-4ce6-badb-d2c65a80c1a2.jpg
Saiba mais
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Como testar um app do Flutter
Neste codelab, você vai aprender a criar testes usando o framework de testes de widgets. Também 
vai saber como criar um teste de integração para testar a IU e o desempenho do app usando o 
pacote integration_test, além de testar classes de dados (provedores) com a ajuda de testes de 
unidade.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
A primeira aula de Flutter que todo mundo deveria ter
Esta videoaula, feita por Filipe Deschamps, traz um interessante conteúdo para iniciantes de Flutter 
e Dart.
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Introdução ao Dart para desenvolvedores Java
Dart é a linguagem de programação do Flutter, o kitde ferramentas de IU da Google para criar apps 
nativos incríveis para computador, dispositivos móveis e web com uma única base do código. Este 
codelab apresenta o Dart com foco em recursos que normalmente são desconhecidos por 
desenvolvedores de linguagens tradicionais, como Java.
https://codelabs.developers.google.com/codelabs/flutter-app-testing?hl=pt-br#0
https://www.youtube.com/embed/J4BVaXkwmM8
Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
https://codelabs.developers.google.com/codelabs/from-java-to-dart?hl=pt-br#0

Mais conteúdos dessa disciplina