{"id":19508363,"url":"https://github.com/mateusfccp/asaferflutterwiththenewdart","last_synced_at":"2026-05-02T22:31:43.641Z","repository":{"id":93947709,"uuid":"260320239","full_name":"mateusfccp/ASaferFlutterWithTheNewDart","owner":"mateusfccp","description":"Presentation: A safer Flutter with the new Dart","archived":false,"fork":false,"pushed_at":"2020-05-01T12:36:21.000Z","size":954,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-08T11:37:23.737Z","etag":null,"topics":["dart","flutter","null-safety","presentation-materials"],"latest_commit_sha":null,"homepage":"","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mateusfccp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-30T21:16:25.000Z","updated_at":"2022-02-16T16:15:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"ff2d5d27-c135-4c37-b657-4d1bebe057e0","html_url":"https://github.com/mateusfccp/ASaferFlutterWithTheNewDart","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusfccp%2FASaferFlutterWithTheNewDart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusfccp%2FASaferFlutterWithTheNewDart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusfccp%2FASaferFlutterWithTheNewDart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mateusfccp%2FASaferFlutterWithTheNewDart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mateusfccp","download_url":"https://codeload.github.com/mateusfccp/ASaferFlutterWithTheNewDart/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240761067,"owners_count":19853254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dart","flutter","null-safety","presentation-materials"],"created_at":"2024-11-10T23:05:21.304Z","updated_at":"2026-05-02T22:31:38.623Z","avatar_url":"https://github.com/mateusfccp.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A safer Flutter with the new Dart\n\n## About\n\nThis is a talk that I presented at 9th Flutterando Online Meetup, on 2020-04-30.\n\nIt 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)\n\n### Summary\n\nNull-references has been a historical problem. No wonder that Tony Hoare, considered their creator, stated that its existence\nand usage was the cause of massive losses, maybe to the billion dollars.\n\nMuch of the null-references issues can be solved by having a null-safe type system. Therere are many ways to accomplish it. The\nDart team decided to implement a new feature called **non-null by default**, where a type have to be explicitly stated to be\nnullable.\n\nThis presentation deals with two related subjects. (1) How the new non-nullable type system of Dart works, and how it\nallow us to write safer code, and (2) how to use the `Option` monad as an functional alternative to the null using its\n`map` and `bind` methods as a way of composing functions.\n\n## Project\n\nThe code presented in the presentation are located at the [`project`](https://github.com/mateusfccp/DartAndNullSafety/tree/master/project) directory.\nAll code and comments are written in english.\n\nIn the `lib` folder within `project` are all the files used during the presentation. All of them, with exeption of number 1,\nrequires Dart to use it's experimental feature `non-nullable`.\n\n## Slides\n\nThe presentation slides are in the `slide` directory. The slides are written in brazilian portuguese. They have been written\nwith Beamer through org-mode. Thus, if you want to compile them, you will have to have a working LaTeX and org-mode\nenvironment set up on your system.\n\nThe slides are using the [metropolis](https://github.com/matze/mtheme) theme. However, the precompile `.sty` files are present\nin the directory, so you won't have to compile by yourself.\n\nThe precompiled slides can be found in the [releases](https://github.com/mateusfccp/ASaferFlutterWithTheNewDart/releases) page.\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmateusfccp%2Fasaferflutterwiththenewdart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmateusfccp%2Fasaferflutterwiththenewdart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmateusfccp%2Fasaferflutterwiththenewdart/lists"}