O guia de Dart Fundamentos, prática, conceitos avançados e tudo mais
Julio Bitencourt
Conteúdo
Nova edição completamente atualizada para a versão 3.7 de Dart.
Dart é uma linguagem de programação que está em ascensão. Criada e mantida pelo Google, vem ganhando destaque e apoio da comunidade nos últimos anos, com a popularidade crescente do Flutter. Hoje, ela é considerada multiplataforma, já que a partir dela e de seus frameworks conseguimos gerar aplicações nativas e de alta performance em server-side, na web, em desktop, nos dispositivos mobile e em IoT. Dart é orientada a objetos, com o benefício de ser tipada, possui conceitos de linguagem funcional, ainda em conjunto com um belo suporte a programação reativa. Tudo isso a tem tornado uma grande carta na manga no repertório de pessoas desenvolvedoras.
Neste livro, Julio Bitencourt traz um guia de viagem por todo o core da linguagem Dart. Você partirá dos conceitos mais básicos envolvendo a sintaxe, como tipos, operadores, estruturas de repetição, até features mais avançadas da linguagem, como programação assíncrona, generics, streams e isolates. Toda a parte teórica é aprofundada, seguida de prática com exemplos esclarecedores, permeados de dicas e boas práticas para você refinar suas habilidades em Dart. Pegue sua toalha e embarque nessa viagem.
Sumário
- 1 Hello, Dart!
- 1.1 Uma breve história
- 1.2 Mas por que Dart?
- 1.3 Executando o código
- 1.4 Primeiro programa
- 2 O básico
- 2.1 Operadores
- 2.2 Estruturas de controle
- 2.3 Se liga aí
- 2.4 É com você
- 3 Benditos tipos
- 3.1 Afinal, que raios é um tipo?
- 3.2 Sistemas de tipagem
- 3.3 E onde entra Dart?
- 3.4 Quais os tipos existentes em Dart?
- 3.5 Bem-vinda, null safety!
- 3.6 Se liga aí
- 3.7 Strings
- 3.8 Se liga aí
- 3.9 Na prática - Palíndromo
- 3.10 Variando um pouco
- 3.11 Se liga aí
- 3.12 É com você
- 4 Explorando mais as funções e a Web
- 4.1 Funções! Métodos! Closures?
- 4.2 Na prática - Dart Web
- 4.3 Parâmetros
- 4.4 Enums
- 4.5 Typedef
- 4.6 Adicionando interação ao jogo
- 4.7 Se liga aí
- 4.8 É com você
- 5 Cuidando dos erros
- 5.1 Error versus Exception
- 5.2 Lançando exceções
- 5.3 Seus próprios errors? Lance um existente ou use assert!
- 5.4 Capturando exceções
- 5.5 Se liga aí
- 5.6 É com você
- 6 Entendendo as Libraries
- 6.1 Criando uma library
- 6.2 Utilizando outras libraries
- 6.3 Privacidade em libraries
- 6.4 Separando libraries em arquivos
- 6.5 Se liga aí
- 6.6 É com você
- 7 Na prática - Packages
- 7.1 Os packages
- 7.2 Criando o package de logger
- 7.3 Exportando libraries
- 7.4 Adicionando linter para o código
- 7.5 Import dinâmico de libraries
- 7.6 Documentando libraries
- 7.7 Se liga aí
- 7.8 É com você
- 8 Oriente seus objetos
- 8.1 Classes e Objetos
- 8.2 Sobrescrita de operadores
- 8.3 Construtores
- 8.4 Encapsulamento
- 8.5 Relacionamento entre objetos
- 8.6 Extensions methods
- 8.7 Extensions types
- 8.8 Modificadores de classes
- 8.9 Se liga aí
- 8.10 É com você
- 9 Generics
e as estruturas de dados - 9.1 O que é esse tal de generics?
- 9.2 Se liga aí
- 9.3 Estruturas de dados
- 9.4 A interface Iterable
- 9.5 A interface Comparable
- 9.6 Records
- 9.7 Patterns
- 9.8 Se liga aí
- 9.9 É com você
- 10 Concorrência
- 10.1 Isolates
- 10.2 Event Loop
- 10.3 Síncrono versus assíncrono
- 10.4 Futures
- 10.5 Async e await
- 10.6 Completer
- 10.7 Se liga aí
- 10.8 É com você
- 11 Na prática - Dart CLI
- 11.1 API da Climatempo
- 11.2 Requisições com o package http
- 11.3 Package convert e JSON
- 11.4 Consumindo a API do Climatempo
- 11.5 Tratando os argumentos de CLI
- 11.6 Rodando um app CLI de qualquer lugar
- 12 Stream é tão funcional...
- 12.1 O que é uma Stream?
- 12.2 Inscrição única versus broadcast
- 12.3 StreamController
- 12.4 Stream e o await
- 12.5 Operações em Streams
- 13 Um pouco mais sobre streams
- 13.1 Transformando uma Stream
- 13.2 Inscrição única versus broadcast, um pouco além
- 13.3 Geradores
- 13.4 Na prática - Server HTTP
- 13.5 Se liga aí
- 13.6 É com você
- 14 Um pouco mais sobre Isolates e Zones
- 14.1 Criando uma nova Isolate
- 14.2 Comunicação unidirecional
- 14.3 Comunicação bidirecional
- 14.4 Controlando uma Isolate
- 14.5 Isolate através de uma URI
- 14.6 Criando isolates de forma mais simples
- 14.7 Zones
- 14.8 Uma zone livre de erros
- 14.9 Valores locais
- 14.10 Sobrescrevendo funcionalidades com ZoneSpecification
- 14.11 Se liga aí
- 14.12 É com você
- 15 Na prática - Gerando arquivos
- 15.1 Manipulando arquivos em Dart
- 15.2 Climatempo - Salvando consultas
- 15.3 Arquivos em isolates separadas
- 15.4 Log de erros com zones
- 15.5 Se liga aí
- 15.6 É com você
- 16 Até mais, e obrigado pelos peixes!
Autor

Julio Bitencourt
Julio Henrique Bitencourt é Bacharel em Ciência da Computação pela UNISUL (2017) e pós-graduado em Desenvolvimento Mobile pela FIAP (2022). Possui mais de 11 anos de experiência trabalhando com programação, em inúmeros projetos com diferentes tecnologias. Em grande parte de sua carreira atuou como desenvolvedor back-end Java utilizando a stack do JavaEE (agora Jakarta EE). Sempre um entusiasta em aplicações móveis, a partir de 2017 vem se especializando nesta área como desenvolvedor mobile, principalmente ao trabalhar com Dart na criação de aplicações multiplataformas e nativas com Flutter. Mantém suas informações em juliobitencourt.com, além dos conteúdos do livro em dartguide.dev.
Dados do produto
- Número de páginas:
- 497
- ISBN:
- 978-85-5519-298-2
- Data publicação:
- 04/2022. Atualizado em 03/2025.