flutter-tips-and-tricks icon indicating copy to clipboard operation
flutter-tips-and-tricks copied to clipboard

A Collection of Flutter and Dart Tips and Tricks

Table of Contents

  • Spreading Iterable<Widget> in Flutter
  • Immutable Maps in Flutter Riverpod
  • StreamProvider Yield in Riverpod
  • Future Unwrap in Flutter
  • HTML Colors in Flutter
  • Generic Watch and Filter in Riverpod
  • Faking APIs with Riverpod
  • Null-Aware Infix Operators in Dart
  • Generic Centering of Widgets in Flutter
  • Custom Integer to String in Dart
  • Grouping Iterable in Dart
  • Nested Generators in Dart
  • Default Value for Optionals in Dart
  • CompactMap on Map in Dart
  • iOS Context Menu in Flutter
  • Recursive Flatten of List in Dart
  • Async API Cleanup in Flutter
  • Splice in Dart
  • Label Text in Flutter
  • Where Clause on Map in Dart
  • Unawaited and Ignore in Dart
  • Key and Value Mapping in Dart
  • - Operator on Iterable<T> in Dart
  • Merging Maps in Dart
  • StreamQueue in Flutter
  • Enum Annotations in Flutter
  • Sorting Generics in Dart
  • Animating FAB in Flutter
  • Image Gallery in Flutter
  • Map with Index in Dart
  • Set Comprehension in Dart
  • Stretching GridView Items in Flutter
  • Email Drag and Drop in Flutter
  • Cherry-Picking Functions in Dart
  • Integer Range Extension in Dart
  • Static vs Factory Constructors in Dart
  • Result Type in Dart
  • StreamController Sink in Flutter
  • Enum Members in Dart 2.17
  • Constructor vs Factory Constructor in Dart
  • Unwrapping Streams in Dart
  • Appending to Iterable<T> in Dart
  • Inline Synchronous Generators in Dart
  • Functions as First Class Citizens in Flutter
  • + Operator on Map in Dart
  • Stream Drain in Flutter
  • Reusable Separators in Flutter
  • AsyncSnapshotBuilder in Flutter
  • Default Parameter Values in Dart
  • Clipboard in Flutter
  • Generic Object Map in Dart
  • RequireData in AsyncSnapshot in Flutter
  • Symbol in Dart
  • RadioListTile in Flutter
  • Infinite ListView in Flutter
  • FilterChip in Flutter
  • Function Pointers in Flutter
  • Multi-field Object Comparison in Dart
  • Expectation Extensions in Flutter
  • Delay Extension in Flutter
  • Hide Keyword in Dart
  • Firebase Batch Operations in Flutter
  • Show Keyword in Dart
  • Cherry Pick Provider Changes in Flutter
  • URL Data in Dart
  • Observe Network Connection in Flutter
  • Restartable Timer in Dart
  • LazyStream in Flutter and Dart
  • Cancelable APIs in Flutter
  • Asset Data in Flutter
  • API Caching in Flutter
  • FutureGroup in Dart
  • Flatten Iterable<bool> in Dart
  • Caching Temp Files in Flutter
  • Custom Lists in Dart
  • Optional Chaining in Dart
  • MapList in Flutter
  • Future<bool> in Flutter
  • Async Bloc Init in Flutter
  • Firebase Auth Errors in Flutter
  • Debug Strings in Flutter
  • Keyboard Appearance in Flutter
  • Get String Data in Dart
  • Stream.startWith in Flutter
  • Optional Functions in Dart
  • AnnotatedRegion in Flutter
  • Unordered Map Equality in Dart
  • Iterable to ListView in Flutter
  • Password Mask in Flutter
  • Fast Object.toString() in Dart
  • Copying Bloc State in Flutter
  • Iterable Subscripts in Dart
  • useState in Flutter Hooks
  • Folding Iterables in Dart
  • Custom Iterables in Dart
  • Class Clusters in Dart
  • Iterable +/- in Dart
  • Periodic Streams in Dart
  • EmptyOnError in Dart
  • Stream<T> Initial Value in Flutter
  • Double.normalize in Dart
  • Hide Sensitive Information in Flutter
  • Iterable.compactMap in Dart
  • useEffect in Flutter Hooks
  • Merging Streams in Dart
  • Isolate Stream in Dart
  • Network Image Retry in Flutter
  • Reusable APIs in Flutter
  • ListTile Shadow in Flutter
  • Transparent AppBar in Flutter
  • Constructors on Abstract Classes in Dart
  • @useResult in Dart
  • @mustCallSuper in Dart
  • Object.hash in Dart
  • Expanded Equally in Flutter
  • Random Iterable Value in Dart
  • Hardcoded Strings in Flutter
  • Manually Scroll in List View in Flutter
  • AsyncSnapshot to Widget in Flutter
  • Breadcrumbs in Flutter
  • Unique Map Values in Dart
  • Smart Quotes/Dashes in Flutter
  • Haptic Feedback in Flutter
  • Localization Delegates in Flutter
  • Extending Functions in Dart
  • Paginated ListView in Flutter
  • Immutable Classes in Dart
  • Card Widget in Flutter
  • List Equality Ignoring Ordering in Dart
  • Shorten GitHub URLs in Dart
  • Time Picker in Flutter
  • Throttled Print in Flutter
  • Map Equality in Dart
  • Unique Maps in Dart
  • Raw Auto Complete in Flutter
  • Title on Object in Dart
  • Compute in Flutter
  • Filter on Map in Dart
  • Type Alias in Dart
  • ValueNotifier in Flutter
  • Object to Integer in Dart
  • Image Opacity in Flutter
  • Covariant in Dart
  • Custom Errors in Streams in Dart
  • Shake Animation in Flutter
  • Throw Enums in Dart
  • Future Error Test in Flutter
  • Generic URL Retrieval in Dart
  • Custom Error Widget in Flutter
  • Handle Multiple Future Errors in Dart
  • Future Error Handling in Dart
  • String to Toast in Flutter
  • Waiting in Dart
  • Loading Dialog in Flutter
  • Compact Map on Map<K,V> in Dart
  • Query Parameters in Dart
  • Multiple Gradients in Container in Flutter
  • Filter on Stream<List<T>> in Dart
  • Generic Route Arguments in Flutter
  • Generic Dialog in Flutter
  • GitHub API in Flutter
  • ChangeNotifier in Flutter
  • Refresh Indicator in Flutter
  • FlatMap in Dart
  • OrientationBuilder in Flutter
  • Linear Gradient in Flutter
  • Bloc Text Editing Controller in Flutter
  • Blurred TabBar in Flutter
  • Play YouTube in Flutter
  • ListView Background in Flutter
  • Integer to Binary in Dart
  • Split String by Length in Dart
  • Image Tint in Flutter
  • SlideTransition in Flutter
  • Expansion Panels and Lists in Flutter
  • Complete CRUD App in Flutter
  • SQLite Storage in Flutter
  • Circular Progress with Percentage in Flutter
  • Opening URLs in Flutter
  • Commodore 64 Screen in Flutter
  • Animated Lists in Flutter
  • CheckboxListTile in Flutter
  • - Operator on String in Dart
  • Dart Progress for Future<T>
  • Move Widget Shadows with Animation
  • Gallery with Blurred Backgrounds in Flutter
  • Custom Path Clippers in Flutter
  • Frost Effect on Images in Flutter
  • Custom Clippers in Flutter
  • Check if Website is Up or Down in Dart
  • Section Titles on ListView in Flutter
  • Circular Progress in Flutter
  • Displaying Scroll Wheels in Flutter
  • Post Messages to Slack with Dart
  • Unwrap List<T?>? in Dart
  • Avoiding UI Jitters When Switching Widgets in Flutter
  • Detect Redirects in Dart
  • Proportional Constraints in Flutter
  • Displaying Cupertino Action Sheets in Flutter
  • Rotating List<T> in Dart
  • Displaying SnackBars in Flutter
  • Custom Tab Bar Using ToggleButtons in Flutter
  • Hashable Mixins in Dart
  • Flutter Tips and Tricks in Terminal
  • Searching List<List<T>> in Dart
  • Cloning Objects in Dart
  • Color Filters in Flutter
  • Flattening Lists in Dart
  • Managing Duplicates in List<T> in Dart
  • FlatMap and CompactMap in Dart
  • Equality of List<T> in Dart
  • Constants in Dart
  • Displaying Scrollable Bottom Sheets in Flutter
  • YouTube Ad Remover in Dart
  • Fade Between Widgets in Flutter
  • Sort Descriptors in Dart
  • User Sortable Columns and Tables in Flutter
  • Content-Length of List<Uri> in Dart
  • Recursive Dot Notation on Maps in Dart
  • Allow User Selection of Text in Flutter
  • Placing Constraints on Widgets in Flutter
  • Animating Position Changes in Flutter
  • Transitioning Between Widgets in Flutter
  • Doubly Linked Lists in Dart
  • Reordering Items Inside List Views in Flutter
  • Custom Stream Transformers in Dart
  • Expanding Stream Elements in Dart
  • Consume Streams for a Duration in Dart
  • Shortening URLs in Dart
  • LimitedBox Widget as ListView Items in Flutter
  • Generically Convert Anything to Int in Dart
  • Validating URL Certificates in Dart
  • Displaying Popup Menus in Flutter
  • Implementing Drag and Drop in Flutter
  • Dismissing List Items in Flutter
  • Animating Widgets with Ease in Flutter
  • Displaying Tool Tips in Flutter
  • Displaying Assorted Widgets Inside TableView in Flutter
  • Page Indicator with Page View in Flutter
  • Animating and Moving a Floating Action Button in Flutter
  • Fading Network Image Widget in Flutter
  • Transparent Alert Dialogs in Flutter
  • Network Image Size in Dart
  • Animated Icons in Flutter
  • Custom Scroll Views in Flutter
  • Parallax App Bar in Flutter
  • JSON HTTP Requests in Dart
  • URL Timeouts in Dart
  • Detecting URL File Types in Dart
  • Paginated Lists in Dart
  • Requesting DELETE on APIs in Dart
  • Animated Containers in Flutter
  • Hiding Widgets in Flutter
  • Simple Opacity Animation in Flutter
  • Vignette Widget in Flutter
  • Drop Down Button Configuration and Usage in Flutter
  • Expandable List Items in Flutter
  • Infinite Scrolling in Flutter
  • Infinite Arrays in Dart
  • Custom Color Picker Component in Flutter
  • Displaying and Reacting to Switches in Flutter
  • Displaying Bottom Bars in Flutter
  • Displaying Buttons on AppBar in Flutter
  • Displaying Bottom Sheets in Flutter
  • Converting Enums to Radio Buttons in Flutter
  • Check Existence of Websites in Flutter
  • Images inside AlertDialog in Flutter
  • Returning Values from AlertDialog in Flutter
  • Simple Grid View in Flutter
  • Rendering Bullet Points in Flutter
  • Retrying Futures in Flutter
  • Containers as ClipOvals in Flutter
  • Rich Texts in Flutter
  • Wrapping Widgets in Flutter
  • Sweep Gradients in Flutter
  • Stream and StreamBuilder in Flutter
  • Blur Effect in Flutter
  • Convert Enums to Strings in Dart
  • Replacing Text in TextField in Flutter
  • Aspect Ratio in Flutter
  • Zoom and Pan in Flutter
  • Resizing Images in Flutter to Fit Screen Height
  • Validating URLs in Flutter
  • FrameBuilder for Network Images in Flutter
  • Adding Shadow to Icons in Flutter
  • Calculating Median of Lists in Dart
  • Generic Functions with Reduce in Dart
  • Passing Back Data From a Screen to the Previous One in Flutter
  • Flinging an Animation in Flutter
  • Fade Animations in Flutter
  • Throttling User Input in Flutter
  • Censoring TextFields in Flutter
  • Customizing TextButton in Flutter
  • Multiline TextFields in Flutter
  • Filtering TextField Input in Flutter
  • Focusing Manually on TextFields in Flutter
  • Data Streams Over HTTP/HTTPs in Dart
  • Catching Nonexistent Accessors or Methods in Dart
  • Using Expando in Dart
  • Implementing Custom Maps in Dart
  • Dynamically Calling Functions in Dart
  • Factory Constructors in Dart
  • Calculating the Sum of List Items in Dart
  • Removing Duplicate Strings in Lists in Dart (Case-Insensitive)
  • Implementing Range in Dart
  • Converting Lists to Maps in Dart
  • Implementing Hashable in Dart
  • Random Name Generator in Dart
  • Capturing Stack Traces in Dart Exceptions
  • Removing Duplicates from Lists in Dart
  • Optional Spread Operator in Dart
  • Calling Optional Functions in Dart
  • Odd-Even Sort in Dart
  • Implementing Zip and Tuples in Dart
  • Swapping Values in Lists with XOR in Dart
  • Waiting for Multiple Futures in Dart
  • Using Queues as Stacks in Dart
  • Custom Iterators in Dart
  • Iterables as Ranges + Transform in Dart
  • Errors vs Exceptions in Dart
  • Custom Annotations in Dart
  • Classes as Enums in Dart
  • Spread Operator in Collection Literals in Dart
  • StreamBuilder and StreamController in Dart
  • Almost Equal in Dart
  • Enum Associated Values in Dart
  • Implementing Comparable in Dart
  • Implementing Custom Integer Types in Dart
  • Custom Subscripts in Dart
  • Dart List Enumeration with Index
  • Applying Mixins to Other Mixins in Dart
  • Parameter Types in Dart
  • Custom Exceptions in Dart
  • rethrowing Exceptions in Dart
  • mixins and JSON Parsing in Dart
  • mixins vs abstract classes in Dart
  • Drawing Shapes in Flutter
  • Generic Type Aliases in Dart
  • Callable Classes in Dart
  • Synchronous Generators in Dart
  • Implicit Interfaces in Dart
  • Dart's const Initializers
  • Downloading and Parsing JSON in Dart
  • Dart Initializer List
  • Checking for Type Equality in Dart Lists
  • Type Promotion with Sound Null Safety in Dart
  • Extract Minimum and Maximum Values in List<num> in Dart
  • Functions as First Class Citizens in Dart

Usage

Click on any of the tips/tricks above to get to their source-code/infographic and demo videos (if applicable)

License

Copyright 2022 @ Vandad Nahavandipoor

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.