Mert Özen Further With Every Line

Blog

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

Series
17 posts found
API Integration in Flutter: http/dio, JSON Serialization, Repositories and Connecting to the ASP.NET Core Bookstore API
Frontend PART 13

API Integration in Flutter: http/dio, JSON Serialization, Repositories and Connecting to the ASP.NET Core Bookstore API

The solid way to connect a Flutter app to an ASP.NET Core API is to keep HTTP in one ApiClient (timeout, retry only for GET, a single refresh on 401), to turn JSON into the domain model in one place and to swap the repository without touching the ViewModel. With real responses from a SQLite copy of the Bookstore API, ProblemDetails mapping, and the 10.0.2.2, cleartext and CORS traps.

15 Nov 2026 12 min 6
Local Storage and Offline in Flutter: shared_preferences, flutter_secure_storage, SQLite/drift and Caching Strategy
Frontend PART 14

Local Storage and Offline in Flutter: shared_preferences, flutter_secure_storage, SQLite/drift and Caching Strategy

In Flutter, small non-secret settings go to shared_preferences, tokens to flutter_secure_storage (iOS Keychain, Android Keystore) and data you query to SQLite through drift. We move Bookstore's cart to drift, try a migration and a reactive query, and show the catalog without internet in the order fresh cache, network, stale cache, all without changing the ViewModels.

15 Nov 2026 9 min 7
Testing in Flutter: Unit, Widget and Integration Tests, Fake Repositories and Golden Tests
Frontend PART 15

Testing in Flutter: Unit, Widget and Integration Tests, Fake Repositories and Golden Tests

The backbone of Flutter testing is unit and widget tests written with fake repositories; mocks only for "was this call made?", integration_test for critical flows and golden tests for catching visual changes on a single platform. With Bookstore's 86 tests, a checkout flow through provider and go_router, mocktail's registerFallbackValue trap and the platform differences of goldens.

15 Nov 2026 9 min 8
Publishing a Flutter App: Google Play and the App Store, Signing, Versioning, Flavors and CI
Frontend PART 16

Publishing a Flutter App: Google Play and the App Store, Signing, Versioning, Flavors and CI

A Flutter app takes the same road in both stores: release build, signing, a test channel, review and a gradual release. For Bookstore we cover version numbers, environments with --dart-define-from-file (and why they cannot carry secrets), the Android upload key and Play App Signing, iOS signing and TestFlight, the 2026 store rules and a signed App Bundle build in GitHub Actions.

15 Nov 2026 8 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