Lista de Atalhos do Flutter (Dart)
Alguns construtos básicos da linguagem Dart são descritos
Aqui está uma folha de referência para Flutter (Dart) com os comandos e construções de linguagem mais úteis:
Acima, uma imagem gerada por IA (pelo modelo Flux 1 dev) mostrando o programador tocando flauta e jogando dardos.
Comandos da CLI do Flutter
Criar um novo projeto Flutter:
flutter create <project_name>
Executar um aplicativo Flutter:
flutter run
Compilar um APK de lançamento:
flutter build apk
Analisar código Dart:
flutter analyze
Executar testes:
flutter test
Obter pacotes:
flutter pub get
Atualizar o Flutter:
flutter upgrade
Verificar a instalação do Flutter:
flutter doctor
Construções da Linguagem Dart
Variáveis e Tipos de Dados:
int age = 30;
double price = 9.99;
String name = 'John';
bool isActive = true;
var dynamicVar = 'Can be any type';
final constantVar = 'Cannot be reassigned';
const compiletimeConstant = 'Compile-time constant';
Segurança de Nulo (Null Safety):
String? nullableString;
String nonNullableString = 'Hello';
Funções:
void simplePrint() {
print('Hello');
}
int add(int a, int b) => a + b;
void namedParams({required String name, int? age}) {
// Corpo da função
}
void optionalParams(String name, [int? age]) {
// Corpo da função
}
Controle de Fluxo:
if (condition) {
// código
} else if (anotherCondition) {
// código
} else {
// código
}
for (var i = 0; i < 5; i++) {
// código
}
while (condition) {
// código
}
switch (variable) {
case value1:
// código
break;
default:
// código
}
Listas e Mapas:
List<int> numbers = [1, 2, 3];
Map<String, int> ages = {'Alice': 30, 'Bob': 25};
Classes:
class Person {
String name;
int age;
Person(this.name, this.age);
void sayHello() {
print('Hello, I am $name');
}
}
Programação Assíncrona:
Future<void> fetchData() async {
try {
var result = await someAsyncOperation();
print(result);
} catch (e) {
print('Error: $e');
}
}
Streams:
Stream<int> countStream(int max) async* {
for (int i = 0; i < max; i++) {
yield i;
}
}
Tratamento de Erros:
try {
// Código que pode lançar uma exceção
} on SpecificException {
// Lidar com exceção específica
} catch (e) {
// Lidar com qualquer exceção
} finally {
// Sempre executado
}
Esta folha de referência cobre os comandos essenciais do Flutter e as construções da linguagem Dart, fornecendo uma referência rápida para desenvolvedores Flutter.
Segurança de Nulo no Flutter / Dart
Lidar com a segurança de nulo no Dart para aplicativos Flutter é crucial para escrever código robusto e livre de erros. Aqui está um guia simples sobre como trabalhar com segurança de nulo:
Declarando Variáveis
Variáveis não nulas:
int age = 30;
String name = 'John';
Variáveis nulas:
int? nullableAge;
String? nullableName;
Trabalhando com Tipos Nuláveis
Operadores de consciência de nulo:
- Operador de acesso com consciência de nulo (?.)
String? name;
print(name?.length); // Acessa o comprimento com segurança se name não for nulo
- Operador de coalescência de nulo (??)
String? name;
String displayName = name ?? 'Guest';
- Operador de atribuição com consciência de nulo (??=)
String? name;
name ??= 'John'; // Atribui 'John' se name for nulo
Operador de asserção de nulo (!) Use este operador com cautela, pois pode levar a erros em tempo de execução se o valor for nulo:
String? nullableName = 'John';
String nonNullableName = nullableName!;
Análise de Fluxo
A análise de fluxo do Dart ajuda a determinar quando uma variável nula é segura para uso:
String? getName() => 'John';
void printName() {
String? name = getName();
if (name != null) {
print(name.length); // Seguro usar name aqui
}
}
Variáveis Tardias (Late)
Use late para variáveis não nulas que são inicializadas após a declaração:
late String lateInitializedName;
void initializeName() {
lateInitializedName = 'John';
}
Lidando com Parâmetros Nuláveis
void greet(String name, {String? title}) {
if (title != null) {
print('Hello, $title $name');
} else {
print('Hello, $name');
}
}
Trabalhando com Coleções
Listas nulas:
List<String>? nullableList;
List<String?> listOfNullableStrings = ['Hello', null, 'World'];
Filtrando valores nulos:
List<String?> mixedList = ['a', null, 'b', null, 'c'];
List<String> nonNullList = mixedList.whereType<String>().toList();
Seguindo estas práticas, você pode lidar eficazmente com a segurança de nulo em seus aplicativos Dart e Flutter, reduzindo o risco de erros relacionados a nulos e melhorando a qualidade geral do código.