Dart é uma linguagem de programação que tem como forte aliado a framework Flutter. Além de ser baseado na arquitetura do POO (Programação Orientada a Objetos), possui várias ferramentas que auxiliam o desenvolvimento e estrutura de código.
Ao iniciarmos o estudo dessa nova linguagem, podemos ter algum tipo de dificuldade ao entender novos conceitos e novas sintaxes. Ademais, o leque de possibilidades de desenvolvimento de aplicações é muito amplo e pode levar até uma certa ansiedade.
Podemos definir o Dart como moderno e seguro, tanto por ser desenvolvido pela imensa Google, conta com diversos repositórios de código aberto. Sendo assim é uma excelente linguagem para começar a aprender. Quer entender mais sobre, continue com a gente:
- O que é a linguagem Dart?
- Entenda a história da linguagem de programação Dart!
- Para que serve a linguagem Dart?
- Qual a relação da linguagem Dart com Flutter?
- Quais as vantagens e desvantagens da linguagem Dart?
- Vale a pena aprender Dart?
- Conheça os princípios da linguagem Dart!
- Conheça a sintaxe da linguagem Dart!
- Instalando, configurando as ferramentas e criando o primeiro código em Dart!
O que é a linguagem Dart?
Dart é uma linguagem de programação orientada a objetos, com o código aberto e uma sintaxe parecida com C, que teve seu desenvolvimento iniciado pelo Google em 2011. O seu objetivo principal é criar interfaces visuais para o front-end, tanto na parte Web quanto em aplicativos móveis.
Por ser uma linguagem que ganhou muita popularidade em pouco tempo, conta com muitas pessoas desenvolvedoras criando e corrigindo recursos internos. Utiliza a compilação de código de máquina nativo para construir os todo tipo de aplicativo e é inspirado fortemente em outras linguagens de programação, como Java, Javascript e C#..
A linguagem Dart necessita do seu compilador para realizar a análise e transferir o código para a máquina.
Além disso, possui suporte para a maioria dos conceitos comuns de linguagens de programação, como classes, interfaces e funções. No entanto, a linguagem não suporta diretamente arrays e sim Collections, que são usadas para replicar uma estrutura de dados.
Entenda a história da linguagem de programação Dart!
A revelação da linguagem Dart foi concebida na conferência GOTO entre 10 a 12 de outubro de 2010 em Aarhus, Dinamarca. O projeto foi iniciado por Lars Bak, um experiente programador dinamarquês, muito famoso pelo seu trabalho com máquinas virtuais. De início também obteve ajuda do engenheiro de software Kasper Lund.
A ideia do Dart era criar um compilador capaz de transformar o seu código em Javascript. A primeira ferramenta capaz de realizar essa operação foi chamada de dartc, que rapidamente foi descontinuada. Como segunda tentativa, criaram o Frog, que acabou não se adequando muito bem ao desenvolvimento. Por fim, temos o dart2js, que é a ferramenta utilizada atualmente para exercer o papel de mediação entre as linguagens.
Para que serve a linguagem Dart?
O Dart é principalmente utilizado com o Flutter para criar aplicações móveis. O grande benefício de criar aplicativos com essa ferramenta é que ele é multiplataforma. Ou seja, você consegue criar com uma base de código dois aplicativos separados para o iPhone e o Android. O concorrente mais próximo do Flutter é o React Native, que é uma implementação multiplataforma do React.
O Dart não se limita a construir apenas programas no front-end para o Flutter. Você também consegue utilizá-lo no back-end para criar lógicas no lado do servidor. Também é possível criar um servidor HTTP para receber solicitações HTTP.
Qual a relação da linguagem Dart com Flutter?
O Flutter utiliza o Dart pois ele permite que a pessoa desenvolvedora não necessite do aprendizado de outra linguagem declarativa, como o XML do Java ou JSX do React Native. Neste caso, o layout do Dart é declarativo e programático, facilitando a visão e desenvolvimento de novos recursos.
Uma das razões dessa popular dupla existir, é o recursos de compilação JIT (Just In Time) que o Dart consegue utilizar e que consequentemente reduz o tempo de compilação do código.
Por ser uma linguagem muito semelhante às outras do mercado, uma pessoa desenvolvedora com conhecimento prévio terá muita facilidade e velocidade no aprendizado desta linguagem, juntamente com o Flutter.
Quais as vantagens e desvantagens da linguagem Dart?
Vantagens
As vantagens da linguagem Dart são:
- Dependendo do seu histórico de linguagens, é fácil de aprender Dart. Uma pessoa com um pouco de conhecimento técnico não terá dificuldades em aprendê-la.
- A sua documentação é muito boa e possui o apoio da comunidade para sempre melhorá-la.
- O seu desempenho é muito superior ao Javascript.
- Os últimos lançamentos do Dart são estáveis e podem ser utilizados em ambientes de produção, sem nenhum problema.
- Utiliza da compilação AOT (Ahead-Of-Time) e JIT (Just In Time) para melhorar a velocidade de desenvolvimento e conversão do código.
Desvantagens
Em contrapartida, suas desvantagens são:
- Dart é uma linguagem relativamente nova no mercado. Logo, procurar empregos ou pessoas desenvolvedoras com esse conhecimento é uma tarefa difícil.
- É precário em pacotes de auxílio no desenvolvimento.
- O esforço necessário para compilar o código Dart para Javascript não é tão interessante e, muitas vezes, não é viável para uma equipe de desenvolvimento.
Vale a pena aprender Dart?
O Google está cada vez mais criando expectativas sob o Flutter. Eles esperam substituir o sistema operacional do Android para Fuchsia nos próximos anos. Com isso, todas as pessoas que têm algum tipo de conhecimento na linguagem poderiam tentar a sorte nessa nova jornada.
De qualquer forma, existem muitas vagas de desenvolvimento para Flutter, sendo que o principal motivo disso é o aquecimento do mercado de software. Então, se você gosta de aprender novas linguagens e tentar algo novo, o Dart pode valer muito a pena.
Conheça os princípios da linguagem Dart!
Variáveis
Uma variável é um identificador que armazena valores na memória, ou seja, ela exerce um papel de registrar os valores de um programa em memória e caso o software necessite recuperá-la, basta referenciar no código.
Variáveis inteiras
Uma variável inteira é um número sem ponto flutuante, como o exemplo a seguir:
int numero = 10;
Variáveis double
Double é um tipo de dados que armazena números decimais (números fracionários). Para cada variável double, oito bytes são alocados na memória.
double numero = 6.532;
Variáveis bool
O tipo de dados Boolean no Dart suporta apenas dois valores – true e false. A palavra-chave bool é usada para representar um literal booleano no Dart.
bool valor_verdadeiro = true;
bool valor_falso = false;
Variáveis string
Utilizada com textos, o tipo String é uma sequência de caracteres que pode ter um tamanho quase que ilimitado. No Dart, as strings atualmente são formados por unidades UTF 16.
Para declarar o tipo String no Dart, conseguimos tanto pelas aspas simples, duplas ou triplas. No caso da última, usamos na representação de textos com várias linhas.
String nome_variavel = 'valor'
OU
String nome_variavel = ''valor''
OU
String nome_variavel = '''linha1
linha2'''
OU
String nome_variavel = ''''''linha1
linha2''''''
Variáveis list
Uma coleção que é muito utilizada na programação é um array. Dart representa arrays na forma de objetos List. Uma lista é simplesmente um grupo ordenado de objetos. A biblioteca dart:core fornece a classe List que permite a criação e manipulação de listas.
var lista = new List(5); // Está lista terá 5 espaços
Variáveis map
O objeto Map é uma simples lógica de chave/valor. Chaves e valores em um mapa podem ser de qualquer tipo. Um mapa é uma coleção dinâmica, logo, os Maps podem crescer e diminuir em tempo de execução.
Os mapas podem ser declarados de duas maneiras:
- Usando Map Literals
- Usando o construtor do map
var detalhes = {'usuario':'João','senha':'123456'};
OU
var detalhes = new Map();
detalhes['usuario'] = 'João';
detalhes['senha'] = '123456';
Variáveis var
No Dart, usamos apenas o denominador var para criar uma variável em memória, a sintaxe fica assim:
var variavel = "nova_variavel";
Variáveis const
Quando queremos que as variáveis não se alterem, adicionamos as palavras-chaves const ou final antes da variável. O Dart restringe a modificação dessas variáveis, como podemos ver a seguir:
A palavra-chave final e const são usadas para declarar constantes. O Dart impede a modificação dos valores de uma variável declarada usando a palavra-chave final ou const.
const pi = 3.14;
Variáveis dynamic
Variáveis dinâmicas são quase iguais às variáveis normais, isso porque elas podem ter o seu tipo alterado. Sendo assim, caso a gente declare uma variável com a expressão dynamic, o tipo dela pode começar como um texto e terminar como um número. A sua sintaxe segue sendo bem simples também.
dynamic dinamico = "João";
Operadores
Operadores definem como os operandos serão processados para produzir um valor.
Na seguinte expressão: “2 + 3”, os valores 2 e 3 são operandos e o símbolo “+” (mais) é o operador.
Os operadores disponíveis no Dart são:
- Operadores aritméticos
- Igualdade e Operadores Relacionais
- Operadores de teste de tipo
- Operadores bit a bit
- Operadores de Atribuição
- Operadores lógicos
Condicionais
Uma construção condicional verifica uma condição antes que as instruções do código sejam executadas.
If/Else
Um if pode ser seguido por um bloco else opcional. O bloco else será executado se a expressão booleana testada pelo bloco if for avaliada como false.
if(expressao_booleana){
// A(s) instrução(ões) será(ão) executada(s) se a expressão booleana for verdadeira.
} else {
// A(s) instrução(ões) será(ão) executada(s) se a expressão booleana for falsa.
}
Se a expressão booleana for verdadeira, então o bloco de código if será executado, caso contrário, o bloco de código será executado.
Switch/Case/Default
A instrução switch avalia uma expressão, corresponde o valor da expressão a uma cláusula case e executa as instruções associadas a esse caso.
switch(variavel) {
case valor1: {
// Código desse bloco;
}
break;
case valor2: {
// Código desse bloco;
}
break;
default: {
// Código desse bloco;
}
break;
}
O valor da variável é testado em todos os casos no switch. Se a variável corresponder a um dos casos, o bloco de código correspondente é executado. Se nenhuma expressão case corresponder ao valor da variável, o código dentro do bloco default será associado.
As seguintes regras se aplicam a uma instrução switch:
- Pode haver qualquer número de instruções case dentro de um switch.
- As instruções case podem ser apenas constantes. Não pode ser uma variável ou uma expressão.
- O tipo de dados da variável e a expressão constante devem corresponder.
- A menos que você coloque o valor break após cada bloco de código, a execução flui para o próximo bloco.
- A expressão case deve ser única.
- O bloco default é opcional.
Repetições
Às vezes, certas instruções exigem que a sua execução seja repetida. Loops são a maneira ideal de fazer isso. Um loop representa um conjunto de instruções que devem ser repetidas. No contexto de um loop, uma repetição é chamada de iteração.
For
O loop for é uma implementação de um loop definido. O loop for executa o bloco de código por um número especificado de vezes. Ele pode ser usado para iterar sobre um conjunto fixo de valores, como uma matriz.
for (var i = 0; i < 5; i++) {
// O código que será executado várias vezes fica aqui
}
While
O loop while executa as instruções toda vez que a condição especificada for avaliada como verdadeira. Em outras palavras, o loop avalia a condição antes que o bloco de código seja executado.
while (expressao) {
// Código que será executado toda vez que a expressão for verdadeira
}
Do/While
O laço do…while é similar ao loop while, exceto que o laço do…while não avalia a condição na primeira vez que o laço é executado. No entanto, a condição é avaliada para as iterações subsequentes. Em outras palavras, o bloco de código será executado pelo menos uma vez em um loop do…while.
do {
// Código que executa pelo menos uma vez dentro do bloco
} while (expressao);
Observação: Não esqueça de colocar o ponto e vírgula no final do loop.
Foreach
O loop foreach pode ser usado com qualquer tipo de coleção. Esse loop itera sobre cada elemento da coleção e aplica a função para cada item.
O parâmetro da função é o tipo de coleção com a qual estamos trabalhando.
variavel.forEach((TipoDaVariavel item) {
// Nesse bloco de código temos a execução de cada item da nossa variável
});
Funções
Temos funções em todos os tipos de linguagens de alto nível, isso porque elas nos ajudam a organizar o código e adicionam um nível a mais de reutilização.
A função por si só é mais um nível de escopo dentro de uma aplicação, ou seja, se necessário criar uma lógica reutilizável e única, criamos uma função que exerça esse papel. A partir disso, podemos executá-la em qualquer momento posterior no qual ela foi declarada.
Para declararmos uma função no Dart, precisamos adicionar o nome, o tipo do retorno e os parâmetros da função.
nome_da_funcao(parametros_da_funcao) {
// Aqui ficará o código executado pela função
}
Conheça a sintaxe da linguagem Dart!
A sintaxe define um conjunto de regras para escrever um programa. Cada especificação de linguagem define sua própria sintaxe. O Dart é composto por:
- Variáveis e Operadores
- Classes
- Funções
- Expressões
- Tomada de decisão e construções de loop
- Comentários
- Bibliotecas e Pacotes
- Typedefs
- Estruturas de dados
Vamos entender como ficaria o famoso Olá Mundo na linguagem Dart.
main() {
print("Olá Mundo!");
}
A função main() é um método predefinido no Dart. Este método atua como o ponto de entrada para o aplicativo. Um script Dart precisa do método main() para execução. A função print() é utilizada para imprimir uma string ou valor especificado na saída padrão, que no nosso caso é o terminal.
Instalando, configurando as ferramentas e criando o primeiro código em Dart!
Como instalar
Para que possamos executar o código do Dart em nossas máquinas, devemos instalar o seu SDK.
Mas antes disso, precisamos ter acesso aos comandos do Chocolatey (um gerenciador de pacotes para Windows) em nossos terminais. Entre no site oficial e siga o passo a passo para realizar a instalação na sua máquina.
Após isso, rode o comando a seguir no seu terminal. Certifique-se que possui o Chocolatey instalado corretamente.
choco install dart-sdk
Pronto! Quando a ação de baixar e instalar o SDK do Dart estiver concluída, você poderá usufruir de todos os recursos dessa linguagem de programação..
Executando pela primeira vez
É recomendável utilizar uma IDE para escrever o seu código, independentemente da linguagem. Em Dart temos disponíveis muitos programas que resolvem esse problema.
A nossa recomendação é que você utilize o VS Code como a ferramenta de desenvolvimento principal para o Dart, nela temos disponível vários plugins que facilitam e auxiliam o nosso código.
Crie um arquivo com a nomenclatura .dart no seu diretório atual e escreva o seguinte código:
main() {
var nome = "João";
var idade = 24;
var altura = 1.84;
print("${nome} tem ${idade} anos e ${altura} de altura");
}
Se analisarmos, é um código bem simples, em que declaramos algumas variáveis e exibimos o conteúdo dela a partir da interpolação de texto.
Para o executar o código é muito simples, rode o comando dart nome_do_arquivo.dart e espere o resultado ser exibido na tela.
Perfeito! Você conseguiu rodar o seu primeiro programa Dart na sua máquina. Agora você pode se aventurar um pouco mais nesse mundo, e tentar resolver novos problemas.
Dart é uma linguagem que vem ganhando muito destaque por ser apadrinhada pela Google e fortemente utilizada em aplicações móveis com o Flutter. Mesmo com pouco tempo de vida tem uma comunidade open-source enorme, que não para de crescer.
Conta com uma sintaxe orientada a objetos e bem parecida com as outras linguagens, sendo comparada muitas vezes pela linguagem C. As suas principais vantagens são a segurança, rapidez e tamanho, isso porque utiliza de diversas técnicas de compilação para auxiliar o desenvolvimento muito mais rápido de uma aplicação.
Outro ponto-chave é o seu futuro, que se depender da Google, será brilhante. Tendo uma forma muito simples de instalação, manutenção de pacotes e simplicidade na hora de construir o projeto, a linguagem Dart tem tudo para crescer nos próximos anos.
Quer conhecer novas linguagens? Leia um pouco sobre Python: o que é, como usar, guia pra aprender a linguagem.