Let's Play Dart
-
Upload
jana-moudra -
Category
Software
-
view
3.107 -
download
0
Transcript of Let's Play Dart
![Page 1: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/1.jpg)
Let's play Dart!Jana Moudrá @Janamou +JanaMoudra www.moudra.net
Juicymo
#dfua
![Page 2: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/2.jpg)
Let's write a Web App...
![Page 3: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/3.jpg)
No fairy tales today
![Page 4: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/4.jpg)
What is Dart?
#dfua
![Page 5: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/5.jpg)
Language
Easy to learn
Modular
Great tools
![Page 6: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/6.jpg)
Language
Easy to learn
Modular
Great tools
Let's learn Dart in a few minutes
![Page 7: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/7.jpg)
class Person {
String name;
int age;
Person(this.name, this.age);
}
Person person = new Person("Peter", 18);
Easy to learn
![Page 8: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/8.jpg)
class Person {
var name;
var age;
Person(this.name, this.age);
}
var person = new Person("Peter", 18);
Types are optional
![Page 9: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/9.jpg)
var name; //is null
int count; //is null
Default value
no undefined in Dart
![Page 10: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/10.jpg)
if (name is String) {
print("$name is String");
}
Checking types
![Page 11: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/11.jpg)
Person person = new Person();
person.name = "Peter";
person.age = 18;
person.hairColor = "brown";
Normal developer life
![Page 12: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/12.jpg)
Person person = new Person()
..name = "Peter"
..age = 18
..hairColor = "brown";
Hello .. operator
![Page 13: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/13.jpg)
Me + Dart =
Productivity#dfua
![Page 14: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/14.jpg)
Great docs
Tools and libraries
async/await
Null-Aware operators
![Page 15: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/15.jpg)
pub
![Page 16: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/16.jpg)
name: my_super_app
version: 0.1.0
description: My super application!
dependencies:
args: any
pubspec.yaml
![Page 17: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/17.jpg)
name: my_super_app
version: 0.1.0
description: My super application!
dependencies:
args: any
pubspec.yaml
$ pub getResolving dependencies... Got dependencies!
![Page 18: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/18.jpg)
dart:async, dart:collection, dart:convert, dart:core, dart:developer, dart:html, dart:indexed_db,
dart:io, dart:isolate, dart:js, dart:math, dart:mirrors, dart:svg, dart:
typed_data, dart:web_audio,
dart:web_gl, dart:web_sql
![Page 19: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/19.jpg)
HttpRequest
.getString("animals.json")
.then(feedAnimals);
Before async/await era
![Page 20: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/20.jpg)
feedAnimals(await HttpRequest
.getString("animals.json"));
We can do it better
![Page 21: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/21.jpg)
if (person != null) {
person.sayHello();
}
Null everywhere...
![Page 22: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/22.jpg)
person?.sayHello();
Hello Null-Aware
![Page 23: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/23.jpg)
person?.sayHello();
Hello Null-Aware
and that's not all...
![Page 24: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/24.jpg)
Not only for
client side
#dfua
![Page 25: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/25.jpg)
Not only for
client sideserver side command line mobile
#dfua
![Page 26: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/26.jpg)
Client side
Web Browser
Compiles to JavaScript
Lots of libraries
![Page 27: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/27.jpg)
Server side
Dart VM
Lots of frameworks
Integration with databases
App Engine, Firebase etc...
![Page 28: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/28.jpg)
Command line
![Page 29: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/29.jpg)
On mobile?
![Page 30: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/30.jpg)
On mobile
Fletch
Flutter
![Page 31: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/31.jpg)
Fletch
Flutter
dartlang.org/mobile flutter.io
On mobile
![Page 32: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/32.jpg)
Developer
Utilities#dfua
![Page 33: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/33.jpg)
Tests rule the world code
Package testtest("Person is Jana", () {
Person person = new Person("Jana");
expect(person.name, equals("Jana"));
});
![Page 34: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/34.jpg)
Documentation for everything
/**
* [ProcessResult] represents the result of
* running a non-interactive process started with
* [Process.run] or [Process.runSync].
*/
class ProcessResult {
![Page 35: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/35.jpg)
Dartdoc
![Page 36: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/36.jpg)
Observatory is your best friend
Profiling Dart code
Code coverage
Debugging memory leaks
...
![Page 37: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/37.jpg)
Observatory
![Page 38: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/38.jpg)
That's not all!
Stagehand
dartfmt
Grinder… and more on pub.dartlang.org
![Page 39: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/39.jpg)
Why should I
use Dart?#dfua
![Page 40: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/40.jpg)
#IJSAWTC
![Page 41: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/41.jpg)
I Just Sit And
Write The Code!
![Page 42: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/42.jpg)
I Just Sit And
Write The Code!for client for server for command line
![Page 43: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/43.jpg)
Let's play Dart tomorrow
Dart Code LabSat, 14:50 - 15:30, Community hall
#dfua
![Page 44: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/44.jpg)
Jana Moudrá @Janamou +JanaMoudra www.moudra.net
Juicymo
Questions?
#dfua
![Page 45: Let's Play Dart](https://reader030.fdocuments.us/reader030/viewer/2022021418/58cefa7b1a28abab738b5847/html5/thumbnails/45.jpg)
Image credits
● Matthew Keefe, cc, https://www.flickr.com/photos/60243770@N00/3123775954/
● Mari Wirta, cchttps://www.flickr.com/photos/64194626@N03/6292870807/
● jenny downing, cc, https://www.flickr.com/photos/7941044@N06/3990391143/
● Kjetil Korslien, cchttps://www.flickr.com/photos/kjetikor/8484119632/
● Kārlis Dambrāns, cchttps://www.flickr.com/photos/janitors/16524906898