
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/

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/using-context-mounted-flutter-3.7/

Let's explore some techniques to separate our business logic and navigation code from the UI, using GoRouter and Riverpod. https://codewithandrea.com/articles/flutter-navigate-without-context-gorouter-riverpod/

An overview of what Dart Fix can do for you, along with some useful VSCode productivity tips and settings for Flutter app development. https://codewithandrea.com/tips/dart-fix-apply/

Riverpod is a powerful reactive caching and data-binding framework. Let’s learn how to make the most of it so we can use it effectively. https://codewithandrea.com/articles/flutter-riverpod-data-caching-providers-lifecycle/

I asked ChatGPT to explain some code and write several programs in Dart & Flutter. Here's a full report with my findings, and some tips to make the most of it. https://codewithandrea.com/articles/dart-flutter-chatgpt/
An overview of the data caching capabilities of the Riverpod package, and how things work under the hood. https://codewithandrea.com/articles/flutter-riverpod-providers-lifecycle/