bizz84/flutter-tips-and-tricks

All my Flutter Tips & Tricks on X (Twitter) and LinkedIn.

Dart

2,307

417 commits

updated Sep 23, 2025

See the code

README

Flutter Tips & Tricks

A collection of all the Flutter tips & tricks I share on X (Twitter), LinkedIn, and Bluesky. If you find this useful, give it a star! 🌟

Preview

Download the App

This repo now has a companion app! Download it here to get all my Flutter tips on your phone:

Download the Flutter Tips app

Full List

I'm adding new tips regularly (newest at the top 👇).

IDView on GitHub (this repo)X PostLinkedIn PostBluesky PostLink on codewithandrea.com
256Relative & Absolute Imports in Dartlinklinklink
255Deprecated APIs in Matrix4linklinklink
254Use Multiple Flutter Versions with Purolinklinklink
253Preserve Trailing Commas in Dart 3.8linklinklinklink
252Null-aware elements in Dart 3.8linklinklink
251GoRouter Delegate Listener for Screen Trackinglinklinklink
250Button Styles in Material 3linklinklink
249Test your UI with ThemeData.platformlinklinklink
248Adaptive Alert Dialog (Material, Cupertino)linklinklink
247How to Initialize Firebase Remote Configlinklinklink
246How to Disable Impeller on Androidlinklinklink
245How to use debugRepaintRainbowEnabledlinklinklink
244TextFormField Setup for Numeric Inputslinklinklink
243Showing URLs on Flutter web with TextSpanlinklinklink
242A/B Testing in Flutterlinklinklink
241Release Toggles with Dart Defineslinklinklink
240int.fromEnvironment and bool.fromEnvironmentlinklinklink
239Hot Reload on Flutter web (beta)linklinklink
238Uploading Screenshots with Fastlanelinklinklink
237Using Semantics Identifiers for UI Testinglinklinklink
236Generate Screenshots with Maestrolinklinklink
235Android Demo Mode for Better Screenshotslinklinklink
234iOS Status Bar Tip for Better Screenshotslinklinklink
233Gradle Kotlin DSL (Flutter 3.29)linklinklink
232The flutter run --route argumentlinklinklink
231Downloads Count by Version on Pub.devlinklinklink
230Side Effects with ValueNotifierlinklinklinklink
229New Formatting Style in Dart 3.7linklinklink
228Wildcard Variables in Dart 3.7linklinklink
227Hotkeys with CallbackShortcutslinklinklink
226GitHub Self-Hosted Runnerslinklinklink
225The debugFillProperties Methodlinklinklink
224Uploading the Source Maps to Sentrylinklinklink
223SSH Access on Codemagic Buildslinklinklink
222Move Declaration to File (VSCode assist)linklinklink
221Using Stack and FractionallySizedBoxlinklinklink
220The ListWheelScrollView Widgetlinklinklink
219Color API Deprecations in Flutter 3.27linklinklink
218Text Style with Tabular Figureslinklinklink
217Digits Separators in Dart 3.6linklinklink
216New Spacing Argument in Row/Column (Flutter 3.27)linklinklink
215The Banner Widgetlinklinklink
214Improve your code with Cursor Edit Modelinklinklink
213Fixing Version Solving Failed Errorslinklinklink
212Adding a Privacy Manifest in Xcodelinklinklink
211Fix for Missing Compliance Warning in App Store Connectlinklinklink
210Material Icons Theme (VSCode Extension)linklinklink
209iOS App Store: Build and Upload Scriptlinklinklink
208API keys storage: Client or Server?linklinklink
207Downloads Count on pub.devlinklinklink
206Script to Update the Android Project SettingslinklinklinkKotlin DSL in Flutter 3.29: How to Update Your Android Gradle Files
205Error.throwWithStackTracelinklinklink
204Apple Small Business Programlinklinklink
203Declaring Riverpod Providers with Reflinklink
202What does flutter pub upgrade do?linklink
201Firebase Init with Multiple Flavorslinklinklink
200Fixing Build Issues - Nuclear Option 💣linklink
199Force Update with Remote Configlinklinklink
198Show the Licenses in your Flutter applinklink
197Dark and Tinted Icons on iOS 18linklink
196FlutterFire Config with Multiple Flavors (Shell Script)linklinklink
195Remote Config via GitHub Gistlinklink
194Generate Commit Messages with Copilotlinklinklink
193Control the Code Generation Orderlinklinklink
192Async Stream Initialization with async*linklink
191Timing the In-App Review Promptlinklinklink
190Working with multiple Xcode versionslinklink
189Adding a Navigator Observerlinklink
188Flutter DevTools Logging Pagelinklink
187BuildContext extension for push, poplinklink
186ShaderMask + LinearGradient + Text = 🌈linklink
185Adding a Badge to an IconButtonlinklinklink
184Detect triple taps with RawGestureDetectorlinklink
183Flutter Sidebar (VSCode)linklink
182DevTools Performance Rebuild Statslinklinklink
181The CarouselView Widgetlinklinklink
180The dart pub unpack commandlinklink
179The OverflowBar widgetlinklinklink
178Futures: await vs unawaited vs ignorelinklink
177Useful arguments in the log function (from dart:developer)linklink
176Use unawaited for your analytics callslinklink
175How to use --dart-define-from-file with .env and json fileslinklinklink
174Get the Current Method Name (Hack)linklink
173Hugeicons (4,000 stroke Flutter icons)linklinklink
172Dio + CancelToken + Riverpod = ❤️linklinklink
171TextField with Selection Height Stylelinklink
170The build method: DOs and DON'Tslinklinklink
169Transparent Images With Opacitylinklink
168Disposing fields to avoid memory leakslinklink
167Find Unused Dart Files (VSCode Extension)linklink
166Conditional Imports for Web/Native APIslinklink
165Use defaultTargetPlatform and kIsWeblinklinklink
164The UniversalPlatform Packagelinklink
163Taking screenshots with the Flutter CLIlinklink
162Flutter Web App Initialization Logic with CSS Loaderlinklink
161Transform SVG assets at build timelinklink
160JsonCodable (Dart Macros experiment)linklink
159Useful Aliases for Flutter Developmentlinklink
158Hide Generated Dart Files in GitHub PRslinklinklink
157Force App Upgrade Gone Wrong 😭linklink
156Debouncing in Flutterlinklinklink
155Null-aware spread operator (...?)linklink
154Loading UI with Shimmer effectlinklink
153Zoom an image with InteractiveViewerlinklink
152Logging HTTP status codes with emojislinklink
151Scroll-to-index inside a ListViewlinklink
150Preloading SVG assets in Flutterlinklink
149Environment variables in Dartlinklink
148Determinate Circular Progress Indicatorlinklink
147How to bundle assets based on flavorlinklink
146Extension methods vs types (Dart 3.3)linklink
145Write reusable widgets!linklink
144Scheduling microtasks in Dartlinklink
143We need to talk about FlutterFlow!linklinklink
142Launching your Flutter app with flavorslinklink
141⚠️ debugPrint prints in release mode ⚠️linklink
140Toggle Inlay Hints in VSCodelinklink
139GitHub Copilot Tips for Flutter Devslinklinklink
138Opening URLs with xcrun / adblinklink
137Combining Streams with RxDartlinklinklink
136Use IntrinsicWidth, not fixed widthlinklink
135Replace Container with nested widgetslinklink
134Debug Paint Size (DevTools)linklink
133SelectionArea across multiple widgetslinklink
132Highlight oversized images with the Flutter DevToolslinklink
131Async Dependency Initialization with requireValue (Riverpod)linklinklink
1308 Steps to Follow When Building Your Next Flutter Applinklinklink
129VSCode Debug Toolbar in Command Centerlinklink
128Error Handling during App Startuplinklinklink
127Full-Text Search: Firestore Extensionslinklink
126How to work with webhooks?linklinklink
125Xcode 15 DT_TOOLCHAIN_DIR issuelinklink
124Payment options on mobile and weblinklink
123Top reasons for using a realtime backendlinklinklink
122First steps to tackle when starting a new mobile applinklinklink
121Fetching vs Mutating data with Riverpodlinklinklink
120Flutter web: redirect to an external URLlinklink
119VSCode Quick Fix: Create constructor for final fields, required namedlinklink
118How to Inspect Network Requests with the Flutter DevToolslink
117Are global variables bad?linklink
116Measuring execution time in Dartlinklink
115Find the Invalid Switch Expression 🧐linklink
1146 steps to minimize your Firebase Billlinklink
113Conditional JSON parsing in Dart 3linklink
112Switch Matrix in Dart 3linklink
111Destructuring Lists in Dartlinklink
110Getting a Future from a FutureProvider with Riverpodlinklink
109Record Equality in Dart 3linklink
108MediaQuery as InheritedModellinklinklink
107Happy Birthday with records in Dart 3link
106Return without async/awaitlink
105Creating an empty Flutter projectlink
104[core/duplicate-app] A Firebase App named "[DEFAULT]" already existslink
103Firebase Auth flow in 5 minuteslink
102Storing API keys in a JSON filelinklink
101Backend-agnostic Flutter appslinklink
100Firestore Security Rules Playgroundlink
99Firestore OR queries 🔥link
98Pagination with FirestoreListViewlinklink
97Riverpod Notifier with build argumentslink
96Cloud Firestore - Cache Sizelink
95StreamProvider with Riverpod Generatorlinklink
94Fix missing ProviderScope error with Riverpod Lintlinklink
93Add a part file with Riverpod Snippetslink
92Firebase Billing and Cost Calculatorlink
91Got linter issues? Use dart fix --applylinklink
90Using context.mounted in Flutter 3.7linklink
89Using serverTimestamp() in Firestorelink
88Get a single item from a listlink
87The Accessibility Tools packagelink
86Dart code samples in the Firebase docslink
85Use ChatGPT to do custom styling in Flutterlink
84Using the query builder UI in Cloud Firestorelink
83Update packages with the Version Lens VSCode extensionlinklink
82Cloud Firestore collection countlink
81How to use the new Riverpod Generator packagelinklink
80How to use Future.wait() in Dartlink
79String multiplication in Dartlink
78How to nest generated files in VSCodelink
77Using AnimatedContainer to animate Container propertieslink
76Enable sticky scroll in VSCodelink
75Using build_runner in watch modelink
74Functions as arguments (with tear-off)link
73How to Define Type Aliases in Dartlink
72Use Type Annotations for Safer Codelink
71Prefer const over final over varlink
70Flutter app localization in 5 minlinklink
69Use SizedBox.shrink() to return an empty boxlink
68--enable-asserts flag in Dart / Flutterlink
67REST Client extension for VSCodelinklink
66The HtmlUnescape packagelink
65How kIsWeb works in Flutterlink
64When to use each Riverpod provider?link
63Explicit error types with Eitherlinklink
62Exception handling: try/catch vs Resultlinklink
61Errors vs Exceptions in Flutterlink
60Do not use BuildContexts across async gaps (and what to do instead)link
59Flutter Riverpod: How to Register a Listener during App Startuplinklink
58Using test tags in Flutterlinklink
57Singletons in Flutter: Drawbackslinklink
56Riverpod: Async init with Provider Overrideslink
55How to run multiple test variantslinklink
54Riverpod tip for less boilerplate (Passing Ref)link
53How to Create DartPad Examples from GitHub Gistslinklink
52How to Add a Custom Test Timeout in Flutterlinklink
51Golden Image Testing with Robot Testinglink
50Dart 2.17: Enhanced Enums with Memberslinklink
49Dart 2.17: Super Initializerslinklink
48Testing functions that throwlinklink
47Why write automated tests?link
46Riverpod: difference between ref.watch, ref.read, ref.listenlink
45The Map.update() methodlinklink
44AsyncValue.guard() vs try/catchlinklink
43How to write a reactive in-memory store with RxDartlink
42How to Generate and Analyze a Flutter Test Coverage Report in VSCodelinklink
41Using Fake Repositories for Testinglink
40Anatomy of a Riverpod Providerlink
39Flutter Project Structure: Feature-first or Layer-first?linklink
38Popular architectures for Flutter developmentlinklink
37Rules to follow for good app architecturelink
36GoRouter: go vs pushlinklink
35AsyncValue vs FutureBuilder & StreamBuilderlinklink
34How to use WidgetsBindingObserverlink
33VSCode extensions to speed-up your Flutter workflowlinklink
32Flutter tip: use composition aggressivelylink
31How to use the Flutter Widget Inspectorlink
30VSCode launch configurationslink
29Domain-Driven Exception Handlinglink
28DDD: The Domain Modellink
27Better Comments Extension for VSCodelink
26Running tests with GitHub actionslink
25How to run Flutter Integration Tests at Hyper Speedlink
24Simplified Flutter App Localizationlinklink
23The Gap Widgetlink
22App Development workflow in 6 stepslink
21Repositories as abstract classes (program to interfaces, not implementations)linklink
20How to configure multiple Firebase environments with FlutterFire CLIlink
19How to use Robot Testing to write more readable widget testslink
18How to create a Flutter GridView with content-sized itemslinklink
176 common sources of errors in Flutter appslink
16Easily handle loading and error stateslink
15AsyncValueWidget: a reusable Flutter widget to work with AsyncValue (using Riverpod)linklink
14How to navigate programmatically between tabs in Flutterlink
13Responsive Flutter layout with SizedBox & Centerlink
12How to Validate a TextField in Flutterlinklink
11How to Style an ElevatedButton in Flutterlinklink
10How to Generate Fake data with the Faker packagelinklink
9Chat UI with message bubbles (revisited)linklink
8Chat UI with message bubbleslinklink
7How to set the border radius on a Flutter widgetlinklink
6Flutter Fix all commandlink
5Use the DevTools to identify Jank and Shader compilation issueslink
4Flutter Lints packagelink
3Accept payments with the Stripe SDKlink
2Flutter create --samplelink
1Responsive Split View in Flutterlinklinklinklink

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.

Thank you for all your input!

LICENSE: MIT

dart
firebase
flutter

bizz84/flutter-tips-and-tricks

All my Flutter Tips & Tricks on X (Twitter) and LinkedIn.

Dart

2,307

417 commits

updated Sep 23, 2025

See the code

README

Flutter Tips & Tricks

A collection of all the Flutter tips & tricks I share on X (Twitter), LinkedIn, and Bluesky. If you find this useful, give it a star! 🌟

Preview

Download the App

This repo now has a companion app! Download it here to get all my Flutter tips on your phone:

Download the Flutter Tips app

Full List

I'm adding new tips regularly (newest at the top 👇).

IDView on GitHub (this repo)X PostLinkedIn PostBluesky PostLink on codewithandrea.com
256Relative & Absolute Imports in Dartlinklinklink
255Deprecated APIs in Matrix4linklinklink
254Use Multiple Flutter Versions with Purolinklinklink
253Preserve Trailing Commas in Dart 3.8linklinklinklink
252Null-aware elements in Dart 3.8linklinklink
251GoRouter Delegate Listener for Screen Trackinglinklinklink
250Button Styles in Material 3linklinklink
249Test your UI with ThemeData.platformlinklinklink
248Adaptive Alert Dialog (Material, Cupertino)linklinklink
247How to Initialize Firebase Remote Configlinklinklink
246How to Disable Impeller on Androidlinklinklink
245How to use debugRepaintRainbowEnabledlinklinklink
244TextFormField Setup for Numeric Inputslinklinklink
243Showing URLs on Flutter web with TextSpanlinklinklink
242A/B Testing in Flutterlinklinklink
241Release Toggles with Dart Defineslinklinklink
240int.fromEnvironment and bool.fromEnvironmentlinklinklink
239Hot Reload on Flutter web (beta)linklinklink
238Uploading Screenshots with Fastlanelinklinklink
237Using Semantics Identifiers for UI Testinglinklinklink
236Generate Screenshots with Maestrolinklinklink
235Android Demo Mode for Better Screenshotslinklinklink
234iOS Status Bar Tip for Better Screenshotslinklinklink
233Gradle Kotlin DSL (Flutter 3.29)linklinklink
232The flutter run --route argumentlinklinklink
231Downloads Count by Version on Pub.devlinklinklink
230Side Effects with ValueNotifierlinklinklinklink
229New Formatting Style in Dart 3.7linklinklink
228Wildcard Variables in Dart 3.7linklinklink
227Hotkeys with CallbackShortcutslinklinklink
226GitHub Self-Hosted Runnerslinklinklink
225The debugFillProperties Methodlinklinklink
224Uploading the Source Maps to Sentrylinklinklink
223SSH Access on Codemagic Buildslinklinklink
222Move Declaration to File (VSCode assist)linklinklink
221Using Stack and FractionallySizedBoxlinklinklink
220The ListWheelScrollView Widgetlinklinklink
219Color API Deprecations in Flutter 3.27linklinklink
218Text Style with Tabular Figureslinklinklink
217Digits Separators in Dart 3.6linklinklink
216New Spacing Argument in Row/Column (Flutter 3.27)linklinklink
215The Banner Widgetlinklinklink
214Improve your code with Cursor Edit Modelinklinklink
213Fixing Version Solving Failed Errorslinklinklink
212Adding a Privacy Manifest in Xcodelinklinklink
211Fix for Missing Compliance Warning in App Store Connectlinklinklink
210Material Icons Theme (VSCode Extension)linklinklink
209iOS App Store: Build and Upload Scriptlinklinklink
208API keys storage: Client or Server?linklinklink
207Downloads Count on pub.devlinklinklink
206Script to Update the Android Project SettingslinklinklinkKotlin DSL in Flutter 3.29: How to Update Your Android Gradle Files
205Error.throwWithStackTracelinklinklink
204Apple Small Business Programlinklinklink
203Declaring Riverpod Providers with Reflinklink
202What does flutter pub upgrade do?linklink
201Firebase Init with Multiple Flavorslinklinklink
200Fixing Build Issues - Nuclear Option 💣linklink
199Force Update with Remote Configlinklinklink
198Show the Licenses in your Flutter applinklink
197Dark and Tinted Icons on iOS 18linklink
196FlutterFire Config with Multiple Flavors (Shell Script)linklinklink
195Remote Config via GitHub Gistlinklink
194Generate Commit Messages with Copilotlinklinklink
193Control the Code Generation Orderlinklinklink
192Async Stream Initialization with async*linklink
191Timing the In-App Review Promptlinklinklink
190Working with multiple Xcode versionslinklink
189Adding a Navigator Observerlinklink
188Flutter DevTools Logging Pagelinklink
187BuildContext extension for push, poplinklink
186ShaderMask + LinearGradient + Text = 🌈linklink
185Adding a Badge to an IconButtonlinklinklink
184Detect triple taps with RawGestureDetectorlinklink
183Flutter Sidebar (VSCode)linklink
182DevTools Performance Rebuild Statslinklinklink
181The CarouselView Widgetlinklinklink
180The dart pub unpack commandlinklink
179The OverflowBar widgetlinklinklink
178Futures: await vs unawaited vs ignorelinklink
177Useful arguments in the log function (from dart:developer)linklink
176Use unawaited for your analytics callslinklink
175How to use --dart-define-from-file with .env and json fileslinklinklink
174Get the Current Method Name (Hack)linklink
173Hugeicons (4,000 stroke Flutter icons)linklinklink
172Dio + CancelToken + Riverpod = ❤️linklinklink
171TextField with Selection Height Stylelinklink
170The build method: DOs and DON'Tslinklinklink
169Transparent Images With Opacitylinklink
168Disposing fields to avoid memory leakslinklink
167Find Unused Dart Files (VSCode Extension)linklink
166Conditional Imports for Web/Native APIslinklink
165Use defaultTargetPlatform and kIsWeblinklinklink
164The UniversalPlatform Packagelinklink
163Taking screenshots with the Flutter CLIlinklink
162Flutter Web App Initialization Logic with CSS Loaderlinklink
161Transform SVG assets at build timelinklink
160JsonCodable (Dart Macros experiment)linklink
159Useful Aliases for Flutter Developmentlinklink
158Hide Generated Dart Files in GitHub PRslinklinklink
157Force App Upgrade Gone Wrong 😭linklink
156Debouncing in Flutterlinklinklink
155Null-aware spread operator (...?)linklink
154Loading UI with Shimmer effectlinklink
153Zoom an image with InteractiveViewerlinklink
152Logging HTTP status codes with emojislinklink
151Scroll-to-index inside a ListViewlinklink
150Preloading SVG assets in Flutterlinklink
149Environment variables in Dartlinklink
148Determinate Circular Progress Indicatorlinklink
147How to bundle assets based on flavorlinklink
146Extension methods vs types (Dart 3.3)linklink
145Write reusable widgets!linklink
144Scheduling microtasks in Dartlinklink
143We need to talk about FlutterFlow!linklinklink
142Launching your Flutter app with flavorslinklink
141⚠️ debugPrint prints in release mode ⚠️linklink
140Toggle Inlay Hints in VSCodelinklink
139GitHub Copilot Tips for Flutter Devslinklinklink
138Opening URLs with xcrun / adblinklink
137Combining Streams with RxDartlinklinklink
136Use IntrinsicWidth, not fixed widthlinklink
135Replace Container with nested widgetslinklink
134Debug Paint Size (DevTools)linklink
133SelectionArea across multiple widgetslinklink
132Highlight oversized images with the Flutter DevToolslinklink
131Async Dependency Initialization with requireValue (Riverpod)linklinklink
1308 Steps to Follow When Building Your Next Flutter Applinklinklink
129VSCode Debug Toolbar in Command Centerlinklink
128Error Handling during App Startuplinklinklink
127Full-Text Search: Firestore Extensionslinklink
126How to work with webhooks?linklinklink
125Xcode 15 DT_TOOLCHAIN_DIR issuelinklink
124Payment options on mobile and weblinklink
123Top reasons for using a realtime backendlinklinklink
122First steps to tackle when starting a new mobile applinklinklink
121Fetching vs Mutating data with Riverpodlinklinklink
120Flutter web: redirect to an external URLlinklink
119VSCode Quick Fix: Create constructor for final fields, required namedlinklink
118How to Inspect Network Requests with the Flutter DevToolslink
117Are global variables bad?linklink
116Measuring execution time in Dartlinklink
115Find the Invalid Switch Expression 🧐linklink
1146 steps to minimize your Firebase Billlinklink
113Conditional JSON parsing in Dart 3linklink
112Switch Matrix in Dart 3linklink
111Destructuring Lists in Dartlinklink
110Getting a Future from a FutureProvider with Riverpodlinklink
109Record Equality in Dart 3linklink
108MediaQuery as InheritedModellinklinklink
107Happy Birthday with records in Dart 3link
106Return without async/awaitlink
105Creating an empty Flutter projectlink
104[core/duplicate-app] A Firebase App named "[DEFAULT]" already existslink
103Firebase Auth flow in 5 minuteslink
102Storing API keys in a JSON filelinklink
101Backend-agnostic Flutter appslinklink
100Firestore Security Rules Playgroundlink
99Firestore OR queries 🔥link
98Pagination with FirestoreListViewlinklink
97Riverpod Notifier with build argumentslink
96Cloud Firestore - Cache Sizelink
95StreamProvider with Riverpod Generatorlinklink
94Fix missing ProviderScope error with Riverpod Lintlinklink
93Add a part file with Riverpod Snippetslink
92Firebase Billing and Cost Calculatorlink
91Got linter issues? Use dart fix --applylinklink
90Using context.mounted in Flutter 3.7linklink
89Using serverTimestamp() in Firestorelink
88Get a single item from a listlink
87The Accessibility Tools packagelink
86Dart code samples in the Firebase docslink
85Use ChatGPT to do custom styling in Flutterlink
84Using the query builder UI in Cloud Firestorelink
83Update packages with the Version Lens VSCode extensionlinklink
82Cloud Firestore collection countlink
81How to use the new Riverpod Generator packagelinklink
80How to use Future.wait() in Dartlink
79String multiplication in Dartlink
78How to nest generated files in VSCodelink
77Using AnimatedContainer to animate Container propertieslink
76Enable sticky scroll in VSCodelink
75Using build_runner in watch modelink
74Functions as arguments (with tear-off)link
73How to Define Type Aliases in Dartlink
72Use Type Annotations for Safer Codelink
71Prefer const over final over varlink
70Flutter app localization in 5 minlinklink
69Use SizedBox.shrink() to return an empty boxlink
68--enable-asserts flag in Dart / Flutterlink
67REST Client extension for VSCodelinklink
66The HtmlUnescape packagelink
65How kIsWeb works in Flutterlink
64When to use each Riverpod provider?link
63Explicit error types with Eitherlinklink
62Exception handling: try/catch vs Resultlinklink
61Errors vs Exceptions in Flutterlink
60Do not use BuildContexts across async gaps (and what to do instead)link
59Flutter Riverpod: How to Register a Listener during App Startuplinklink
58Using test tags in Flutterlinklink
57Singletons in Flutter: Drawbackslinklink
56Riverpod: Async init with Provider Overrideslink
55How to run multiple test variantslinklink
54Riverpod tip for less boilerplate (Passing Ref)link
53How to Create DartPad Examples from GitHub Gistslinklink
52How to Add a Custom Test Timeout in Flutterlinklink
51Golden Image Testing with Robot Testinglink
50Dart 2.17: Enhanced Enums with Memberslinklink
49Dart 2.17: Super Initializerslinklink
48Testing functions that throwlinklink
47Why write automated tests?link
46Riverpod: difference between ref.watch, ref.read, ref.listenlink
45The Map.update() methodlinklink
44AsyncValue.guard() vs try/catchlinklink
43How to write a reactive in-memory store with RxDartlink
42How to Generate and Analyze a Flutter Test Coverage Report in VSCodelinklink
41Using Fake Repositories for Testinglink
40Anatomy of a Riverpod Providerlink
39Flutter Project Structure: Feature-first or Layer-first?linklink
38Popular architectures for Flutter developmentlinklink
37Rules to follow for good app architecturelink
36GoRouter: go vs pushlinklink
35AsyncValue vs FutureBuilder & StreamBuilderlinklink
34How to use WidgetsBindingObserverlink
33VSCode extensions to speed-up your Flutter workflowlinklink
32Flutter tip: use composition aggressivelylink
31How to use the Flutter Widget Inspectorlink
30VSCode launch configurationslink
29Domain-Driven Exception Handlinglink
28DDD: The Domain Modellink
27Better Comments Extension for VSCodelink
26Running tests with GitHub actionslink
25How to run Flutter Integration Tests at Hyper Speedlink
24Simplified Flutter App Localizationlinklink
23The Gap Widgetlink
22App Development workflow in 6 stepslink
21Repositories as abstract classes (program to interfaces, not implementations)linklink
20How to configure multiple Firebase environments with FlutterFire CLIlink
19How to use Robot Testing to write more readable widget testslink
18How to create a Flutter GridView with content-sized itemslinklink
176 common sources of errors in Flutter appslink
16Easily handle loading and error stateslink
15AsyncValueWidget: a reusable Flutter widget to work with AsyncValue (using Riverpod)linklink
14How to navigate programmatically between tabs in Flutterlink
13Responsive Flutter layout with SizedBox & Centerlink
12How to Validate a TextField in Flutterlinklink
11How to Style an ElevatedButton in Flutterlinklink
10How to Generate Fake data with the Faker packagelinklink
9Chat UI with message bubbles (revisited)linklink
8Chat UI with message bubbleslinklink
7How to set the border radius on a Flutter widgetlinklink
6Flutter Fix all commandlink
5Use the DevTools to identify Jank and Shader compilation issueslink
4Flutter Lints packagelink
3Accept payments with the Stripe SDKlink
2Flutter create --samplelink
1Responsive Split View in Flutterlinklinklinklink

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.

Thank you for all your input!

LICENSE: MIT

dart
firebase
flutter

Significant stargazers

Dieter Plaetinck

401 followers · starred Nov 2023

Bishwajeet Parhi

135 followers · starred Jul 2022

danielAsaboro

28 followers · starred Oct 2023

alceil

75 followers · starred Oct 2023