Dart Introduction

From WikiOD

Remarks[edit | edit source]

Dart logo

Dart is an open-source, class-based, optionally-typed programming language for building web applications--on both the client and server--created by Google. Dart’s design goals are:

  • Create a structured yet flexible language for web programming.
  • Make Dart feel familiar and natural to programmers and thus easy to learn.
  • Ensure that Dart delivers high performance on all modern web browsers and environments ranging from small handheld devices to server-side execution.

Dart targets a wide range of development scenarios, from a one-person project without much structure to a large-scale project needing formal types in the code to state programmer intent.

To support this wide range of projects, Dart provides the following features and tools:

  • Optional types: this means you can start coding without types and add them later as needed.
  • Isolates: concurrent programming on server and client
  • Easy DOM access: using CSS selectors (the same way that jQuery does it)
  • Dart IDE Tools: Dart plugins exist for many commonly used IDEs, Ex: WebStorm.
  • Dartium: a build of the Chromium Web Browser with a built-in Dart Virtual Machine

Links[edit | edit source]

Documentation[edit | edit source]

FAQ[edit | edit source]

Versions[edit | edit source]

Version Release Date
1.22.1 2017-02-22
1.22.0 2017-02-14
1.21.1 2016-01-13
1.21.0 2016-12-07
1.20.1 2016-10-13
1.20.0 2016-10-11
1.19.1 2016-09-07
1.19.0 2016-08-26
1.18.1 2016-08-02
1.18.0 2016-07-27
1.17.1 2016-06-10
1.17.0 2016-06-06
1.16.1 2016-05-23
1.16.0 2016-04-26
1.15.0 2016-03-09
1.14.2 2016-02-09
1.14.1 2016-02-03
1.14.0 2016-01-28
1.13.2 2016-01-05
1.13.1 2015-12-17
1.13.0 2015-11-18
1.12.2 2015-10-21
1.12.1 2015-09-08
1.12.0 2015-08-31
1.11.3 2015-08-03
1.11.1 2015-07-02
1.11.0 2015-06-24
1.10.1 2015-05-11
1.10.0 2015-04-24
1.9.3 2015-04-13
1.9.1 2015-03-25
1.8.5 2015-01-13
1.8.3 2014-12-01
1.8.0 2014-11-27
1.7.2 2014-10-14
1.6.0 2014-08-27
1.5.8 2014-07-29
1.5.3 2014-07-03
1.5.2 2014-07-02
1.5.1 2014-06-24
1.4.3 2014-06-16
1.4.2 2014-05-27
1.4.0 2014-05-20
1.3.6 2014-04-30
1.3.3 2014-04-16
1.3.0 2014-04-08
1.2.0 2014-02-25
1.1.3 2014-02-06
1.1.1 2014-01-15
1.0.0.10_r30798 2013-12-02
1.0.0.3_r30188 2013-11-12
0.8.10.10_r30107 2013-11-08
0.8.10.6_r30036 2013-11-07
0.8.10.3_r29803 2013-11-04

Installation or Setup[edit | edit source]

The Dart SDK includes everything you need to write and run Dart code: VM, libraries, analyzer, package manager, doc generator, formatter, debugger, and more. If you are doing web development, you will also need Dartium.

Automated installation and updates[edit | edit source]

Manual install[edit | edit source]

You can also manually install any version of the SDK.

Hello, World![edit | edit source]

Create a new file named hello_world.dart with the following content:

void main() {
  print('Hello, World!');
}

In the terminal, navigate to the directory containing the file hello_world.dart and type the following:

dart hello_world.dart

Hit enter to display Hello, World! in the terminal window.

Http Request[edit | edit source]

Html[edit | edit source]

<img id="cats"></img>

Dart[edit | edit source]

import 'dart:html';

/// Stores the image in [blob] in the [ImageElement] of the given [selector].
void setImage(selector, blob) {
  FileReader reader = new FileReader();
  reader.onLoad.listen((fe) { 
    ImageElement image = document.querySelector(selector);
    image.src = reader.result;
  });
  reader.readAsDataUrl(blob);  
}

main() async {
  var url = "https://upload.wikimedia.org/wikipedia/commons/2/28/Tortoiseshell_she-cat.JPG";

  // Initiates a request and asynchronously waits for the result.
  var request = await HttpRequest.request(url, responseType: 'blob');
  var blob = request.response;
  setImage("#cats", blob);
}

Example[edit | edit source]

see Example on https://dartpad.dartlang.org/a0e092983f63a40b0b716989cac6969a

Getters and Setters[edit | edit source]

void main() {
  var cat = new Cat();

  print("Is cat hungry? ${cat.isHungry}");  // Is cat hungry? true
  print("Is cat cuddly? ${cat.isCuddly}");  // Is cat cuddly? false
  print("Feed cat.");
  cat.isHungry = false;                     
  print("Is cat hungry? ${cat.isHungry}");  // Is cat hungry? false
  print("Is cat cuddly? ${cat.isCuddly}");  // Is cat cuddly? true
}

class Cat {
  bool _isHungry = true;

  bool get isCuddly => !_isHungry;

  bool get isHungry => _isHungry;
  bool set isHungry(bool hungry) => this._isHungry = hungry;
}

Dart class getters and setters allow APIs to encapsulate object state changes.

See dartpad example here: https://dartpad.dartlang.org/c25af60ca18a192b84af6990f3313233

Credit:Stack_Overflow_Documentation