O objetivo desse tutorial é explicar, passo-a-passo, como preparar um PC com Windows 10/11, com o detalhe de que você não precisa ter privilégios administrativos, para rodar aplicativos Dart de qualquer tipo. Também vamos conhecer e testar algumas estruturas básicas da linguagem e até fazer alguns exercícios de lógica com ela.
Clique nos links abaixo para acessar diretamente cada parte do artigo ou siga os links no final das páginas:
Dart é uma linguagem de programação sem fins específicos criada nas entranhas do Google já faz algum tempo. É compilada, estável, limpa, bem padronizada, pouco burocrática, razoavelmente leve e que roda muito bem em plataformas Linux e Windows. Não é que Dart faça coisas lá muito além do que qualquer outra linguagem de programação atual, mas ela tem um "penduricalho" chamado Flutter que a torna muito relevante e útil para o programador moderno, principalmente para aquele que visa o poderoso ambiente mobile.
O Flutter é um framework de front-end feito em Dart, ou seja, o objetivo dele é "gerar" componentes como telas, botões, formulários, cards, boxes, elementos interativos e por aí vai... Mas, antes que as coisas sejam exibidas de forma correta na sua interface preferida, é necessário um pacote lógico para lidar com variáveis, funções, loops, classes e tdo aquilo que temos em uma linguagem de programação. Então, sim, é importante ter um bom domínio do Dart para que você possa explorar o potencial visual do Flutter da melhor forma possível. Por sorte (ou por ação do Google) o Dart é bem tranquilo e dentro dos padrões de outras linguagens de programação populares.
Dart é uma linguagem de programação de código aberto desenvolvida pela Google. Ela é otimizada para o cliente, o que significa que é projetada para construir interfaces de usuário rápidas e responsivas para diversas plataformas, incluindo web, mobile (com Flutter) e desktop. Dart é uma linguagem orientada a objetos, baseada em classes e com herança única, e sua sintaxe é familiar para quem já teve contato com linguagens como C++, Java ou JavaScript.
Dart foi revelada pela Google na conferência GOTO em Aarhus, Dinamarca, em 10 de outubro de 2011. A motivação inicial era criar uma linguagem que pudesse resolver alguns dos problemas percebidos com o JavaScript no desenvolvimento web em larga escala, como performance e estrutura. Lars Bak e Kasper Lund foram figuras chave na sua criação. Com o tempo, o foco de Dart expandiu-se significativamente, especialmente com o advento do Flutter, que se tornou um dos principais casos de uso da linguagem.
Dart é uma linguagem versátil e pode ser usada para diversos propósitos:
Desenvolvimento Mobile Multiplataforma: Este é um dos usos mais populares de Dart, através do framework Flutter. Com Flutter e Dart, você pode criar aplicativos nativos para Android e iOS (e também para desktop e web) a partir de um único código base.
Desenvolvimento Web: Dart pode ser compilado para JavaScript, permitindo que seja usado para desenvolver aplicações web. Frameworks como AngularDart (embora menos proeminente que o Flutter atualmente) foram criados para este fim. Além disso, Flutter também pode ser usado para construir aplicações web.
Desenvolvimento Desktop: Com Flutter, é possível criar aplicativos para Windows, macOS e Linux.
Desenvolvimento de Servidores (Backend): Dart também pode ser usado no lado do servidor para construir APIs e backends. Existem frameworks como Aqueduct (agora Conduit) e Shelf para essa finalidade.
Ferramentas de Linha de Comando: É possível criar scripts e ferramentas de linha de comando eficientes com Dart.
A sintaxe de Dart é projetada para ser clara, concisa e familiar para desenvolvedores que já conhecem outras linguagens populares. Alguns pontos chave incluem:
Tipagem Estática Opcional (Sound Type System): Dart possui um sistema de tipos forte que ajuda a pegar erros em tempo de compilação. Embora você possa declarar variáveis sem especificar o tipo (usando var), o compilador inferirá o tipo. É recomendado usar tipos explícitos para maior clareza e segurança.
Orientação a Objetos: Tudo em Dart é um objeto, incluindo, funções e null. Todas as classes herdam da classe Object.
Funções: Funções são cidadãs de primeira classe, o que significa que podem ser atribuídas a variáveis, passadas como argumentos para outras funções, etc.
Comentários: Semelhantes a C++, Java e JavaScript:
// para comentários de uma linha.
/* ... */ para comentários de múltiplas linhas.
/// ou /** ... */ para comentários de documentação.
Variáveis: Declaradas com var (tipo inferido) ou com o tipo explícito (ex: int, String, bool). Variáveis finais (que não podem ser reatribuídas após a inicialização) são declaradas com final, e constantes de compilação com const.
Estruturas de Controle: Incluem if-else, for, while, do-while, switch-case, break e continue, de forma similar a outras linguagens C-like.
Classes e Objetos:
class MinhaClasse {
// Atributos
int id;
String nome;
// Construtor
MinhaClasse(this.id, this.nome);
// Método
void saudacao() {
print('Olá, meu nome é $nome e meu ID é $id.');
}
}
// Método main()
void main() {
var obj = MinhaClasse(1, 'Dart');
obj.saudacao();
}
Assincronia: Dart tem um excelente suporte para programação assíncrona usando Future e Stream, com as palavras-chave async e await para tornar o código assíncrono mais legível.
Para começar a usar Dart, você basicamente precisa de:
Este é o principal requisito. O SDK inclui tudo o que você precisa para escrever e executar código Dart, incluindo:
O compilador Dart (dart2js para web, e compiladores para nativo).
A máquina virtual Dart (Dart VM) para executar código Dart no servidor ou em ferramentas de linha de comando.
Bibliotecas principais (core libraries).
Ferramentas como dartfmt (formatador de código) e dartanalyzer (analisador estático).
O gerenciador de pacotes pub.
Você pode baixar o Dart SDK do site oficial: https://dart.dev/get-dart
Embora você possa escrever código Dart em qualquer editor de texto, é altamente recomendável usar um que tenha bom suporte para a linguagem, como:
IntelliJ IDEA (Community ou Ultimate Edition): Também oferece ótimo suporte através de um plugin. (RECOMENDADO)
Visual Studio Code (VS Code): Excelente suporte com a extensão Dart.
Android Studio: Essencial se você for desenvolver com Flutter, já vem com as ferramentas Dart e Flutter integradas ou facilmente instaláveis.
Embora não seja estritamente um "requisito de sistema", ter familiaridade com conceitos básicos de programação (variáveis, tipos de dados, estruturas de controle, orientação a objetos) de outras linguagens facilitará muito o aprendizado.
Para desenvolvimento com Flutter, os requisitos são um pouco mais extensos e incluem:
O SDK do Flutter (que já inclui o Dart SDK).
Dependências específicas da plataforma para a qual você está desenvolvendo (por exemplo, Android SDK e Android Studio para Android, Xcode para iOS).
Hardware que atenda aos requisitos mínimos para emulação ou execução em dispositivos físicos. Resumindo, com bastante espaço livre no HDD ou SSD.
Veremos como preparar o ambiente para o Flutter neste outro tutorial. Por hora, siga o link abaixo (botão) para seguir em frente com o tutorial do Dart.