[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9229":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":18,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":31,"discoverSource":32},9229,"flutter-tips-and-tricks","bizz84\u002Fflutter-tips-and-tricks","bizz84","All my Flutter Tips & Tricks on X (Twitter) and LinkedIn.","https:\u002F\u002Ffluttertips.dev",null,"Dart",2298,261,107,2,0,1,4,9,29.25,"MIT License",false,"main",[25,26,27],"dart","firebase","flutter","2026-06-12 02:02:04","# Flutter Tips & Tricks\n\nA collection of all the Flutter tips & tricks I share on [X (Twitter)](https:\u002F\u002Fx.com\u002Fbiz84), [LinkedIn](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fandreabizzotto\u002Frecent-activity\u002Fall\u002F), and [Bluesky](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com). If you find this useful, give it a star! 🌟\n\n## Preview\n\n![](flutter-tips-preview.png)\n\n## Download the App\n\nThis repo now has a companion app! [Download it here](https:\u002F\u002Ffluttertips.dev\u002F) to get all my Flutter tips on your phone: \n\n[![Download the Flutter Tips app](social-media-banner.png)](https:\u002F\u002Ffluttertips.dev\u002F)\n\n## Full List\n\n> I'm adding new tips regularly (newest at the top 👇).\n\n| ID | View on GitHub (this repo)                                                                                                                                                        | X Post | LinkedIn Post | Bluesky Post | Link on [codewithandrea.com](https:\u002F\u002Fcodewithandrea.com\u002F) |\n| -- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| ------ | ------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------ |\n| 256 | [Relative & Absolute Imports in Dart](tips\u002F0256-relative-absolute-imports-dart\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1970424616339333506) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-you-can-use-absolute-imports-activity-7376190465567797248-WMcz) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lzineac3hc2b) | |\n| 255 | [Deprecated APIs in Matrix4](tips\u002F0255-matrix4-vector3\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1963179034596065692) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-some-matrix4-apis-such-as-activity-7368945020202033156-LyAb) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lxwelnjst222) | |\n| 254 | [Use Multiple Flutter Versions with Puro](tips\u002F0254-multiple-flutter-versions-puro\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1931999304337760702) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-puro-is-a-powerful-tool-that-activity-7337765132606885888-5qB1) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lr5zap6fqc2n) | |\n| 253 | [Preserve Trailing Commas in Dart 3.8](tips\u002F0253-preserve-trailing-commas-dart-3.8\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1925126563588194639) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-dart-38-introduces-a-new-activity-7330892354045804547-c-pC) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lpod6unsd224) | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fupdated-formatter-dart-3-8\u002F) |\n| 252 | [Null-aware elements in Dart 3.8](tips\u002F0252-null-aware-elements-dart-3.8\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1925097550551355480) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-dart-38-introduces-null-aware-activity-7330863488443023361-HJ26) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lpo4sw4tdc2o) | |\n| 251 | [GoRouter Delegate Listener for Screen Tracking](tips\u002F0251-go-router-delegate-listener\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1920475265823596649) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-your-app-uses-gorouter-activity-7326241428102144000-1eLq) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3loo2ipupr226) | |\n| 250 | [Button Styles in Material 3](tips\u002F0250-button-styles-material3\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1920049708824736120) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-material-3-supports-5-types-activity-7325815699250077696-0tNS) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lol3w42kzc26) | |\n| 249 | [Test your UI with ThemeData.platform](tips\u002F0249-themedata-platform\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1919713657971171620) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-by-overriding-themedataplatform-activity-7325479508629741568-u8BB) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3loirckcv6k26) | |\n| 248 | [Adaptive Alert Dialog (Material, Cupertino)](tips\u002F0248-adaptive-alert-dialog\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1917863560081821811) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_in-many-of-my-projects-i-use-a-simple-alert-activity-7323629404767608833-7l43) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lo3wk6phne23) | |\n| 247 | [How to Initialize Firebase Remote Config](tips\u002F0247-firebase-remote-config-init\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1917490060662038589) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_firebase-remote-config-is-great-but-its-activity-7323257186095120385-ioPy) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lnzdvjmiac23) | |\n| 246 | [How to Disable Impeller on Android](tips\u002F0246-disable-impeller-android\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1917195051282882814) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-since-flutter-329-impeller-activity-7322960928092614656-y3a4) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lnxbzya7oc23) | |\n| 245 | [How to use debugRepaintRainbowEnabled](tips\u002F0245-debug-repaint-rainbow-enabled\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1915327716053729791) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-debugrepaintrainbowenabled-activity-7321093982288031745-PA_b) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lnkdeld36c2n) | |\n| 244 | [TextFormField Setup for Numeric Inputs](tips\u002F0244-text-form-field-numeric\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1912151340190425174) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-when-working-with-forms-in-activity-7317917226840330241-ROgi) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lmuc544tkc2l) | |\n| 243 | [Showing URLs on Flutter web with TextSpan](tips\u002F0243-show-flutter-web-url-text-span\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1909997182960218589) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-you-can-show-native-looking-activity-7315763069161267201-F_73) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lmfdsf5hj22m) | |\n| 242 | [A\u002FB Testing in Flutter](tips\u002F0242-ab-testing-flutter\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1909568197428117880) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-ab-tests-help-you-make-data-driven-activity-7315334631447232512-lkfm) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lmceptwbxc2z) | |\n| 241 | [Release Toggles with Dart Defines](tips\u002F0241-release-toggles-dart-define\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1907430520322928748) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-static-release-toggles-let-activity-7313196425872355329-xJy6) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lltjwnidis22) | |\n| 240 | [int.fromEnvironment and bool.fromEnvironment](tips\u002F0240-int-bool-from-environment\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1905572370871390585) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-in-addition-to-stringfromenvironment-activity-7311338221068509184-bu3J) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3llgnbomicc2m) | |\n| 239 | [Hot Reload on Flutter web (beta)](tips\u002F0239-hot-reload-flutter-web\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1902650525214036347) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-hot-reload-is-coming-to-flutter-activity-7308417256906997762-tWeq) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lksemfmsbd2y) | |\n| 238 | [Uploading Screenshots with Fastlane](tips\u002F0238-uploading-screenshots-fastlane\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1902295020217974868) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-rather-than-uploading-your-activity-7308061624051904515-ya3-) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lkpvkj4t6t2y) | |\n| 237 | [Using Semantics Identifiers for UI Testing](tips\u002F0237-semantics-identifiers\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1901966299246268467) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-ui-testing-frameworks-like-activity-7307732520383533060-WCi3) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lknmknavvk2y) | |\n| 236 | [Generate Screenshots with Maestro](tips\u002F0236-take-screenshots-maestro\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1901668347097313597) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-instead-of-taking-screenshots-activity-7307435080732278784-17-j) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lklkimc5rc2y) | |\n| 235 | [Android Demo Mode for Better Screenshots](tips\u002F0235-android-demo-mode-for-screenshots\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1900522513588769112) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-want-to-take-better-activity-7306288388351946752-VkeK) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lkdlwnxyik2x) | |\n| 234 | [iOS Status Bar Tip for Better Screenshots](tips\u002F0234-ios-status-bar-for-screenshots\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1900226263131799776) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-you-can-use-this-command-to-activity-7305992157113274369--Vwc) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lkbk5n7zbc2x) | |\n| 233 | [Gradle Kotlin DSL (Flutter 3.29)](tips\u002F0233-gradle-kotlin-dsl\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1899104439077601668) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-new-apps-created-with-flutter-activity-7304870272443052033-ulgB) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3ljzr46sges2f) | |\n| 232 |  [The flutter run --route argument](tips\u002F0232-flutter-run-route\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1896857999890604465) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-you-can-run-flutter-run-activity-7302623534877401089-fr-I) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3ljk6bi3m5s2m) | |\n| 231 | [Downloads Count by Version on Pub.dev](tips\u002F0231-download-counts-by-version\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1895396402924261615) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-an-improved-weekly-downloads-activity-7301162295122952192-AD8w) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lj7zrfg2qk2f) | |\n| 230 | [Side Effects with ValueNotifier](tips\u002F0230-side-effects-value-notifier\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1895038901078945931) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-by-registering-a-valuenotifier-activity-7300804765456781312-LQ_k) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lj5kf362wc2u) | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fside-effects-flutter\u002F) |\n| 229 | [New Formatting Style in Dart 3.7](tips\u002F0229-new-formatting-style-dart-3.7\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1890039998814261546) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-dart-37-introduces-a-new-activity-7295806189295075329-BG1O) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3li2uffje522h) | |\n| 228 | [Wildcard Variables in Dart 3.7](tips\u002F0228-wildcard-variables-dart-3.7\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1889960813726998637) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-since-dart-37-the-character-activity-7295726826046320640-5UmP) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3li2crz4rw22f) | |\n| 227 | [Hotkeys with CallbackShortcuts](tips\u002F0227-hotkeys-callback-shortcuts\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1889311863759913078) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-the-callbackshortcuts-widget-activity-7295078648250810368-p2J_) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lhvst66e2k2f) | |\n| 226 | [GitHub Self-Hosted Runners](tips\u002F0226-github-self-hosted-runners\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1887441742028214765) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-youre-using-github-actions-activity-7293207844273684480-yjhQ) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lhitlc5lqs2m) | |\n| 225 | [The debugFillProperties Method](tips\u002F0225-debug-fill-properties\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1882486196133404933) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-add-a-debugfillproperties-activity-7288252423486234624-KdP-) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lggh4vqfas2r) | |\n| 224 | [Uploading the Source Maps to Sentry](tips\u002F0224-upload-source-maps-sentry\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1879922615026151473) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-your-codemagic-builds-are-activity-7285688423271530496-XY0x) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lfunvdmhjc2w) | |\n| 223 | [SSH Access on Codemagic Builds](tips\u002F0223-ssh-access-codemagic\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1879922615026151473) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-your-codemagic-builds-are-activity-7285688423271530496-XY0x) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lfunvdmhjc2w) | |\n| 222 | [Move Declaration to File (VSCode assist)](tips\u002F0222-move-to-file-vscode-assist\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1876983674735849540) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-with-vscode-you-can-easily-activity-7282749783033741314-qVCu) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lfabcatbhs2r) | |\n| 221 | [Using Stack and FractionallySizedBox](tips\u002F0221-stack-fractionally-sized-box\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1876564889537311226) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-flutter-offers-many-ways-to-activity-7282330843241447426-cDRF) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lf5eby24zc2r) | |\n| 220 | [The ListWheelScrollView Widget](tips\u002F0220-list-wheel-scroll-view\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1870061289114087814) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-need-to-select-between-activity-7275827511219945472-cYEH) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3ldqaaejlx22e) | |\n| 219 | [Color API Deprecations in Flutter 3.27](tips\u002F0219-color-deprecations-flutter-3.27\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1869357562979893444) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-to-support-the-latest-wide-activity-7275123561881645057-LsKH) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3ldldwzh6l22f) | |\n| 218 | [Text Style with Tabular Figures](tips\u002F0218-text-style-tabular-figures\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1868692579648487611) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-want-to-render-fixed-activity-7274458459914350593-YkSx) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3ldgqe64qzs24) | |\n| 217 | [Digits Separators in Dart 3.6](tips\u002F0217-digits-separators\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1867505284002000962) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-since-dart-36-flutter-327-activity-7273271119049068544-gQuB) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3ld6ioxq5x22f) | |\n| 216 | [New Spacing Argument in Row\u002FColumn (Flutter 3.27)](tips\u002F0216-spacing-row-column\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1867143273652904039) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-since-flutter-327-you-can-activity-7272909542131187712-7Spj) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3ld3ycpuxxk2f) | |\n| 215 | [The Banner Widget](tips\u002F0215-banner-widget\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1866482324105490628) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-you-can-use-the-banner-widget-activity-7272248288236519424-tfzF) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lcxfixclys2f) | |\n| 214 | [Improve your code with Cursor Edit Mode](tips\u002F0214-cursor-edit-mode\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1864613511420068093) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-the-cursor-ide-has-a-powerful-activity-7270379818746105856-Mq9n) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lckgkkurms27) | |\n| 213 | [Fixing Version Solving Failed Errors](tips\u002F0213-fixing-version-solving-failed-errors\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1864283511852527815) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_when-you-get-a-version-solving-failed-error-activity-7270050610329100289-0I9m) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lci5gzmagc27) | |\n| 212 | [Adding a Privacy Manifest in Xcode](tips\u002F0212-xcode-privact-manifest\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1863537508899860770) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-starting-november-12-2024-activity-7269303842813489154-k5iw) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lccxnqg5zs2j) | |\n| 211 | [Fix for Missing Compliance Warning in App Store Connect](tips\u002F0211-fix-missing-compliance-warning\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1862524737651376212) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_tired-of-seeing-the-missing-compliance-activity-7268290796854902784-iNzJ) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lc3wqvcqus2d) | |\n| 210 | [Material Icons Theme (VSCode Extension)](tips\u002F0210-material-icons-theme-vscode-extension\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1861698580727075132) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_tired-of-the-old-boring-vscode-default-theme-activity-7267464786907389952-w42m) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lbw7cepvg22v) | |\n| 209 | [iOS App Store: Build and Upload Script](tips\u002F0209-build-upload-ios-script\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1861074917917073843) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_when-building-mobile-or-web-apps-security-activity-7266842729458851840-JuGi) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lbrv7hm3mk2v) | |\n| 208 | [API keys storage: Client or Server?](tips\u002F0208-api-keys-client-server\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1861074917917073843) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_when-building-mobile-or-web-apps-security-activity-7266842729458851840-JuGi) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lbrv7hm3mk2v) | |\n| 207 | [Downloads Count on pub.dev](tips\u002F0207-downloads-count-pub-dev\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1859569027045089661) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-you-can-now-see-the-downloads-activity-7265335006363889664-yKdp) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lbhgjp42zs2q) | |\n| 206 | [Script to Update the Android Project Settings](tips\u002F0206-update-android-project\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1858451367959855404) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_tired-of-dealing-with-gradle-and-other-build-activity-7264217587473911808-skOn) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lb7ohh4coc2k) | [Kotlin DSL in Flutter 3.29: How to Update Your Android Gradle Files](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-android-gradle-kts\u002F) |\n| 205 | [Error.throwWithStackTrace](tips\u002F0205-throw-error-with-stack-trace\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1856346045069787263) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-using-domain-specific-exceptions-activity-7262112040121520130-3pfy) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lar2vx6s522y) | |\n| 204 | [Apple Small Business Program](tips\u002F0204-apple-small-business-program\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1854534361841823907) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-sell-apps-on-the-ios-activity-7260300383128797185-DfeQ) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3laeiswogmc2w) | |\n| 203 | [Declaring Riverpod Providers with Ref](tips\u002F0203-riverpod-prodivers-with-ref\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1848646896170000843) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-theres-a-subtle-difference-activity-7254412930966810625-HBID) | | |\n| 202 | [What does flutter pub upgrade do?](tips\u002F0202-flutter-pub-upgrade\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1848646896170000843) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-theres-a-subtle-difference-activity-7254412930966810625-HBID) | | |\n| 201 | [Firebase Init with Multiple Flavors](tips\u002F0201-firebase-init-multiple-flavors\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1847236054828429628) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_take-2-if-your-flutter-app-has-multiple-activity-7253002364234690560-MwsY) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-firebase-multiple-flavors-flutterfire-cli\u002F) |\n| 200 | [Fixing Build Issues - Nuclear Option 💣](tips\u002F0200-fixing-build-issues-nuclear-option\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1846459389252641100) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-have-a-flutter-project-activity-7252225288271491072-QzCD) | | |\n| 199 | [Force Update with Remote Config](tips\u002F0199-force-update-helper\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1846119256045363411) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_ever-needed-a-force-update-prompt-that-is-activity-7251885533587468288-ZfPg) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lagxxg72dk27) | |\n| 198 | [Show the Licenses in your Flutter app](tips\u002F0198-show-licenses-flutter-app\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1845753055347704182) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-your-flutter-app-should-show-activity-7251518989489573888-TDgc) | | |\n| 197 | [Dark and Tinted Icons on iOS 18](tips\u002F0197-dark-tinted-icons-ios-18\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1844285569859453382) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-your-flutter-app-uses-multiple-activity-7250051558615216129-d14v) | | |\n| 196 | [FlutterFire Config with Multiple Flavors (Shell Script)](tips\u002F0196-flutterfire-config-multiple-flavors\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1844285569859453382) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-your-flutter-app-uses-multiple-activity-7250051558615216129-d14v) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-firebase-multiple-flavors-flutterfire-cli\u002F) |\n| 195 | [Remote Config via GitHub Gist](tips\u002F0195-remote-config-github-gist\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1843928541282672987) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-you-can-remotely-control-the-activity-7249694440552824832-nLsm) | | |\n| 194 | [Generate Commit Messages with Copilot](tips\u002F0194-copilot-generate-commit-messages\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1843232583980839286) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-youre-using-multiple-code-activity-7248998462887780352-nNmg) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fgithub-copilot-tips-for-flutter-devs\u002F) |\n| 193 | [Control the Code Generation Order](tips\u002F0193-control-codegen-order\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1843232583980839286) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-want-to-return-a-stream-activity-7246894142784434178-cYZ_) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fdart-flutter-code-generation\u002F) |\n| 192 | [Async Stream Initialization with async*](tips\u002F0192-async-stream-initialization\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1841128311163949163) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-the-inappreview-package-activity-7245023962869436417-K-pV) | | |\n| 191 | [Timing the In-App Review Prompt](tips\u002F0191-timing-in-app-review-prompt\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1839257930224324768) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-the-inappreview-package-activity-7245023962869436417-K-pV) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-in-app-review-prompt\u002F) |\n| 190 | [Working with multiple Xcode versions](tips\u002F0190-multiple-xcode-versions\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1838542156572606483) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-that-you-can-install-and-use-activity-7244308116043894784-quRu) | | |\n| 189 | [Adding a Navigator Observer](tips\u002F0189-navigator-observer\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1838145924943499701) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_ever-wanted-to-track-page-views-or-add-navigation-activity-7243912852460171264-bd5M) | | |\n| 188 | [Flutter DevTools Logging Page](tips\u002F0188-flutter-devtools-logging-page\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1834230932322087334) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_when-you-run-a-flutter-app-on-the-android-activity-7239996768401182721-IAa8) | | |\n| 187 | [BuildContext extension for push, pop](tips\u002F0187-build-context-extension-push-pop\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1831340712971096573) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_if-your-app-still-uses-navigator-10-calling-activity-7237106548164988928-sDDC) | | |\n| 186 | [ShaderMask + LinearGradient + Text = 🌈](tips\u002F0186-shader-mask-linear-gradient-text\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1830588928874663981) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-the-easiest-way-to-add-a-badge-activity-7236355192022077442-xejp) | ||\n| 185 | [Adding a Badge to an IconButton](tips\u002F0185-add-badge-icon-button\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1830588928874663981) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-the-easiest-way-to-add-a-badge-activity-7236355192022077442-xejp) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lagx2j43av2g) | |\n| 184 | [Detect triple taps with RawGestureDetector](tips\u002F0184-triple-tap-detector\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1829091047902765184) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_take-2-have-you-ever-wanted-to-detect-activity-7234857556442071040-5hDi) | | |\n| 183 | [Flutter Sidebar (VSCode)](tips\u002F0183-flutter-vscode-sidebar\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1826934074088247722) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-you-can-use-the-flutter-vscode-activity-7232699704688492545-eIoV) | | |\n| 182 | [DevTools Performance Rebuild Stats](tips\u002F0182-devtools-performance-rebuild-stats\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1821815800774238532) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-since-flutter-324-a-new-activity-7227211239964225536-dGWg) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lagxscvk4w2z) | |\n| 181 | [The CarouselView Widget](tips\u002F0181-carousel-view-widget\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1821445042336067923) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-since-flutter-324-a-new-activity-7227211239964225536-dGWg) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lagx5iggye2j) | |\n| 180 | [The dart pub unpack command](tips\u002F0180-dart-pub-unpack\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1821128254402515382) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-as-of-flutter-324-a-new-activity-7226894130767962112-R0Ns) | | |\n| 179 | [The OverflowBar widget](tips\u002F0179-overflowbar-widget\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1820812422245921275) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-overflowbar-makes-it-easy-activity-7226578354865381376--dvx) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lagxap4fxi24) | |\n| 178 | [Futures: await vs unawaited vs ignore](tips\u002F0178-await-vs-unawaited-vs-ignore\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1819362519879713221) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_when-you-call-a-method-that-returns-a-future-activity-7225128409583005698-FKIq) | | |\n| 177 | [Useful arguments in the log function (from dart:developer)](tips\u002F0177-log-function-args\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1818615169108324603) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-the-humble-log-function-activity-7224381117770956800-8mvt) | | |\n| 176 | [Use unawaited for your analytics calls](tips\u002F0176-use-unawaited-analytics-calls\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1818294816523870655) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_take-2-when-tracking-analytics-events-activity-7224060927837384704-TPb4) | | |\n| 175 | [How to use --dart-define-from-file with .env and json files](tips\u002F0175-dart-define-from-file-env-json\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1815754159666176419) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-by-doing-some-string-manipulation-activity-7221520196753133568-fGId) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-api-keys-dart-define-env-files\u002F) |\n| 174 | [Get the Current Method Name (Hack)](tips\u002F0174-get-method-name-stack-trace\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1815754159666176419) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-by-doing-some-string-manipulation-activity-7221520196753133568-fGId) | | |\n| 173 | [Hugeicons (4,000 stroke Flutter icons)](tips\u002F0173-hugeicons-flutter-stroke-icons\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1815306027568390349) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-the-hugeicons-package-was-activity-7221071863290937344-shWZ) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lagxp3ycdo2z) | |\n| 172 | [Dio + CancelToken + Riverpod = ❤️](tips\u002F0172-dio-cancel-token-riverpod\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1811393419643691340) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-canceltoken-lets-you-cancel-activity-7217159479170084864-30p2) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lagxissihf2y) | |\n| 171 | [TextField with Selection Height Style](tips\u002F0171-textfield-selection-height-style\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1810657776525316263) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:activity:7216423635584987139\u002F) | | |\n| 170 | [The build method: DOs and DON'Ts](tips\u002F0170-build-method-do-dont\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1806345326262890870) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-the-widget-build-method-can-activity-7212111530044125185-6UcN) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fside-effects-flutter\u002F) |\n| 169 | [Transparent Images With Opacity](tips\u002F0169-transparent-images-with-opacity\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1806611989961085412) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_take-2-if-you-need-to-show-a-semi-transparent-activity-7212378193616404481-zy4l) | | |\n| 168 | [Disposing fields to avoid memory leaks](tips\u002F0168-dispose-to-avoid-memory-leaks\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1805971627437428950) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-forgetting-to-dispose-an-animationcontroller-activity-7211737496328507393-Gmtu) | | |\n| 167 | [Find Unused Dart Files (VSCode Extension)](tips\u002F0167-find-unused-dart-files\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1805221861170499798) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-unused-assets-will-increase-activity-7210987699317452800-OkE_) | | |\n| 166 | [Conditional Imports for Web\u002FNative APIs](tips\u002F0166-conditional-imports\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1803796875734090130) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-try-to-access-a-web-specific-activity-7209562745543741441-9qCN) | | |\n| 165 | [Use defaultTargetPlatform and kIsWeb](tips\u002F0165-default-target-platform\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1801161442118242783) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-your-code-checks-the-current-activity-7206927597866266625-eptz) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lagy4jmugw2z) | |\n| 164 | [The UniversalPlatform Package](tips\u002F0164-universal-platform-package\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1800520573346566582) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-your-code-checks-the-current-activity-7206286803283161088-CJB3) | ||\n| 163 | [Taking screenshots with the Flutter CLI](tips\u002F0163-flutter-screenshot\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1792839682688184433) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-apps-created-with-flutter-activity-7198606765519687681-V9Se) | | |\n| 162 | [Flutter Web App Initialization Logic with CSS Loader](tips\u002F0162-flutter-web-app-initialization-logic\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1792839682688184433) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-apps-created-with-flutter-activity-7198606765519687681-V9Se) | | |\n| 161 | [Transform SVG assets at build time](tips\u002F0161-vector-graphics-compiler\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1791392190716952636) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-with-the-vector-graphics-compiler-activity-7197158879045054464-pp9p) | | |\n| 160 | [JsonCodable (Dart Macros experiment)](tips\u002F0160-dart-macros-json-codable\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1790764117579509824) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-as-of-dart-350-master-channel-activity-7196530105374961667-1t6q) | | |\n| 159 | [Useful Aliases for Flutter Development](tips\u002F0159-useful-aliases-flutter-dev\u002Findex.md) | [link](https:\u002F\u002Fx.com\u002Fbiz84\u002Fstatus\u002F1798695675770843583) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_commands-like-dart-run-buildrunner-build-activity-7204461547903991808-BLZQ\u002F) | | |\n| 158 | [Hide Generated Dart Files in GitHub PRs](tips\u002F0158-hide-generated-files-with-gitattributes\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1787840083954950434) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-use-buildrunner-and-activity-7193605951357169666-igIf) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fdart-flutter-code-generation\u002F) |\n| 157 | [Force App Upgrade Gone Wrong 😭](tips\u002F0157-force-upgrade-gone-wrong\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1780506401086865438) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_i-messed-up-my-force-upgrade-logic-activity-7186272936855576576-gB42) | | |\n| 156 | [Debouncing in Flutter](tips\u002F0156-debouncing-timer\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1775445897775558934) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-in-addition-to-the-regular-activity-7181211620457467904-N9l-) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-riverpod-pagination\u002F) |\n| 155 | [Null-aware spread operator (...?)](tips\u002F0155-null-aware-spread-operator\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1775445897775558934) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-in-addition-to-the-regular-activity-7181211620457467904-N9l-) | | |\n| 154 | [Loading UI with Shimmer effect](tips\u002F0154-shimmer-effect\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1772621866915508285) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_want-something-nicer-than-a-circularprogressindicator-activity-7178387635298521089-nvcc) | | |\n| 153 | [Zoom an image with InteractiveViewer](tips\u002F0153-interactive-viewer\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1771126164284735828) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-you-can-use-an-interactiveviewer-activity-7176892015689768960-sXJh) | | |\n| 152 | [Logging HTTP status codes with emojis](tips\u002F0152-log-status-code-emoji\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1768588707852902738) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_want-to-get-pretty-network-logs-that-look-activity-7174354531571355648-dpOr) | | |\n| 151 | [Scroll-to-index inside a ListView](tips\u002F0151-scroll-to-index\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1767916676098470071) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_ever-needed-to-open-a-new-page-with-a-listview-activity-7173682973123166208-Y1HT) | | |\n| 150 | [Preloading SVG assets in Flutter](tips\u002F0150-preload-svgs\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1767558469538758682) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_svgs-have-some-good-advantages-over-regular-activity-7173325191278747648-WySa) | | |\n| 149 | [Environment variables in Dart](tips\u002F0149-environment-variables\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1765699988137312445) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-as-an-alternative-to-dart-define-activity-7171466066173349888-1Ufd) | | |\n| 148 | [Determinate Circular Progress Indicator](tips\u002F0148-determinate-circular-progress-indicator\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1762836485517046142) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-circularprogressindicator-activity-7168602211390853120-xYW7) | | |\n| 147 | [How to bundle assets based on flavor](tips\u002F0147-bundle-assets-based-on-flavor\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1760677178902204495) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-have-assets-that-are-activity-7166443009998327808-ZGhn) | | |\n| 146 | [Extension methods vs types (Dart 3.3)](tips\u002F0146-extension-types-dart3.3\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1758507290921935252) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_dart-33-introduces-a-new-feature-called-activity-7164273207267545088-MyMN) | | |\n| 145 | [Write reusable widgets!](tips\u002F0145-build-reusable-widgets\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1755923275048247789) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_top-tip-for-flutter-developers-write-reusable-activity-7161689097948884992-nETk) | | |\n| 144 | [Scheduling microtasks in Dart](tips\u002F0144-scheduling-microtasks\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1754884409856020716) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:activity:7160650195246948354\u002F) | | |\n| 143 | [We need to talk about FlutterFlow!](tips\u002F0143-we-need-to-talk-about-flutterflow\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1752695079675056147) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_we-need-to-talk-about-flutterflow-the-company-activity-7158460907814105089-5njg) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutterflow\u002F) |\n| 142 | [Launching your Flutter app with flavors](tips\u002F0142-flutter-run-flavor\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1750486116581417103) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_take-2-when-you-run-your-flutter-app-activity-7156252095753441280-18QM) | | |\n| 141 | [⚠️ debugPrint prints in release mode ⚠️](tips\u002F0141-dont-use-debug-print\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1747254624317546852) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-debugprint-prints-logs-in-activity-7153020484979236864--StA) | | |\n| 140 | [Toggle Inlay Hints in VSCode](tips\u002F0140-vscode-toggle-inlay-hints\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1745778839249203498) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-in-vscode-you-can-hit-ctrl-activity-7151544645926154241-8CGO) | | |\n| 139 | [GitHub Copilot Tips for Flutter Devs](tips\u002F0139-github-copilot-tips-flutter-devs\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1735680283767136686) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-github-copilot-was-recently-activity-7141455478047326208-VGpm) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fgithub-copilot-tips-for-flutter-devs\u002F) |\n| 138 | [Opening URLs with xcrun \u002F adb](tips\u002F0138-xcrun-adb-open-url\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1732369744399835344) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7138135725387968512) | | |\n| 137 | [Combining Streams with RxDart](tips\u002F0137-rxdart-combine-latest\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1729882793373811198) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7135648846910517250) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Fvideos\u002Frx-dart-by-example-combine-latest\u002F) |\n| 136 | [Use `IntrinsicWidth`, not fixed width](tips\u002F0136-intrinsic-width\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1729520341125386420) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7135286226705625088) | | |\n| 135 | [Replace `Container` with nested widgets](tips\u002F0135-replace-container-nested-widgets\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1729114620512887056) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7134880528784089090) | | |\n| 134 | [Debug Paint Size (DevTools)](tips\u002F0134-debug-paint-size\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1727699486497976402) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7133465461333061633) | | |\n| 133 | [SelectionArea across multiple widgets](tips\u002F0133-selection-area\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1726983819415470249) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7132749772016242688) | | |\n| 132 | [Highlight oversized images with the Flutter DevTools](tips\u002F0132-highlight-oversized-images\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1726614258467922082) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7132380314248605696) | | |\n| 131 | [Async Dependency Initialization with `requireValue` (Riverpod)](tips\u002F0131-future-provider-require-value\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1724443435346604214) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:ugcPost:7130213580339064835) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Frobust-app-initialization-riverpod\u002F) |\n| 130 | [8 Steps to Follow When Building Your Next Flutter App](tips\u002F0130-steps-to-follow-next-flutter-app\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1721912498863870440) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7127678274322731008\u002F) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fsteps-to-follow-your-next-flutter-app\u002F) |\n| 129 | [VSCode Debug Toolbar in Command Center](tips\u002F0129-vscode-debug-toolbar-command-center\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1720070673413054484) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7125836694724964352) | | |\n| 128 | [Error Handling during App Startup](tips\u002F0128-error-handling-app-startup\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1719741960586469824) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7125507767380893696) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Frobust-app-initialization-riverpod\u002F) |\n| 127 | [Full-Text Search: Firestore Extensions](tips\u002F0127-full-text-search\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1714265768668398050) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7120031686058201088) | | |\n| 126 | [How to work with webhooks?](tips\u002F0126-webhooks\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1711743782398394863) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7117510337276338176) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fwebhooks-flutter-backend\u002F) |\n| 125 | [Xcode 15 DT_TOOLCHAIN_DIR issue](tips\u002F0125-xcode-15-cocoapods-issue\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1709225405637382171) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:ugcPost:7114994548317016065) | | |\n| 124 | [Payment options on mobile and web](tips\u002F0124-payment-options-mobile-web\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1707403535481016424) | [link](https:\u002F\u002Fwww.linkedin.com\u002Ffeed\u002Fupdate\u002Furn:li:share:7113168955682234369\u002F) | | |\n| 123 | [Top reasons for using a realtime backend](tips\u002F0123-user-realtime-backend\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1707026963469062651) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_top-reasons-for-using-a-realtime-backend-activity-7112792982449213441-kWJA) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Frealtime-updates-vs-one-time-reads-flutter\u002F) |\n| 122 | [First steps to tackle when starting a new mobile app](tips\u002F0122-first-steps-new-app\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1706730796243939717) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_someone-asked-me-what-should-be-the-first-activity-7112496543940648960-sYfn) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fsteps-to-follow-your-next-flutter-app\u002F) |\n| 121 | [Fetching vs Mutating data with Riverpod](tips\u002F0121-riverpod-fetch-vs-mutate-data\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1704486985925099958) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_data-fetching-and-data-mutations-are-two-activity-7110256018126721024-w8LE) | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fdata-mutations-riverpod\u002F) |\n| 120 | [Flutter web: redirect to an external URL](tips\u002F0120-set-html-window-url\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1701977300131049540) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-with-flutter-web-you-can-activity-7107743721407795201-wy86) | | |\n| 119 | [VSCode Quick Fix: Create constructor for final fields, required named](tips\u002F0119-constructor-required-named-vsassist\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1699752300170895365) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-with-the-latest-vscode-you-activity-7105518310481371136-Yzi1) | | |\n| 118 | [How to Inspect Network Requests with the Flutter DevTools](tips\u002F0118-network-view-devtools\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1699055590495203688) | | | |\n| 117 | [Are global variables bad?](tips\u002F0117-are-global-variables-bad\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1697598442686554500) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_are-global-variables-bad-well-it-depends-activity-7103364868346380292-OX3T) | | |\n| 116 | [Measuring execution time in Dart](tips\u002F0116-measure-time\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1696517265985093781) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_ever-wanted-to-measure-how-long-a-network-activity-7102284748416237568-WoBE) | | |\n| 115 | [Find the Invalid Switch Expression 🧐](tips\u002F0115-switch-newline\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1694675308371210339) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-one-of-the-four-snippets-below-activity-7100441867363704832-i_zN) | | |\n| 114 | [6 steps to minimize your Firebase Bill](tips\u002F0114-minimize-firebase-bill\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1681324942363619328) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_carousel-activity-7087090980612362240-aKYo) | | |\n| 113 | [Conditional JSON parsing in Dart 3](tips\u002F0113-conditional-json-parsing\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1679472787495215106) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_carousel-activity-7085238999727890432-Munu) | | |\n| 112 | [Switch Matrix in Dart 3](tips\u002F0112-switch-matrix\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1679067058909110273) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-since-dart-3-you-can-combine-activity-7084832747680079872-FRCd) | | |\n| 111 | [Destructuring Lists in Dart](tips\u002F0111-destructure-lists-dart\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1678720885472088064) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-since-dart-3-you-can-easily-activity-7084488986408181762-2OUM) | | |\n| 110 | [Getting a `Future` from a `FutureProvider` with Riverpod](tips\u002F0110-riverpod-watch-future-provider\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1673702960046514176) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-if-you-have-a-riverpod-futureprovider-activity-7079468904808345600-IW8b) | | |\n| 109 | [Record Equality in Dart 3](tips\u002F0109-records-equality\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1673360231579959297) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_record-equality-in-dart-3-activity-7079124942574772224-gCR_) | | |\n| 108 | [MediaQuery as InheritedModel](tips\u002F0108-media-query-inherited-model\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1671085759858606081) | [link](https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fandreabizzotto_did-you-know-when-you-call-mediaqueryof-activity-7076851677521170432-dkOO) | [link](https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcodewithandrea.com\u002Fpost\u002F3lagydv6kne2r) | |\n| 107 | [Happy Birthday with records in Dart 3](tips\u002F0107-happy-birthday-records-dart-3\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1669670842282721280) | | | |\n| 106 | [Return without `async`\u002F`await`](tips\u002F0106-return-no-await\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1666456993048002562) | | | |\n| 105 | [Creating an empty Flutter project](tips\u002F0105-flutter-create-empty\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1663204152032231425) | | | |\n| 104 | [[core\u002Fduplicate-app] A Firebase App named \"[DEFAULT]\" already exists](tips\u002F0104-firebase-duplicate-app\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1654444312170512385) | | | |\n| 103 | [Firebase Auth flow in 5 minutes](tips\u002F0103-simple-auth-firebase-ui\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1653384017092263945) | | | |\n| 102 | [Storing API keys in a JSON file](tips\u002F0102-dart-define-from-file\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1653276293318729737) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-api-keys-dart-define-env-files\u002F) |\n| 101 | [Backend-agnostic Flutter apps](tips\u002F0101-backend-agnostic\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1653050251262009355) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fabstraction-repository-pattern-flutter\u002F) |\n| 100 | [Firestore Security Rules Playground](tips\u002F0100-security-rules-playground\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1651212776113618944) | | | |\n| 99 | [Firestore OR queries 🔥](tips\u002F0099-firestore-or-query\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1650493598465421315) | | | |\n| 98 | [Pagination with FirestoreListView](tips\u002F0098-firestore-list-view\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1638904695627583492) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Ffirestore-pagination-list-view\u002F) |\n| 97 | [Riverpod Notifier with build arguments](tips\u002F0097-riverpod-notifier-build-argument\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1638188503476457474) | | | |\n| 96 | [Cloud Firestore - Cache Size](tips\u002F0096-cloud-firestore-cache-size\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1633800807492534272) | | | |\n| 95 | [StreamProvider with Riverpod Generator](tips\u002F0095-stream-provider-generator\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1633438421422055424) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-riverpod-generator\u002F) |\n| 94 | [Fix missing `ProviderScope` error with Riverpod Lint](tips\u002F0094-add-provider-scope\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1633090622033625088) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-riverpod-lint\u002F) |\n| 93 | [Add a part file with Riverpod Snippets](tips\u002F0093-riverpod-part\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1632740671164407811) | | | |\n| 92 | [Firebase Billing and Cost Calculator](tips\u002F0092-firebase-billling\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1620753669183479813) | | | |\n| 91 | [Got linter issues? Use `dart fix --apply`](tips\u002F0091-dart-fix-apply\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1618216903209586690) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Fdart-fix-apply\u002F) |\n| 90 | [Using `context.mounted` in Flutter 3.7](tips\u002F0090-context-mounted\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1618176831764430848) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Fflutter-3.7-using-context-mounted) |\n| 89 | [Using `serverTimestamp()` in Firestore](tips\u002F0089-server-timestamp\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1615261153462030336) | | | |\n| 88 | [Get a single item from a list](tips\u002F0088-list-single\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1611332511342231553) | | | |\n| 87 | [The Accessibility Tools package](tips\u002F0087-accessibility-tools\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1606302122378657796) | | | |\n| 86 | [Dart code samples in the Firebase docs](tips\u002F0086-firebase-docs-dart-samples\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1602555005243985920) | | | |\n| 85 | [Use ChatGPT to do custom styling in Flutter](tips\u002F0085-chatgpt-styling\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1599695368459018240) | | | |\n| 84 | [Using the query builder UI in Cloud Firestore](tips\u002F0084-firestore-query-builder\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1598710090617561088) | | | |\n| 83 | [Update packages with the Version Lens VSCode extension](tips\u002F0083-version-lens-vscode\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1593220448682389506) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fvscode-shortcuts-extensions-settings-flutter-development\u002F) |\n| 82 | [Cloud Firestore collection count](tips\u002F0082-cloud-firestore-collection-count\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1592433238915497984) | | | |\n| 81 | [How to use the new Riverpod Generator package](tips\u002F0081-future-provider-riverpod-generator\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1590344470087671809) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-riverpod-generator\u002F) |\n| 80 | [How to use Future.wait() in Dart](tips\u002F0080-future.wait\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1587334631707353091) | | | |\n| 79 | [String multiplication in Dart](tips\u002F0079-string-multiplication\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1587071641649020929) | | | |\n| 78 | [How to nest generated files in VSCode](tips\u002F0078-file-nesting-vscode\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1584527886891245568) | | | |\n| 77 | [Using AnimatedContainer to animate Container properties](tips\u002F0077-animatedcontainer\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1584420460288126976) | | | |\n| 76 | [Enable sticky scroll in VSCode](tips\u002F0076-sticky-scroll-vscode\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1583083667626242049) | | | |\n| 75 | [Using `build_runner` in watch mode](tips\u002F0075-build-runner-watch\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1582759551912198144) | | | |\n| 74 | [Functions as arguments (with tear-off)](tips\u002F0074-pass-functions-as-arguments\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1580940047003844611) | | | |\n| 73 | [How to Define Type Aliases in Dart](tips\u002F0073-enhance-readability-with-typdef\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1579426576978087936) | | | |\n| 72 | [Use Type Annotations for Safer Code](tips\u002F0072-use-type-annotations-for-safer-code\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1577928394762846208) | | | |\n| 71 | [Prefer `const` over `final` over `var`](tips\u002F0071-const-vs-final-vs-var\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1577285912253308928) | | | |\n| 70 | [Flutter app localization in 5 min](tips\u002F0070-localizations\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1575401492567261184) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-localization-build-context-extension\u002F) |\n| 69 | [Use `SizedBox.shrink()` to return an empty box](tips\u002F0069-sizedbox-shrink\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1572962423702786050) | | | |\n| 68 | [`--enable-asserts` flag in Dart \u002F Flutter](tips\u002F0068-enable-asserts-flag\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1572227339060117505) | | | |\n| 67 | [REST Client extension for VSCode](tips\u002F0067-rest-client-vscode\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1569690846051635205) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fvscode-shortcuts-extensions-settings-flutter-development\u002F) |\n| 66 | [The HtmlUnescape package](tips\u002F0066-html-unescape\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1567889998220779520) | | | |\n| 65 | [How `kIsWeb` works in Flutter](tips\u002F0065-kIsWeb\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1567512783448588289) | | | |\n| 64 | [When to use each Riverpod provider?](tips\u002F0064-all-riverpod-providers\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1555598020644933633) | | | |\n| 63 | [Explicit error types with Either](tips\u002F0063-either-type-fpdart\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1554518642343256067) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Ffunctional-error-handling-either-fpdart\u002F) |\n| 62 | [Exception handling: try\u002Fcatch vs Result](tips\u002F0062-try-catch-result-type\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1552337771158818817) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-exception-handling-try-catch-result-type\u002F) |\n| 61 | [Errors vs Exceptions in Flutter](tips\u002F0061-flutter-errors-vs-exceptions\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1551443128925790210) | | | |\n| 60 | [Do not use BuildContexts across async gaps (and what to do instead)](tips\u002F0060-build-context-async-gaps\u002Findex.md) | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1547224363568619522) | | | |\n| 59 | [Flutter Riverpod: How to Register a Listener during App Startup](tips\u002F0059-register-listener-riverpod\u002Findex.md)                                                                  | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1544365241739378690) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Friverpod-initialize-listener-app-startup\u002F)                                                                                   |\n| 58 | [Using test tags in Flutter](tips\u002F0058-using-test-tags\u002Findex.md)                                                                                                                  | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1543957714254053377) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Funit-widget-test-tags-flutter\u002F) |\n| 57 | [Singletons in Flutter: Drawbacks](tips\u002F0057-singletons-flutter\u002Findex.md)                                                                                                         | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1539287086729244673) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-singletons\u002F) |\n| 56 | [Riverpod: Async init with Provider Overrides](tips\u002F0056-async-init-provider-overrides\u002Findex.md)                                                                                  | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1537796968503705601) | | | |\n| 55 | [How to run multiple test variants](tips\u002F0055-run-multiple-test-variants\u002Findex.md)                                                                                                | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1537117778817204225) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Frun-multiple-test-variants\u002F) |\n| 54 | [Riverpod tip for less boilerplate (Passing Ref)](tips\u002F0054-riverpod-tip-less-boilerplate\u002Findex.md)                                                                               | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1534773316145356801) | | | |\n| 53 | [How to Create DartPad Examples from GitHub Gists](tips\u002F0053-how-to-create-dartpad-examples-from-github-gists\u002Findex.md)                                                           | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1533682331386527745) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Fcreate-dartpad-from-github-gist\u002F)                              |\n| 52 | [How to Add a Custom Test Timeout in Flutter](tips\u002F0052-custom-test-timeout\u002Findex.md)                                                                                             | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1528747329804812289) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Fcustom-test-timeout-flutter\u002F)                                  |\n| 51 | [Golden Image Testing with Robot Testing](tips\u002F0051-golden-image-testing-with-robot-testing\u002Findex.md)                                                                             | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1526572320202047488) | | | |\n| 50 | [Dart 2.17: Enhanced Enums with Members](tips\u002F0050-dart-2-17-enhanced-enums-with-members\u002Findex.md)                                                                                | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1523919468283453440) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Fenums-with-members-dart-2.17)                                  |\n| 49 | [Dart 2.17: Super Initializers](tips\u002F0049-dart-2-17-super-initializers\u002Findex.md)                                                                                                  | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1522931548152074240) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Fdart-2.17-super-initializers\u002F)                                 |\n| 48 | [Testing functions that throw](tips\u002F0048-testing-functions-that-throw\u002Findex.md)                                                                                                   | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1521732405123497987) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Fflutter-test-expect-tear-off\u002F) |\n| 47 | [Why write automated tests?](tips\u002F0047-why-write-automated-tests\u002Findex.md)                                                                                                        | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1521732405123497987) | | | |\n| 46 | [Riverpod: difference between `ref.watch`, `ref.read`, `ref.listen`](tips\u002F0046-riverpod-difference-between-ref-watch-ref-read-ref-listen\u002Findex.md)                                | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1518503651211362305) | | | |\n| 45 | [The `Map.update()` method](tips\u002F0045-the-map-update-method\u002Findex.md)                                                                                                             | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1516659126083985408) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Fdart-map-update-method\u002F)                                       |\n| 44 | [`AsyncValue.guard()` vs `try`\u002F`catch`](tips\u002F0044-async-value-guard-vs-try-catch\u002Findex.md)                                                                                        | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1516299097594028035) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Ftips\u002Fasync-value-guard-try-catch\u002F)                                  |\n| 43 | [How to write a reactive in-memory store with RxDart](tips\u002F0043-how-to-write-a-reactive-in-memory-store-with-rxdart\u002Findex.md)                                                     | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1511370391259914240) | | | |\n| 42 | [How to Generate and Analyze a Flutter Test Coverage Report in VSCode](tips\u002F0042-how-to-generate-and-analyze-a-flutter-test-coverage-report-in-vscode\u002Findex.md)                   | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1510980344434016258) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-test-coverage\u002F)                                    |\n| 41 | [Using Fake Repositories for Testing](tips\u002F0041-using-fake-repositories-for-testing\u002Findex.md)                                                                                     | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1509127400491298816) | | | |\n| 40 | [Anatomy of a Riverpod Provider](tips\u002F0040-anatomy-of-a-riverpod-provider\u002Findex.md)                                                                                               | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1507394180896677892) | | | |\n| 39 | [Flutter Project Structure: Feature-first or Layer-first?](tips\u002F0039-flutter-project-structure-feature-first-or-layer-first\u002Findex.md)                                             | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1506285698558660609) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fflutter-project-structure\u002F)                                |\n| 38 | [Popular architectures for Flutter development](tips\u002F0038-popular-architectures-for-flutter-development\u002Findex.md)                                                                 | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1504137683697905669) | | | [link](https:\u002F\u002Fcodewithandrea.com\u002Farticles\u002Fcomparison-flutter-app-architectures\u002F)           |\n| 37 | [Rules to follow for good app architecture](tips\u002F0037-rules-to-follow-for-good-app-architecture\u002Findex.md)                                                                         | [link](https:\u002F\u002Ftwitter.com\u002Fbiz84\u002Fstatus\u002F1503387745275850761) | | | |\n| 36 | [GoRouter: `go` vs `push`](tips\u002F0036-gorouter-go-vs-push\u002Findex.md)                                                  ","该项目汇集了作者在X（Twitter）、LinkedIn和Bluesky上分享的所有Flutter开发技巧与窍门。它以Dart语言编写，核心功能包括提供一系列实用的编程建议、最佳实践以及对最新版本特性的介绍，如相对与绝对导入路径、Matrix4类中已弃用的API等。项目还附带了一个移动应用，方便开发者随时随地查阅这些宝贵信息。此资源非常适合正在使用或计划学习Flutter框架进行跨平台应用开发的技术人员，能够帮助他们提高编码效率并解决实际问题。","2026-06-11 03:21:48","top_language"]