Skip to content

Latest commit

 

History

History
135 lines (104 loc) · 3.39 KB

dart-nao-tenha-medo.md

File metadata and controls

135 lines (104 loc) · 3.39 KB
description
É a linguagem de programação criada pelo Google e utilizada para escrever o Flutter. Se você já conhece Javascript, Java, C#, vai se sentir em casa.

Dart: Não tenha medo

Flutter sofre algumas críticas pelo fato de utilizar Dart, mas é graças à ela que ele se torna um framework único, tanto para o desenvolvedor quanto para o usuário final. O desenvolvedor tem uma incrível experiência e o usuário final tem um aplicativo nativo, de alta performance.

Caso você já possua experiência com qualquer linguagem C-style, irá perceber que Dart é muito amigável e não terá dificuldades em aprende-la.

Recomendo o estudo deste guia, aqueles que gostam de se familiarizar com a linguagem antes de aprender o framework. Particularmente, não vejo necessidade de se aprofundar para começar. O conhecimento básico, proporcionado pelo guia, é suficiente para dar os primeiros passos e sentir deliciosa experiência de construir um aplicativo bacana.

À medida que avançarmos com o conteúdo, você irá aprender Dart aos poucos, não se preocupe.

Algumas características da linguagem:

  • Tipada, porém isto é opcional.
  • Morderna (generics<T>, funções, interfaces e mixins).
  • High Order Functions ( forEach(), map(), etc ).
  • Utiliza sintáxe C-style (como C#, Javascript).
  • Pode ser compilada e interpretada. ****

Tipos suportados:

  • numbers
  • strings
  • boolean
  • list
  • set
  • map
  • rune ( representar UNICODE caracteres como string)
  • symbols

Exemplos

Hello World :

void main() {
  print('Olá, Mundo!');
}

Declarando variáveis, sem utilizar tipagem :

var name = 'Voyager I';
var year = 1977;
var antennaDiameter = 3.7;
var flybyObjects = ['Jupiter', 'Saturn', 'Uranus', 'Neptune'];
var image = {
  'tags': ['saturn'],
  'url': '//path/to/saturn.jpg'
};

Declarando variáveis utilizando tipagem :

String name = 'Voyager I';
int year = 1977;
double antennaDiameter = 3.7;
List<String> flybyObjects = ['Jupiter', 'Saturn', 'Uranus', 'Neptune'];
Map<String, String> image = {
  'tags': ['saturn'],
  'url': '//path/to/saturn.jpg'
};

{% hint style="warning" %} Sobre a tipagem opcional, gostaria de reforçar o seguinte ponto: {% endhint %}

//declaração explícita do tipo da variável (String)
String name = 'Voyager I';

//declaração de variável sem especificar seu tipo
var name = 'Voyager I';

{% hint style="info" %}

Por inferência, Dart identifica o tipo da variável e nos garante todos os benefícios da tipagem estática, por isso a tal tipagem "opcional".

{% endhint %}

Controle de fluxo :

if (year >= 2001) {
  print('21st century');
} else if (year >= 1901) {
  print('20th century');
}

for (var object in flybyObjects) {
  print(object);
}

for (int month = 1; month <= 12; month++) {
  print(month);
}

while (year < 2016) {
  year += 1;
}

Funções :

int fibonacci(int n) {
  if (n == 0 || n == 1) return n;
  return fibonacci(n - 1) + fibonacci(n - 2);
}

var result = fibonacci(20);

Tratamento de exceções :

try {
  for (var object in flybyObjects) {
    var description = await File('$object.txt').readAsString();
    print(description);
  }
} on IOException catch (e) {
  print('Could not describe object: $e');
} finally {
  flybyObjects.clear();
}