Lista de Atalhos do Flutter (Dart)

Alguns construtos básicos da linguagem Dart são descritos

Conteúdo da página

Aqui está uma folha de referência para Flutter (Dart) com os comandos e construções de linguagem mais úteis:

programador tocando flauta e jogando dardos 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:

  1. 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
  1. Operador de coalescência de nulo (??)
String? name;
String displayName = name ?? 'Guest';
  1. 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.