Getting a Flutter & Firebase app to work on macOS is a tricky endeavour. Follow this step-by-step guide to get it working. https://codewithandrea.com/articles/flutter-firebase-auth-macos/
An overview of the major features introduced in Dart 3, including: records, patterns, switch expressions, sealed classes, and class modifiers. https://codewithandrea.com/articles/whats-new-dart-3-introduction/
An in-depth overview of what abstractions to use to write backend-agnostic code that is more testable and maintainable, along with their tradeoffs. https://codewithandrea.com/articles/abstraction-repository-pattern-flutter/
An overview of Firebase as a BaaS platform, including available features, supported platforms, pricing, portability, documentation, and developer experience. https://codewithandrea.com/videos/firebase-pros-cons-flutter/
A simple guide showing how to use the FirestoreListView widget to enable pagination when loading large collections of documents from Firestore. https://codewithandrea.com/articles/firestore-pagination-list-view/
The new Riverpod Lint package adds useful lints and refactoring options that make writing Flutter apps a breeze. Here's how to make the most of it. https://codewithandrea.com/articles/flutter-riverpod-lint/
Since Dart 2.17, we can add members and additional methods when declaring an enum. Here's how. https://codewithandrea.com/tips/dart-2.17-enums-with-members/
AsyncNotifier does not have a mounted property and this can cause some problems in practice. This article explores some solutions and their tradeoffs. https://codewithandrea.com/articles/async-notifier-mounted-riverpod/
Since Flutter 3.7, BuildContext has a mounted property that we can check after an asynchronous gap. Here's how to use it. https://codewithandrea.com/tips/flutter-3.7-using-context-mounted/
AsyncNotifier does not have a mounted property and this can cause some problems in practice. This article explores some solutions and their tradeoffs. https://codewithandrea.com/articles/async-notifier-mounted/