bizz84/flutter-tips-and-tricks
bizz84/flutter-tips-and-tricks is a Mobile project on GitHub, written primarily in Dart. It has 2.3k stars. All my Flutter Tips & Tricks on X (Twitter) and LinkedIn.
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Snapshot
Top contributors
Show top contributors
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:

Full List
I'm adding new tips regularly (newest at the top 👇).
| ID | View on GitHub (this repo) | X Post | LinkedIn Post | Bluesky Post | Link on codewithandrea.com |
|---|---|---|---|---|---|
| 256 | Relative & Absolute Imports in Dart | link | link | link | |
| 255 | Deprecated APIs in Matrix4 | link | link | link | |
| 254 | Use Multiple Flutter Versions with Puro | link | link | link | |
| 253 | Preserve Trailing Commas in Dart 3.8 | link | link | link | link |
| 252 | Null-aware elements in Dart 3.8 | link | link | link | |
| 251 | GoRouter Delegate Listener for Screen Tracking | link | link | link | |
| 250 | Button Styles in Material 3 | link | link | link | |
| 249 | Test your UI with ThemeData.platform | link | link | link | |
| 248 | Adaptive Alert Dialog (Material, Cupertino) | link | link | link | |
| 247 | How to Initialize Firebase Remote Config | link | link | link | |
| 246 | How to Disable Impeller on Android | link | link | link | |
| 245 | How to use debugRepaintRainbowEnabled | link | link | link | |
| 244 | TextFormField Setup for Numeric Inputs | link | link | link | |
| 243 | Showing URLs on Flutter web with TextSpan | link | link | link | |
| 242 | A/B Testing in Flutter | link | link | link | |
| 241 | Release Toggles with Dart Defines | link | link | link | |
| 240 | int.fromEnvironment and bool.fromEnvironment | link | link | link | |
| 239 | Hot Reload on Flutter web (beta) | link | link | link | |
| 238 | Uploading Screenshots with Fastlane | link | link | link | |
| 237 | Using Semantics Identifiers for UI Testing | link | link | link | |
| 236 | Generate Screenshots with Maestro | link | link | link | |
| 235 | Android Demo Mode for Better Screenshots | link | link | link | |
| 234 | iOS Status Bar Tip for Better Screenshots | link | link | link | |
| 233 | Gradle Kotlin DSL (Flutter 3.29) | link | link | link | |
| 232 | The flutter run --route argument | link | link | link | |
| 231 | Downloads Count by Version on Pub.dev | link | link | link | |
| 230 | Side Effects with ValueNotifier | link | link | link | link |
| 229 | New Formatting Style in Dart 3.7 | link | link | link | |
| 228 | Wildcard Variables in Dart 3.7 | link | link | link | |
| 227 | Hotkeys with CallbackShortcuts | link | link | link | |
| 226 | GitHub Self-Hosted Runners | link | link | link | |
| 225 | The debugFillProperties Method | link | link | link | |
| 224 | Uploading the Source Maps to Sentry | link | link | link | |
| 223 | SSH Access on Codemagic Builds | link | link | link | |
| 222 | Move Declaration to File (VSCode assist) | link | link | link | |
| 221 | Using Stack and FractionallySizedBox | link | link | link | |
| 220 | The ListWheelScrollView Widget | link | link | link | |
| 219 | Color API Deprecations in Flutter 3.27 | link | link | link | |
| 218 | Text Style with Tabular Figures | link | link | link | |
| 217 | Digits Separators in Dart 3.6 | link | link | link | |
| 216 | New Spacing Argument in Row/Column (Flutter 3.27) | link | link | link | |
| 215 | The Banner Widget | link | link | link | |
| 214 | Improve your code with Cursor Edit Mode | link | link | link | |
| 213 | Fixing Version Solving Failed Errors | link | link | link | |
| 212 | Adding a Privacy Manifest in Xcode | link | link | link | |
| 211 | Fix for Missing Compliance Warning in App Store Connect | link | link | link | |
| 210 | Material Icons Theme (VSCode Extension) | link | link | link | |
| 209 | iOS App Store: Build and Upload Script | link | link | link | |
| 208 | API keys storage: Client or Server? | link | link | link | |
| 207 | Downloads Count on pub.dev | link | link | link | |
| 206 | Script to Update the Android Project Settings | link | link | link | Kotlin DSL in Flutter 3.29: How to Update Your Android Gradle Files |
| 205 | Error.throwWithStackTrace | link | link | link | |
| 204 | Apple Small Business Program | link | link | link | |
| 203 | Declaring Riverpod Providers with Ref | link | link | ||
| 202 | What does flutter pub upgrade do? | link | link | ||
| 201 | Firebase Init with Multiple Flavors | link | link | link | |
| 200 | Fixing Build Issues - Nuclear Option 💣 | link | link | ||
| 199 | Force Update with Remote Config | link | link | link | |
| 198 | Show the Licenses in your Flutter app | link | link | ||
| 197 | Dark and Tinted Icons on iOS 18 | link | link | ||
| 196 | FlutterFire Config with Multiple Flavors (Shell Script) | link | link | link | |
| 195 | Remote Config via GitHub Gist | link | link | ||
| 194 | Generate Commit Messages with Copilot | link | link | link | |
| 193 | Control the Code Generation Order | link | link | link | |
| 192 | Async Stream Initialization with async* | link | link | ||
| 191 | Timing the In-App Review Prompt | link | link | link | |
| 190 | Working with multiple Xcode versions | link | link | ||
| 189 | Adding a Navigator Observer | link | link | ||
| 188 | Flutter DevTools Logging Page | link | link | ||
| 187 | BuildContext extension for push, pop | link | link | ||
| 186 | ShaderMask + LinearGradient + Text = 🌈 | link | link | ||
| 185 | Adding a Badge to an IconButton | link | link | link | |
| 184 | Detect triple taps with RawGestureDetector | link | link | ||
| 183 | Flutter Sidebar (VSCode) | link | link | ||
| 182 | DevTools Performance Rebuild Stats | link | link | link | |
| 181 | The CarouselView Widget | link | link | link | |
| 180 | The dart pub unpack command | link | link | ||
| 179 | The OverflowBar widget | link | link | link | |
| 178 | Futures: await vs unawaited vs ignore | link | link | ||
| 177 | Useful arguments in the log function (from dart:developer) | link | link | ||
| 176 | Use unawaited for your analytics calls | link | link | ||
| 175 | How to use --dart-define-from-file with .env and json files | link | link | link | |
| 174 | Get the Current Method Name (Hack) | link | link | ||
| 173 | Hugeicons (4,000 stroke Flutter icons) | link | link | link | |
| 172 | Dio + CancelToken + Riverpod = ❤️ | link | link | link | |
| 171 | TextField with Selection Height Style | link | link | ||
| 170 | The build method: DOs and DON'Ts | link | link | link | |
| 169 | Transparent Images With Opacity | link | link | ||
| 168 | Disposing fields to avoid memory leaks | link | link | ||
| 167 | Find Unused Dart Files (VSCode Extension) | link | link | ||
| 166 | Conditional Imports for Web/Native APIs | link | link | ||
| 165 | Use defaultTargetPlatform and kIsWeb | link | link | link | |
| 164 | The UniversalPlatform Package | link | link | ||
| 163 | Taking screenshots with the Flutter CLI | link | link | ||
| 162 | Flutter Web App Initialization Logic with CSS Loader | link | link | ||
| 161 | Transform SVG assets at build time | link | link | ||
| 160 | JsonCodable (Dart Macros experiment) | link | link | ||
| 159 | Useful Aliases for Flutter Development | link | link | ||
| 158 | Hide Generated Dart Files in GitHub PRs | link | link | link | |
| 157 | Force App Upgrade Gone Wrong 😭 | link | link | ||
| 156 | Debouncing in Flutter | link | link | link | |
| 155 | Null-aware spread operator (...?) | link | link | ||
| 154 | Loading UI with Shimmer effect | link | link | ||
| 153 | Zoom an image with InteractiveViewer | link | link | ||
| 152 | Logging HTTP status codes with emojis | link | link | ||
| 151 | Scroll-to-index inside a ListView | link | link | ||
| 150 | Preloading SVG assets in Flutter | link | link | ||
| 149 | Environment variables in Dart | link | link | ||
| 148 | Determinate Circular Progress Indicator | link | link | ||
| 147 | How to bundle assets based on flavor | link | link | ||
| 146 | Extension methods vs types (Dart 3.3) | link | link | ||
| 145 | Write reusable widgets! | link | link | ||
| 144 | Scheduling microtasks in Dart | link | link | ||
| 143 | We need to talk about FlutterFlow! | link | link | link | |
| 142 | Launching your Flutter app with flavors | link | link | ||
| 141 | ⚠️ debugPrint prints in release mode ⚠️ | link | link | ||
| 140 | Toggle Inlay Hints in VSCode | link | link | ||
| 139 | GitHub Copilot Tips for Flutter Devs | link | link | link | |
| 138 | Opening URLs with xcrun / adb | link | link | ||
| 137 | Combining Streams with RxDart | link | link | link | |
| 136 | Use IntrinsicWidth, not fixed width | link | link | ||
| 135 | Replace Container with nested widgets | link | link | ||
| 134 | Debug Paint Size (DevTools) | link | link | ||
| 133 | SelectionArea across multiple widgets | link | link | ||
| 132 | Highlight oversized images with the Flutter DevTools | link | link | ||
| 131 | Async Dependency Initialization with requireValue (Riverpod) | link | link | link | |
| 130 | 8 Steps to Follow When Building Your Next Flutter App | link | link | link | |
| 129 | VSCode Debug Toolbar in Command Center | link | link | ||
| 128 | Error Handling during App Startup | link | link | link | |
| 127 | Full-Text Search: Firestore Extensions | link | link | ||
| 126 | How to work with webhooks? | link | link | link | |
| 125 | Xcode 15 DT_TOOLCHAIN_DIR issue | link | link | ||
| 124 | Payment options on mobile and web | link | link | ||
| 123 | Top reasons for using a realtime backend | link | link | link | |
| 122 | First steps to tackle when starting a new mobile app | link | link | link | |
| 121 | Fetching vs Mutating data with Riverpod | link | link | link | |
| 120 | Flutter web: redirect to an external URL | link | link | ||
| 119 | VSCode Quick Fix: Create constructor for final fields, required named | link | link | ||
| 118 | How to Inspect Network Requests with the Flutter DevTools | link | |||
| 117 | Are global variables bad? | link | link | ||
| 116 | Measuring execution time in Dart | link | link | ||
| 115 | Find the Invalid Switch Expression 🧐 | link | link | ||
| 114 | 6 steps to minimize your Firebase Bill | link | link | ||
| 113 | Conditional JSON parsing in Dart 3 | link | link | ||
| 112 | Switch Matrix in Dart 3 | link | link | ||
| 111 | Destructuring Lists in Dart | link | link | ||
| 110 | Getting a Future from a FutureProvider with Riverpod | link | link | ||
| 109 | Record Equality in Dart 3 | link | link | ||
| 108 | MediaQuery as InheritedModel | link | link | link | |
| 107 | Happy Birthday with records in Dart 3 | link | |||
| 106 | Return without async/await | link | |||
| 105 | Creating an empty Flutter project | link | |||
| 104 | [core/duplicate-app] A Firebase App named "[DEFAULT]" already exists | link | |||
| 103 | Firebase Auth flow in 5 minutes | link | |||
| 102 | Storing API keys in a JSON file | link | link | ||
| 101 | Backend-agnostic Flutter apps | link | link | ||
| 100 | Firestore Security Rules Playground | link | |||
| 99 | Firestore OR queries 🔥 | link | |||
| 98 | Pagination with FirestoreListView | link | link | ||
| 97 | Riverpod Notifier with build arguments | link | |||
| 96 | Cloud Firestore - Cache Size | link | |||
| 95 | StreamProvider with Riverpod Generator | link | link | ||
| 94 | Fix missing ProviderScope error with Riverpod Lint | link | link | ||
| 93 | Add a part file with Riverpod Snippets | link | |||
| 92 | Firebase Billing and Cost Calculator | link | |||
| 91 | Got linter issues? Use dart fix --apply | link | link | ||
| 90 | Using context.mounted in Flutter 3.7 | link | link | ||
| 89 | Using serverTimestamp() in Firestore | link | |||
| 88 | Get a single item from a list | link | |||
| 87 | The Accessibility Tools package | link | |||
| 86 | Dart code samples in the Firebase docs | link | |||
| 85 | Use ChatGPT to do custom styling in Flutter | link | |||
| 84 | Using the query builder UI in Cloud Firestore | link | |||
| 83 | Update packages with the Version Lens VSCode extension | link | link | ||
| 82 | Cloud Firestore collection count | link | |||
| 81 | How to use the new Riverpod Generator package | link | link | ||
| 80 | How to use Future.wait() in Dart | link | |||
| 79 | String multiplication in Dart | link | |||
| 78 | How to nest generated files in VSCode | link | |||
| 77 | Using AnimatedContainer to animate Container properties | link | |||
| 76 | Enable sticky scroll in VSCode | link | |||
| 75 | Using build_runner in watch mode | link | |||
| 74 | Functions as arguments (with tear-off) | link | |||
| 73 | How to Define Type Aliases in Dart | link | |||
| 72 | Use Type Annotations for Safer Code | link | |||
| 71 | Prefer const over final over var | link | |||
| 70 | Flutter app localization in 5 min | link | link | ||
| 69 | Use SizedBox.shrink() to return an empty box | link | |||
| 68 | --enable-asserts flag in Dart / Flutter | link | |||
| 67 | REST Client extension for VSCode | link | link | ||
| 66 | The HtmlUnescape package | link | |||
| 65 | How kIsWeb works in Flutter | link | |||
| 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 | link | ||
| 57 | Singletons in Flutter: Drawbacks | link | link | ||
| 56 | Riverpod: Async init with Provider Overrides | link | |||
| 55 | How to run multiple test variants | link | 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 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 | link | ||
| 9 | Chat UI with message bubbles (revisited) | link | link | ||
| 8 | Chat UI with message bubbles | link | link | ||
| 7 | How to set the border radius on a Flutter widget | link | 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 | Responsive Split View in Flutter | link | link | 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.
Thank you for all your input!
LICENSE: MIT
Related repositories
Flutter is Google's open-source SDK, hosted at flutter/flutter on GitHub, for building user interfaces across mobile, web, and desktop from a single Dart codebase. The repo is licensed BSD-3-Clause, and its README documents stateful hot reload, a Skia/Impeller rendering pipeline, and Material/Cupertino widget sets as the core pieces developers work with.
Awesome Flutter (Solido/awesome-flutter) is a curated list of Flutter resources on GitHub: articles, blog posts, video tutorials, and UI packages sorted into topic sections instead of one long feed of links. It follows the standard awesome-list format, markdown headings with a one-line description and author credit per entry, and it leans toward UI widgets and components more than general Dart theory.
A collaborative GitHub list linking to open-source apps across iOS, iPadOS, watchOS, tvOS, and visionOS, grouped into categories like Browser, Communication, and Clone, with each entry tagged by year and language.
scrcpy is an open-source application from Genymobile that mirrors an Android device's video and audio onto a Linux, Windows, or macOS desktop over USB or TCP/IP, and lets you control the device using the computer's keyboard and mouse. It runs without root access and without installing any companion app on the phone, per the README, and the project is available under an Apache-2.0 license.
Quick answers
How does bizz84/flutter-tips-and-tricks compare to other Mobile projects?
bizz84/flutter-tips-and-tricks is tracked by TopGit in the Mobile category, with 2.3k GitHub stars and written in Dart. Browse the Mobile topic page on TopGit to compare it against similar projects by stars and activity.
Is bizz84/flutter-tips-and-tricks open source?
Yes — bizz84/flutter-tips-and-tricks ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/bizz84/flutter-tips-and-tricks.
What else is in the Mobile space?
bizz84/flutter-tips-and-tricks is tracked by TopGit under the Mobile category, alongside 3 GitHub-tagged topics. Trending and Topics pages list peer repositories of comparable stars and language.
What is bizz84/flutter-tips-and-tricks?
bizz84/flutter-tips-and-tricks (bizz84/flutter-tips-and-tricks) is a Dart project on GitHub. From the project's own README: All my Flutter Tips & Tricks on X (Twitter) and LinkedIn.
Where do I read more about bizz84/flutter-tips-and-tricks?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/bizz84/flutter-tips-and-tricks is the definitive source.
Why is bizz84/flutter-tips-and-tricks categorized under Mobile?
TopGit places bizz84/flutter-tips-and-tricks in the Mobile category based on its GitHub topics and description (tagged: "dart", "firebase", "flutter"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Want a second opinion on flutter-tips-and-tricks?
Ask an AI that can read this page — one click and you get its take on flutter-tips-and-tricks.