4.5. Conceitos avançados de Dart: Programação assíncrona

Página 43

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.

Now answer the exercise about the content:

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

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

444.6. Conceitos avançados de Dart: Streams e blocos

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text