BowlerPlate
Features

Core Concepts

2/19/2026

Understanding the architecture, routing, and state management.

Architecture

We follow a clean architecture pattern to ensure maintainability and testability.

Router Navigation

We use a declarative routing package (auto_route) to manage navigation stacks, deep links, and route guards.

Deep Linking

Configured for both custom scheme (myapp-scheme://) and universal links.

State Management

The app uses Riverpod for predictable state management.

Local State

Ephemeral state is managed within widgets or local controllers or you can also use Flutter Hooks if you already familiar with ReactJS

Global State

App-wide state (Auth, Theme, Settings) is accessible globally.

Data Layer

Model Generation

We use Freezed and JsonSerializable to generate immutable models and JSON serialization code automatically.

flutter pub run build_runner build

Network & Cache

  • Dio: For network requests.
  • Caching: Intelligent caching strategies for offline support and performance.

On this page