- Iniciando um novo projeto
- Entendendo as pastas do projeto
- Conhecendo o Hot Reload
- Botões de depuração
- Widgets
- MaterialApp
- Scaffold
- Componentizando widgets
- InheritedWidget
- StatefulWidget
- Glossário
Iniciando um novo projeto com Flutter:
Visual Studio Code
CTRL + SHIFT + P
Flutter: New Project
Application
Rodando a aplicação:
F5
build: construir a aplicação e enviar ao emulador
- Todas as pastas são referentes ao processamento;
- As únicas pastas que iremos usar para programar é a lib e a test;
- A pasta lib é onde colocaremos todos os nossos códigos;
- Algumas das outras pastas são referentes as plataformas que o Flutter faz a sua construção, como as pastas: web, windows, macos, linux, android e ios;
- A pasta build é pra onde vai todas as construções do nosso projeto, os resíduos de build;
- O arquivo analysis_options.yaml é para colocar algumas regras de digitação de código;
- Os arquivos pubspec vão auxiliar a trabalhar com dependências externas.
Ao alterar o código, reflete automágicamente no emulador.
Executa o Hot Reload quando:
- Salva um arquivo;
- Usa
ctrl + f5
.
Se trata da execução do app;
- Pausar;
- Hot Reload;
- Reiniciar;
- Interromper;
- Tudo no Flutter é Widget;
- Uma tela é constituida pela união de outros widgets nativos;
- Função main que será a primeira a ser executada.
- Um widget é uma class.
runApp
função importada do Flutter para jogar esse widget na tela do celular.
import 'package:flutter/material.dart';
void main() {
runApp(App());
}
class App extends Widget {}
class AppElement extends Element {}
- Visando facilitar, o Flutter possui algumas classes para auxiliar criarmos widgets.
- A que mais será utilizada é a
StatelessWidget
.
import 'package:flutter/material.dart';
void main() {
runApp(App());
}
class App extends StatelessWidget {}
- Esse widget só será necessário uma única vez na aplicação;
- Usamos ele no começo;
- Dentro dele recebemos várias propriedades;
- O MaterialApp pré-define o que vai acontecer;
- O Material é usado para criar uma página.
- É um widget;
- Auxilia a criação de uma página;
- A diferença é a quantidade de outras propriedades que o Scaffold tem.
- Um arquivo por widget;
- Importações;
main.dart
importando app.
- Gerenciar regras de negócio;
- Para criar um InheritedWidget, crie uma classe;
- Temos duas coisas:
- Se podemos atualizar os filhos;
- Precisamos passar os filhos;
- Ele usa o
context
que lembra o conceitos dasprops
no desenvolvimento InheritedNotifier
usando reatividade para conseguir manipular e alterar os valores.
- Criado para separar o estado;
- Permite que você autogerencie o estado;
- StatefulWidget também será um classe.