“language-features”
Primary Constructor Bodies and Initializer Lists in Dart
Primary constructors are reshaping how Dart classes are written. Dive into bodies, initializer lists, and when to keep a classic constructor instead.
Dart Dot Shorthand Syntax: Cleaner Enum and Static Member Access (Dart 3.10+)
Dot shorthands let you omit the type prefix when accessing enum values and static members. Learn the syntax, real use cases in Flutter UI code, and how to migrate.
Dart Pattern Matching and Records: Cleaner Data Flow in Flutter Apps
Dart 3 introduced patterns and records — two features that quietly eliminate entire categories of boilerplate. Here is how they work and where they pay off in real Flutter code.
Dart Macros: Compile-Time Code Generation Comes to the Language
Dart macros promised in-language compile-time code generation with deep semantic introspection. The program was paused in January 2025 over hygiene, analyzer integration, and compile-time performance. This post explains what macros were designed to do, why they did not ship, what the 2026 roadmap replaces them with, and how to keep using build_runner today.
Dart Extension Types: Zero-Cost Wrappers for Safer APIs
Learn how Dart extension types give you branded types, restricted interfaces, and zero-cost interop wrappers — with syntax, transparency via implements, and when to prefer a real class.
Dart Sealed Classes: Exhaustive Switches and Controlled Hierarchies
A practical guide to Dart sealed classes and class modifiers: compiler-checked exhaustive switches, base, interface, final, and when to reach for each one.
Primary Constructors in Dart 3.13: Cleaner Class Definitions
Dart 3.13 introduces primary constructors that reduce boilerplate by declaring parameters directly in the class header. Learn syntax, use cases, and migration tips.