
Dart 2 enforces a stronger type system that requires declaring types, boosting type safety and signaling potential breaking changes during migration.
Learn how to implement an opacity toggle in Flutter by wiring a visible boolean to an opacity widget and a toggle button within a simple stateful app.
Control widget rotation in Flutter by using rotated box with quarter turns driven by a slider; convert turns to an integer and display a hello world child.
Learn to enhance flutter user interface with box decoration by applying a radial gradient, border, and padding to a container housing an asset image.
Explore advanced transforms in Flutter by manipulating a matrix to affect x, y, and z axes, applying skew and rotation, and nesting transforms with padding and text.
Learn to implement a custom painter in Flutter, draw on a canvas with radius, offset, and brushes, and manage layering and repaint behavior.
See the source code out on github
Explore how to implement Flutter animations using the animation package, set up a tween and animation controller with a five-second duration, and drive updates via a listener on a container.
Explore Flutter's animation builder workflow by pairing an animation controller with a curved animation and tween, then use an animated builder to drive a Flutter logo through dynamic curves.
Combine the lessons to build a pulse animation using a listener with a builder, an animation controller, and a curved animation that grows and shrinks a container.
Learn to build a complex Flutter animation that combines opacity, rotation, and size changes using tweens and a curved animation, then implement an animated logo widget.
See the source code on github
Learn to display an interactive map in Flutter with the flutter_map package and OpenStreetMap tiles, using center coordinates and zoom, instead of Google Maps.
Add interactive markers to a Flutter map by defining marker size, position, icon, and color, manage marker layers, and test performance on real devices versus emulator.
Add map interactions in Flutter by implementing a map controller, coordinates, and markers for Chicago, Detroit, and Lansing, plus top buttons that jump to each location and adjust the zoom.
Learn to draw polylines on Flutter map by defining lat-long points and markers, configuring a polyline layer with stroke width and color, and rendering routes between Lansing, Detroit, and Chicago.
See the source code on github
Explore phone integration in flutter using the euro launcher to launch URLs, email, telephone, and SMS with a simple button-based UI, handling launches and errors.
Learn how to manage Android and Flutter permissions with the simple permissions package, including manifest setup, requesting and checking status, and opening settings for camera, audio, and storage.
Explore how to manage contacts using Flutter's contact service and simple permissions, including listing, reading, writing, finding, and deleting contacts with permission requests at app launch.
Learn how to access the device camera in a Flutter app, request camera and storage permissions, initialize a camera controller, display a live preview, and save captured images to storage.
View the source code on github
Explore Firebase basics for Flutter apps, including real time database, storage, authentication options (Google, anonymous, email, and more), analytics, crash analytics, cloud messaging, dynamic links, hosting, and cloud functions.
Set up a Flutter Android app with Firebase by creating a project, registering the app, enabling Google sign-in, adding google-services.json, and updating Gradle dependencies.
Learn to configure flutter authentication with Firebase and Google sign-in. Install and integrate the firebase_auth plugin, and handle Android and iOS setup, Gradle constraints, and dependency collisions.
Enable anonymous sign-in in Firebase authentication for Flutter apps. Sign in anonymously and sign out, and observe the UID and local vs cloud state.
Enable Google sign-in with Firebase authentication, authenticate users with the ID token and access token, and ensure fingerprint and app configuration are correct.
Set up Firebase storage in a Flutter app, modularize authentication into its own file, and implement upload and download in Firebase storage using Google sign-in on Android.
Set up Flutter with Firebase real time database, install the package, and initialize a real-time counter with persistence. Listen for value changes via a stream and update on the emulator.
Explore the differences between set and update in the Firebase real-time database, and learn how add data, remove data, and update operations modify user data without deleting everything.
Explore finding data in a Firebase database by a specific key and locating a range of keys with begin at and end at, using query, string values, and data snapshots.
See the source code on github
This is an advanced course and not intended for beginners. In this course you will learn how to work with graphics, animate widgets, use maps, phone integration such as permissions and the camera and how to work with firebase. This course picks up right where my previous courses have left off.