Mobile App Development with Dart and Flutter


Mark Mahoney

This collection of guided code walk-throughs is an introduction to mobile development using Flutter. Flutter apps can run on Android or iOS devices in addition to running on the web. Flutter apps are written in the Dart programming language. Flutter was created by Google: "Flutter is Google's UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase."

I begin by covering the Dart programming language. Dart is a statically typed, OO language that will feel comfortable to anyone with a background in Javascript, Java, or C#. If you are feeling adventurous you may be able to skip the first chapter and dive right into Flutter. Next, I cover the basics of Flutter apps- widgets, state management, navigation, and packages. There are pre-built Flutter widgets for just about everything and you can compose them together to make your own. There are also a lot of free, open-source 'packages' or libraries on pub.dev that allow your app to use the device's sensors, fetch data, and more. The last chapter discusses storing data. I discuss storing data on the device and off of it. I discuss using some of Firebase's services (Cloud Firestore and Auth) but I am just scratching the surface. There is a lot more info you can find about these online.

If you'd like to stay connected and get updates when I add new playbacks you can follow me on twitter: @markm208.

1.1 Hello World!!! and Flutter/Dart Install Instructions
1.2 Simple Types in Dart
1.3 Lists (Array Based Containers)
1.4 Maps and Sets
1.5 Altering the Flow of Control
1.6 Closures
1.7 Asynchronous Code in Dart
1.8 Classes in Dart

2.1 Flutter Hello World
2.2 flutter create demo_app
2.3 ListViews
2.4 Laying Out Widgets
2.5 Navigation in Flutter
2.6 Forms
2.7 Using Packages in Flutter

3.1 Storing App Data in a File
3.2 Storing App Data in a SQLite Database
3.3 Storing App Data in a Server
3.4 Storing App Data in the Firebase Cloud Firestore
3.5 Firebase Authentication