Guia de desenvolvimento Flutter
Configuração do SDK Flutter no Windows
-
Baixe o SDK Flutter do site oficial do Flutter: Flutter SDK.
-
Extraia o arquivo baixado para um diretório de sua escolha.
-
Adicione o caminho do diretório do Flutter ao PATH do sistema.
-
Verifique a instalação do Flutter e dos requisitos de sistema executando
flutter doctorno terminal.
Configuração do SDK Flutter no Linux
-
Baixe o SDK Flutter do site oficial do Flutter: Flutter SDK.
-
Extraia o arquivo baixado para um diretório de sua escolha, por exemplo,
/opt/flutter. -
Adicione o caminho do diretório do Flutter ao PATH do sistema. Para fazer isso, edite o arquivo de perfil do seu shell (como
.bashrcou.zshrc) e adicione a seguinte linha:
export PATH="$PATH:/opt/flutter/bin"
-
Execute o comando
sourceno arquivo de perfil ou reinicie o terminal para aplicar as alterações. -
Verifique a instalação do Flutter e dos requisitos de sistema executando
flutter doctorno terminal.
Configuração do SDK Flutter no macOS
-
Baixe o SDK Flutter do site oficial do Flutter: Flutter SDK.
-
Extraia o arquivo baixado para um diretório de sua escolha.
-
Adicione o caminho do diretório do Flutter ao PATH do sistema.
-
Execute
flutter doctorno terminal para verificar a instalação e instalar as dependências necessárias.
Criação Inicial de um Projeto Flutter
-
Abra um terminal ou prompt de comando.
-
Navegue até o diretório onde deseja criar seu projeto Flutter.
-
Execute o seguinte comando para criar um novo projeto Flutter:
flutter create nome_do_projeto
Substitua nome_do_projeto pelo nome desejado para o seu projeto.
-
Aguarde até que o Flutter crie o projeto. Isso incluirá a criação de uma estrutura de diretórios básica, incluindo um diretório
libpara o código-fonte Dart, um diretóriotestpara testes, um arquivopubspec.yamlpara gerenciar as dependências do projeto e outros arquivos de configuração necessários. -
Após a conclusão do processo, navegue até o diretório do seu novo projeto:
cd nome_do_projeto
- Abra o projeto em sua IDE ou editor de código preferido para começar a desenvolver.
Separação de Diretórios
Ao criar um projeto Flutter, é importante organizar seus arquivos e pastas de forma eficiente para facilitar a manutenção e escalabilidade do código. Aqui estão algumas práticas recomendadas para a organização de diretórios em um projeto Flutter:
-
lib: O diretório
libé o diretório principal onde você deve colocar todo o seu código-fonte Dart. Você pode organizar o código em subdiretórios dentro delibpara diferentes partes da aplicação, comoscreenspara telas,modelspara modelos de dados,servicespara serviços de API,utilspara utilitários e assim por diante. -
assets: O diretório
assetsé onde você deve colocar todos os recursos estáticos da sua aplicação, como imagens, fontes, arquivos de áudio e vídeo, entre outros. Você pode organizar esses recursos em subdiretórios dentro deassetsconforme necessário para facilitar a gestão e referência dos recursos no código. -
test: O diretório
testé onde você deve colocar todos os arquivos de teste para testes unitários e de integração da sua aplicação. Você pode organizar os testes em subdiretórios dentro detestconforme necessário para melhorar a organização e a legibilidade dos testes. -
android e ios: Os diretórios
androideioscontêm os projetos nativos para Android e iOS, respectivamente. Normalmente, você não precisa modificar esses arquivos, a menos que precise de configurações específicas para uma plataforma. -
web: O diretório
webé usado para projetos Flutter para a web e contém os arquivos necessários para compilar e executar o projeto em um navegador da web. Da mesma forma que para Android e iOS, normalmente você não precisa modificar esses arquivos, a menos que precise de configurações específicas para a plataforma web.
StatelessWidget vs. StatefulWidget
StatelessWidget: - Um StatelessWidget é um widget que não mantém nenhum estado interno. - Ele é imutável e não pode ser alterado após a construção inicial. - Um StatelessWidget é ideal para componentes que não precisam reagir a mudanças de estado ou interações do usuário e que são renderizados com base apenas em seus próprios parâmetros e no contexto em que são usados. - Exemplos comuns de StatelessWidget incluem botões, ícones, textos estáticos e contêineres de layout simples.
StatefulWidget: - Um StatefulWidget é um widget que pode manter e atualizar seu estado interno durante o ciclo de vida do widget. - Ele consiste em duas classes separadas: uma classe StatefulWidget e uma classe State correspondente, que gerencia o estado do widget. - Um StatefulWidget é ideal para componentes que precisam reagir a mudanças de estado ou interações do usuário, como entradas de texto, listas roláveis, barras de progresso e animações. - Ao usar um StatefulWidget, você pode atualizar dinamicamente a aparência do widget com base em alterações de estado, como a entrada do usuário ou dados recebidos de uma API.
Quando Utilizar Cada um
StatelessWidget: - Use StatelessWidget quando você precisa renderizar um widget que não precisa reagir a mudanças de estado e cuja aparência é estática e não muda ao longo do tempo. - StatelessWidget é mais leve em termos de desempenho, pois não precisa gerenciar nenhum estado interno.
StatefulWidget: - Use StatefulWidget quando você precisa renderizar um widget que precisa reagir a mudanças de estado ou interações do usuário e cuja aparência pode mudar ao longo do tempo. - StatefulWidget é mais flexível e poderoso, permitindo que você atualize dinamicamente a aparência do widget com base em mudanças de estado.
Gerenciamento de Estado com GetX
- Adicione GetX ao seu arquivo
pubspec.yaml:
dependencies:
flutter:
sdk: flutter
get: ^4.1.4
-
Execute
flutter pub getno terminal para instalar o pacote GetX. -
Use GetX para gerenciar o estado da sua aplicação, incluindo a criação de controladores, observadores e rotas.
Navegação com GetX
- Configure suas rotas em um arquivo separado (por exemplo,
routes.dart):
import 'package:get/get.dart';
import 'package:my_flutter_app/screens/home_screen.dart';
class AppRoutes {
static const home = '/';
static final routes = [
GetPage(name: home, page: () => HomeScreen()),
// Outras rotas
];
}
- Configure a navegação em seu widget principal (por exemplo,
main.dart):
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:my_flutter_app/routes.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetMaterialApp(
title: 'My Flutter App',
initialRoute: AppRoutes.home,
getPages: AppRoutes.routes,
// Configurações adicionais
);
}
}
Consumo de APIs com Dio
- Adicione Dio ao seu arquivo
pubspec.yaml:
dependencies:
flutter:
sdk: flutter
dio: ^4.0.0
-
Execute
flutter pub getno terminal para instalar o pacote Dio. -
Use Dio para fazer requisições HTTP e consumir APIs em seu aplicativo Flutter:
import 'package:dio/dio.dart';
void fetchUserData() async {
final response = await Dio().get('https://api.example.com/users');
// Manipule a resposta aqui
}
Este guia fornece uma visão geral básica de como configurar o ambiente de desenvolvimento Flutter, gerenciar estado com GetX, navegar entre telas com GetX e consumir APIs com Dio. À medida que você avança no desenvolvimento, pode explorar mais recursos e práticas recomendadas do Flutter e de outras bibliotecas para construir aplicativos mais complexos e sofisticados.