flutter-tips-and-tricks
flutter-tips-and-tricks copied to clipboard
My Flutter Tips & Tricks on Twitter 👇
Flutter Tips & Tricks
A collection of all the Flutter tips & tricks I share on Twitter. If you find this useful, give it a star! 🌟

Preview

Full List
I'm adding new tips regularly (newest at the top 👇). If you have a suggestion, send me a DM on Twitter!
| ID | View on GitHub (this repo) | Original Tweet | Link on codewithandrea.com |
|---|---|---|---|
| 64 | When to use each Riverpod provider? | link | |
| 63 | Explicit error types with Either | link | link |
| 62 | Exception handling: try/catch vs Result | link | link |
| 61 | Errors vs Exceptions in Flutter | link | |
| 60 | Do not use BuildContexts across async gaps (and what to do instead) | link | |
| 59 | Flutter Riverpod: How to Register a Listener during App Startup | link | link |
| 58 | Using test tags in Flutter | link | |
| 57 | Singletons in Flutter: Drawbacks | link | link |
| 56 | Riverpod: Async init with Provider Overrides | link | |
| 55 | How to run multiple test variants | link | |
| 54 | Riverpod tip for less boilerplate (Passing Ref) | link | |
| 53 | How to Create DartPad Examples from GitHub Gists | link | link |
| 52 | How to Add a Custom Test Timeout in Flutter | link | link |
| 51 | Golden Image Testing with Robot Testing | link | |
| 50 | Dart 2.17: Enhanced Enums with Members | link | link |
| 49 | Dart 2.17: Super Initializers | link | link |
| 48 | Testing functions that throw | link | link |
| 47 | Why write automated tests? | link | |
| 46 | Riverpod: difference between ref.watch, ref.read, ref.listen |
link | |
| 45 | The Map.update() method |
link | link |
| 44 | AsyncValue.guard() vs try/catch |
link | link |
| 43 | How to write a reactive in-memory store with RxDart | link | |
| 42 | How to Generate and Analyze a Flutter Test Coverage Report in VSCode | link | link |
| 41 | Using Fake Repositories for Testing | link | |
| 40 | Anatomy of a Riverpod Provider | link | |
| 39 | Flutter Project Structure: Feature-first or Layer-first? | link | link |
| 38 | Popular architectures for Flutter development | link | link |
| 37 | Rules to follow for good app architecture | link | |
| 36 | GoRouter: go vs push |
link | link |
| 35 | AsyncValue vs FutureBuilder & StreamBuilder |
link | link |
| 34 | How to use WidgetsBindingObserver |
link | |
| 33 | VSCode extensions to speed-up your Flutter workflow | link | link |
| 32 | Flutter tip: use composition aggressively | link | |
| 31 | How to use the Flutter Widget Inspector | link | |
| 30 | VSCode launch configurations | link | |
| 29 | Domain-Driven Exception Handling | link | |
| 28 | DDD: The Domain Model | link | |
| 27 | Better Comments Extension for VSCode | link | |
| 26 | Running tests with GitHub actions | link | |
| 25 | How to run Flutter Integration Tests at Hyper Speed | link | |
| 24 | Simplified Flutter App Localization | link | link |
| 23 | The Gap Widget | link | |
| 22 | App Development workflow in 6 steps | link | |
| 21 | Repositories as abstract classes (program to interfaces, not implementations) | link | link |
| 20 | How to configure multiple Firebase environments with FlutterFire CLI | link | |
| 19 | How to use Robot Testing to write more readable widget tests | link | |
| 18 | How to create a Flutter GridView with content-sized items | link | link |
| 17 | 6 common sources of errors in Flutter apps | link | |
| 16 | Easily handle loading and error states | link | |
| 15 | AsyncValueWidget: a reusable Flutter widget to work with AsyncValue (using Riverpod) |
link | link |
| 14 | How to navigate programmatically between tabs in Flutter | link | |
| 13 | Responsive Flutter card layout with SizedBox & Center |
link | |
| 12 | How to Validate a TextField in Flutter |
link | link |
| 11 | How to Style an ElevatedButton in Flutter |
link | link |
| 10 | How to Generate Fake data with the Faker package | link | |
| 9 | Chat UI with message bubbles (revisited) | link | |
| 8 | Chat UI with message bubbles | link | link |
| 7 | How to set the border radius on a Flutter container | link | |
| 6 | Flutter Fix all command | link | |
| 5 | Use the DevTools to identify Jank and Shader compilation issues | link | |
| 4 | Flutter Lints package | link | |
| 3 | Accept payments with the Stripe SDK | link | |
| 2 | Flutter create --sample | link | |
| 1 | Flutter reusable Split View on mobile, desktop and web | link | link |
Spread the word!
If these tips have helped you, make sure to star this repo 🌟 and share this tweet! 🙏
This way others can benefit too and everyone can learn! 👍
How to Contribute
If you find any typos, errors, broken links, or other mistakes, feel free to open a PR.
If you have more Flutter tip ideas, please send me a DM on Twitter.
Thank you for all your input!