Antes de mergulharmos nos conceitos avançados de Dart, é importante entender que Dart é uma linguagem de programação orientada a objetos, que é fortemente tipada e que usa uma sintaxe C-style, que pode ser facilmente compreendida por desenvolvedores JavaScript ou Java. Dart foi criado pelo Google e é usado para construir aplicativos móveis, web e desktop. Uma das características mais notáveis do Dart é o Flutter, um framework de desenvolvimento de aplicativos móveis criado pelo Google.

A programação assíncrona é um dos conceitos avançados em Dart e é crucial para desenvolver aplicativos Flutter. A programação assíncrona é usada para executar operações longas, como I/O de arquivo, operações de rede, operações de banco de dados, sem bloquear o resto do código. Isso é especialmente útil em aplicativos móveis, onde queremos manter a interface do usuário responsiva enquanto executamos operações demoradas em segundo plano.

No Dart, temos três conceitos principais quando se trata de programação assíncrona: Future, async e await.

Future

Um Future é como uma promessa de que eventualmente teremos um valor ou um erro. Quando iniciamos uma operação assíncrona, ela retorna um Future. Podemos então adicionar callbacks ao Future para lidar com o valor quando ele estiver disponível ou lidar com qualquer erro que possa ocorrer.

Aqui está um exemplo de como usamos um Future em Dart:


Future fetchUserOrder() {
  // Simulando uma operação de rede que leva 2 segundos
  return Future.delayed(Duration(seconds: 2), () => 'Grande Latte');
}

void main() {
  print('Buscando pedido do usuário...');
  fetchUserOrder().then((order) {
    print('O pedido do usuário é: $order');
  });
}

No exemplo acima, fetchUserOrder retorna um Future que será completado com o valor 'Grande Latte' após 2 segundos. Usamos o método then do Future para registrar um callback que será chamado quando o Future for concluído.

Async e Await

Async e await são usados para tornar o código assíncrono mais limpo e fácil de entender. Se marcarmos uma função como async, podemos usar a palavra-chave await dentro dela para esperar que um Future seja concluído.

Aqui está um exemplo de como usamos async e await em Dart:


Future fetchUserOrder() {
  return Future.delayed(Duration(seconds: 2), () => 'Grande Latte');
}

Future main() async {
  print('Buscando pedido do usuário...');
  var order = await fetchUserOrder();
  print('O pedido do usuário é: $order');
}

No exemplo acima, marcamos a função main como async, o que nos permite usar a palavra-chave await para esperar que fetchUserOrder seja concluído. Isso torna o código mais fácil de ler, pois não precisamos usar callbacks.

Em resumo, a programação assíncrona em Dart é fundamental para manter nossos aplicativos Flutter responsivos. Future, async e await são as principais ferramentas que Dart nos fornece para lidar com operações assíncronas. Compreender esses conceitos é crucial para se tornar um desenvolvedor Flutter proficiente.

Agora responda o exercício sobre o conteúdo:

Qual é a função da programação assíncrona em Dart, especialmente ao desenvolver aplicativos Flutter?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Conceitos avançados de Dart: Streams e blocos

Próxima página do Ebook Gratuito:

44Conceitos avançados de Dart: Streams e blocos

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto