https://github.com/mateusfccp/asaferflutterwiththenewdart
Presentation: A safer Flutter with the new Dart
https://github.com/mateusfccp/asaferflutterwiththenewdart
dart flutter null-safety presentation-materials
Last synced: about 1 month ago
JSON representation
Presentation: A safer Flutter with the new Dart
- Host: GitHub
- URL: https://github.com/mateusfccp/asaferflutterwiththenewdart
- Owner: mateusfccp
- Created: 2020-04-30T21:16:25.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-05-01T12:36:21.000Z (about 6 years ago)
- Last Synced: 2025-01-08T11:37:23.737Z (over 1 year ago)
- Topics: dart, flutter, null-safety, presentation-materials
- Language: TeX
- Homepage:
- Size: 932 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# A safer Flutter with the new Dart
## About
This is a talk that I presented at 9th Flutterando Online Meetup, on 2020-04-30.
It was based on a article I published on medium: [Dart e Null-safety: uma alternativa funcional](https://medium.com/flutter-comunidade-br/dart-e-nnbd-9810aae37de7)
### Summary
Null-references has been a historical problem. No wonder that Tony Hoare, considered their creator, stated that its existence
and usage was the cause of massive losses, maybe to the billion dollars.
Much of the null-references issues can be solved by having a null-safe type system. Therere are many ways to accomplish it. The
Dart team decided to implement a new feature called **non-null by default**, where a type have to be explicitly stated to be
nullable.
This presentation deals with two related subjects. (1) How the new non-nullable type system of Dart works, and how it
allow us to write safer code, and (2) how to use the `Option` monad as an functional alternative to the null using its
`map` and `bind` methods as a way of composing functions.
## Project
The code presented in the presentation are located at the [`project`](https://github.com/mateusfccp/DartAndNullSafety/tree/master/project) directory.
All code and comments are written in english.
In the `lib` folder within `project` are all the files used during the presentation. All of them, with exeption of number 1,
requires Dart to use it's experimental feature `non-nullable`.
## Slides
The presentation slides are in the `slide` directory. The slides are written in brazilian portuguese. They have been written
with Beamer through org-mode. Thus, if you want to compile them, you will have to have a working LaTeX and org-mode
environment set up on your system.
The slides are using the [metropolis](https://github.com/matze/mtheme) theme. However, the precompile `.sty` files are present
in the directory, so you won't have to compile by yourself.
The precompiled slides can be found in the [releases](https://github.com/mateusfccp/ASaferFlutterWithTheNewDart/releases) page.