Dart - O básico na prática

Douglas Possas
Flutter — Comunidade BR
3 min readSep 19, 2019

História e características

Dart (originalmente chamada de Dash), foi lançada pelo Google em 2011 com o objetivo de substituir o JavaScript nos navegadores. Teve a primeira versão estável lançada em novembro de 2013 e em agosto de 2018 foi lançada a versão 2.0, que teve otimizações para o desenvolvimento web e para dispositivos móveis.

É uma linguagem de programação Orientada a Objetos (OO), estaticamente tipada e que pode ser utilizada tanto no lado cliente quanto no lado servidor.

Privacidade e funções

Dart suporta 2 (dois) níveis de privacidade: público e privada. Por padrão qualquer propriedade/variável é pública. Caso haja a necessidade de tornar qualquer informação privada, basta usar underscore para declarar a variável.

As funções podem ser literais ou serem usadas como membro de uma classe aparecendo como: funções, getters, setters e construtores de classes. Podem ser síncronas e assíncronas (assinadas com async).

Na prática

Abaixo vamos ver um exemplo de uma classe que representa um produto. Nela utilizarei os conceitos citados acima.

class Product {
//Atributos com nível de privacidade privada
int _id;
String _title;
bool _active;
double _price;

//Definição de função via construtor
Product(this._title, this._active, this._price);

//Definição de função via getter
int get id => _id;

double get price => _price;

bool get active => _active;

String get title => _title;
}

A partir do lançamento da versão 2.0, não é mais obrigatório o uso da palavra reservada new para instanciar uma classe. Iremos criar uma Compra com 2 (dois) itens no carrinho e imprimiremos o total na saída do console.

Abaixo a classe responsável por representar nosso carrinho de compras, que para fins didáticos, será extremamente simples. Uma lista de produtos, um método para adicionar itens e um método para calcular o total da compra.

class ShoppingCart {
List<Product> _products = [];
List<Product> get products => this._products;

void addItem(Product product){
this.products.add(product);
}

double total() {
double total = 0;

this.products.forEach((Product p) {
total += p.price;
});

return total;
}
}

Toda aplicação Dart, tem seu início no método main(). Sabendo disso iremos declarar o método, e no corpo dele instanciaremos nosso carrinho de compras, logo em seguida adicionaremos os produtos e solicitaremos a impressão do total da compra no console da aplicação.

main() {
final shopping = new ShoppingCart();

//o uso da palavra reservada new é opicional a partir da DART 2.0
//e não usaremos nas próximas linhas
final pen = Product("Caneta", true, 4.75);
shopping.addItem(pen);

final pencil = Product("Lápis", false, 1.25);
shopping.addItem(pencil);

print("Total da compra: ${shopping.total()}");
}

Estando tudo certo, o console nos apresentará a mensagem “Total da compra: 6”.

Para testar (e brincar) com o código completo, nem precisamos configurar um ambiente inteiro em nossa máquina. Basta acessar o DartPAD (https://dartpad.dartlang.org/) e começar a criar seus testes. Para testar esse exemplo que eu criei, acesse https://dartpad.dartlang.org/67a288fb1302d99d48a58ce9eb79fac3

Para aprofundar seus conhecimentos na linguagem e ver muito mais além do que eu citei neste artigo, segue uma lista de referências:

Especificação da linguagem Dart v2.2

Tutoriais oficiais

Flutter Brasil

Flutterando

Fique a vontade para me seguir/adicionar no LinkedIn ou comentar o artigo. Prometo retornar o mais breve possível.

Acompanhe meus vídeos no YouTube para aprender um pouco mais sobre Dart/Flutter: https://www.youtube.com/channel/UCjrkH176Ni8gPlQFXW0UYWQ

Já conhece o Flutter? Publiquei aqui o artigo “Um pouco sobre Flutter”

Nos próximos artigos, irei trazer conteúdos sobre Flutter.

Abraço e até a próxima pessoal!

--

--

Douglas Possas
Flutter — Comunidade BR

Desenvolvedor desde 2005, amante de tecnologia desde os 5 (cinco) anos de idade quando ajudava a copiar um livro para compilar o Snake Game em um CP 400 color!