/flutter-tips-and-tricks

A Collection of Flutter and Dart Tips and Tricks

Primary LanguageDart

Table of Contents

Custom Clippers in Flutter

Source Code

Check if Website is Up or Down in Dart

Source Code

Section Titles on ListView in Flutter

Source Code

Circular Progress in Flutter

Source Code

Displaying Scroll Wheels in Flutter

Source Code

Post Messages to Slack with Dart

Source Code

Unwrap List<T?>? in Dart

Source Code

Avoiding UI Jitters When Switching Widgets in Flutter

Source Code

Detect Redirects in Dart

Source Code

Proportional Constraints in Flutter

Source Code

Displaying Cupertino Action Sheets in Flutter

Source Code

Rotating List<T> in Dart

Source Code

Displaying SnackBars in Flutter

Source Code

Custom Tab Bar Using ToggleButtons in Flutter

Source Code

Hashable Mixins in Dart

Source Code

Flutter Tips and Tricks in Terminal

Source Code

Searching List<List<T>> in Dart

Source Code

Cloning Objects in Dart

Source Code

Color Filters in Flutter

Source Code

Flattening Lists in Dart

Source Code

Managing Duplicates in List<T> in Dart

Source Code

FlatMap and CompactMap in Dart

Source Code

Equality of List<T> in Dart

Source Code

Constants in Dart

Source Code

Displaying Scrollable Bottom Sheets in Flutter

Source Code

YouTube Ad Remover in Dart

Source Code

Fade Between Widgets in Flutter

Source Code

Sort Descriptors in Dart

Source Code

User Sortable Columns and Tables in Flutter

Source Code

Content-Length of List<Uri> in Dart

Source Code

Recursive Dot Notation on Maps in Dart

Source Code

Allow User Selection of Text in Flutter

Source Code

Placing Constraints on Widgets in Flutter

Source Code

Animating Position Changes in Flutter

Source Code

Transitioning Between Widgets in Flutter

Source Code

Doubly Linked Lists in Dart

Source Code

Reordering Items Inside List Views in Flutter

Source Code

Custom Stream Transformers in Dart

Source Code

Expanding Stream Elements in Dart

Source Code

Consume Streams for a Duration in Dart

Source Code

Shortening URLs in Dart

Source Code

LimitedBox Widget as ListView Items in Flutter

Source Code

Generically Convert Anything to Int in Dart

Source Code

Validating URL Certificates in Dart

Source Code

Displaying Popup Menus in Flutter

Source Code

Implementing Drag and Drop in Flutter

Source Code

Dismissing List Items in Flutter

Source Code

Animating Widgets with Ease in Flutter

Source Code

Displaying Tool Tips in Flutter

Source Code

Displaying Assorted Widgets Inside TableView in Flutter

Source Code

Page Indicator with Page View in Flutter

Source Code

Animating and Moving a Floating Action Button in Flutter

Source Code

Fading Network Image Widget in Flutter

Source Code

Transparent Alert Dialogs in Flutter

Source Code

Network Image Size in Dart

Source Code

Animated Icons in Flutter

Source Code

Custom Scroll Views in Flutter

Source Code

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 and 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 with LayoutBuilder, CustomPaint and CustomPainter

Generic Type Aliases in Dart

Callable Classes in Dart

Synchronous Generators in Dart

Implicit Interfaces in Dart

Did you know that in #Dart, every #class implicitly exports an #interface that can be #implemented (as opposed to #extended) by other classes? This is called "implicit interface".

Do you know how "const" constructors work in #Dart?

Did you know that in #Dart, it is actually preferred to use #async and #await over using raw #Futures?

In #Dart, you can use a combination of #Initializer #List plus default values for your class #member #fields to create elegant and handy convenience initializers

Did you know that in #Dart, you can extract elements of a certain type from your Lists using the #whereType #generic #function instead of calculating the #equality yourselves?

Do you know about #Type #Promotion in Dart?

"address" is an optional field of the "Person" class. If you look at the "doThis()" function you see that I'm saving the value of address in a local variable and then comparing it with null and then returning if it's null. The Dart compiler is intelligent enough to understand that after the if-statement, "address" is NOT null anymore since you've already compared it with null and returned from the function.

If you look at the "insteadOfThis" function, the first one, the Dart compiler cannot make the same assumption if you don't first store the value of address in a local variable. In that first function the Dart compiler, even after the if-statement, needs you to refer to address as an optional, using "address?" syntax.

The mechanism the Dart compiler uses in the "doThis()" function is called Type Promotion.

4 lines of #Dart code that include the #spread operator, #cascade #operator, #generics, #extensions, #private prefix and #getters

Functions as First Class Citizens in Dart