Flutter and Dart development articles
Organizing my articles for Flutter and Server Side Dart

The articles below are mostly on Medium but also span a few other sites. If Medium is blocking you because you don’t have an account, let me know and I’ll provide a friend link. Click the (🤝) emoji to get the friend link.
New articles
- Playing short audio clips in Flutter with Just Audio (🤝)
- Flutter state management for minimalists (🤝)
- Exceptions, Errors and asserts in Dart (🤝)
- A visual guide to Input Decorations for Flutter TextField (🤝)
- Programming on your phone
- A visual guide to text affinity in Flutter (🤝)
Featured
These are some of my most important works:
- Dart Apprentice (book)
- Creating a Flutter widget from scratch (🤝)
- Clean Architecture for the Rest of Us
- Flutter state management for minimalists (🤝)
- My first disappointment with Flutter (custom text layout) (🤝)
- How text editing works internally in Flutter (🤝)
- Part 1: Building a Dart server from scratch (series) (🤝)
Flutter
First steps with Flutter series
Widgets
- Adding a border to a widget in Flutter
- A visual guide to Flutter’s SafeArea widget
- Making an AlertDialog in Flutter
- How to Paint in Flutter (CustomPaint widget)
- How to add an icon to the AppBar in Flutter
- How to show download progress in a Flutter app
- Widget of the Week series: Opacity, PageView, AnimatedContainer, Wrap
- Creating a Flutter widget from scratch (🤝)
Lists
- Mastering Flutter ListViews
- A complete guide to Flutter’s ListTile
- Updating data in an AnimatedList in Flutter
Storage
- How to save data locally in Flutter
- Saving and reading data in Flutter with SharedPreferences
- Simple SQFlite database example in Flutter
- How to do a database query with SQFlite in Flutter
- How to do a database insert with SQFlite in Flutter
- How to do a database update with SQFlite in Flutter
Architecture and State Management
- Flutter state management for minimalists (🤝)
- State Management with Provider
- Making sense all of those Flutter Providers (🤝)
- Clean Architecture for the Rest of Us
- A beginner’s guide to architecting a Flutter app
- Creating services to do the work in your Flutter app
- Flutter Riverpod tutorial: Counter app
- Flutter Riverpod tutorial: Timer app
Text
- Mastering styled text in Flutter
- Reading a text file from assets in Flutter (🤝)
- My first disappointment with Flutter (custom text layout) (🤝)
- Flutter Text Rendering
- Flutter Line Metrics (🤝)
- Working with Unicode and Grapheme Clusters in Dart (🤝)
- Font Features in Flutter (🤝)
- How text editing works internally in Flutter (🤝)
- Custom In-App Keyboard in Flutter (🤝)
- A visual guide to text affinity in Flutter (🤝)
- A visual guide to Input Decorations for Flutter TextField (🤝)
Audio
UI
Media
- How to include images in your Flutter app
- How to use a custom font in a Flutter app
- Towards full audio support in Flutter
IDE
Web
- Developing a Flutter App in Your Browser
- How to make HTTP requests in Flutter
- Parsing Simple JSON in Flutter and Dart
- Easy JSON examples
- How to embed your Flutter app in WordPress
Publishing
Dart
Book
Topical articles
- Iterables and Iterators in Dart
- Variables and types in Dart
- Dart null safety migration cheat sheet
- Working with bytes in Dart (🤝)
- Understanding the Uri class in Dart (from examples)
- Extracting text from a string with regex groups in Dart (🤝)
- Working with Sockets in Dart (🤝)
- Exceptions, Errors and asserts in Dart (🤝)
Server Side Dart
Overview
Becoming a backend developer
This series includes more than just Dart and Flutter, but you can choose the Dart option in Part 2 and the Flutter option in Part 3.
- Part 1: Foundational concepts
- Part 2: Building the server
- Part 3: Connecting to the server from a mobile app
- Authentication with server side Dart
Dart Aqueduct server for your Flutter app (series)
Building a Dart server from scratch
- Part 1: Building a Dart server from scratch (🤝)
- Part 2: Routing HTTP requests in a Dart server (🤝)
- Part 3: Unit testing a Dart server (🤝)
Video Tutorials
Push Notifications
If you find mistakes…
If you notice any typos or easy to fix errors, please highlight the mistake and leave me a private comment:

If you have questions, disagreements, or notice bigger mistakes, please leave a public comment at the end of the article. This will alert other readers to the problem in case I don’t have time to fix it myself. It will also allow other readers to answer your question.