Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
6 posts found #dart
What Is Flutter? One Codebase, Its Own Rendering Engine and Where It Stands Against .NET MAUI, React Native and Native
Frontend PART 01

What Is Flutter? One Codebase, Its Own Rendering Engine and Where It Stands Against .NET MAUI, React Native and Native

Flutter is a UI toolkit that draws every pixel with its own engine (Impeller) instead of using the platform's native controls, and builds Android and iOS apps from one Dart codebase. We walk through its layers, show with real measurements how Dart is JIT-compiled in development and AOT-compiled for release, compare it with .NET MAUI, React Native and native development, and explain when not to choose Flutter.

15 Nov 2026 12 min 6
Installing Flutter and Your First Project: the SDK, Android Studio, Xcode, Emulators, flutter doctor and Hot Reload
Frontend PART 02

Installing Flutter and Your First Project: the SDK, Android Studio, Xcode, Emulators, flutter doctor and Hot Reload

This post covers installing Flutter on Windows for Android and on macOS for Android and iOS, reading the output of flutter doctor and creating bookstore_app with material_ui. We show with a real run that hot reload keeps state while hot restart resets it, map pubspec.yaml to csproj and package.json, and verify the app without an emulator using a widget test and a web build.

15 Nov 2026 14 min 6
Dart for C# Developers, Part 1: Types, Null Safety, Collections, Functions and Records
Frontend PART 03

Dart for C# Developers, Part 1: Types, Null Safety, Collections, Functions and Records

Dart's null safety, unlike C#'s, is sound: using a nullable value without a check is a compile error rather than a warning, and a non-nullable variable can never be null at run time. For readers who know C#, we explain var/final/const, how const produces canonical instances, collection if/for and null-aware elements, named parameters and records with real output, and write Bookstore's Book and Author models.

15 Nov 2026 14 min 4
Dart for C# Developers, Part 2: Classes, Primary Constructors, Mixins, Sealed Classes and Pattern Matching
Frontend PART 04

Dart for C# Developers, Part 2: Classes, Primary Constructors, Mixins, Sealed Classes and Pattern Matching

In Dart, a switch over a sealed hierarchy stops compiling when a new subtype is added and names the missing case, while value equality does not come without writing == and hashCode. We cover the kinds of constructors, how Dart 3.13 primary constructors differ from C# 12, class modifiers, mixins and extension types with real output, and write Bookstore's OrderStatus and Money types.

15 Nov 2026 14 min 5
Asynchronous Programming in Dart: Futures, async/await, Streams and Isolates
Frontend PART 05

Asynchronous Programming in Dart: Futures, async/await, Streams and Isolates

Dart runs on a single-threaded event loop: async/await does not move work to the background, heavy work freezes the UI, and real parallelism needs isolates with separate memory. We compare Future with C#'s Task and Stream with IAsyncEnumerable, measure that parsing a 20 MB JSON on the main isolate stops frames while Isolate.run does not, and show how the error of an un-awaited Future gets lost.

15 Nov 2026 13 min 5
What Changed in Flutter 3 and Dart 3: Impeller, Patterns, Widget Previews, material_ui and What's Next
Frontend PART 17

What Changed in Flutter 3 and Dart 3: Impeller, Patterns, Widget Previews, material_ui and What's Next

Dart 3.0 made null safety mandatory and brought records, patterns and sealed classes; 3.6 to 3.13 took small steps that change everyday code, from digit separators to primary constructors. On the Flutter side there are Impeller, SwiftPM, UIScene, Widget Previews and, between 3.44 and 3.50, Material moving into the material_ui package; we show with real output that the language version comes from the pubspec, and how to upgrade.

15 Nov 2026 8 min 7
Blog Map