A Flutter example project demonstrating clean architecture patterns, persistent storage, user management, and atomic design components.
This project follows a clean architecture pattern with clear separation of concerns:
- Clients - Low-level data access (preferences, database, filesystem, gallery)
- Services - Business logic consuming clients
- Controllers - State management consuming services
- Models - Immutable data structures
- Views - Top-level UI pages
- Components - Reusable UI components (atoms, molecules, organisms)
- Router - Centralized navigation
See AGENTS.md for detailed architecture guidelines.
- User Management - Multi-user support with roles (Admin/User)
- Persistent Storage - SQLite database + SharedPreferences
- User-Specific Settings - Isolated preferences per user
- Theme Support - Light/Dark/System theme modes
- Localization - English and Spanish support
- Atomic Design - Component library (atoms → molecules → organisms)
- Flutter SDK (see
pubspec.yamlfor version) - iOS: Xcode (for macOS/iOS builds)
- Android: Android SDK
# Install dependencies
flutter pub get
# Run the app
flutter run
# Run tests
flutter testlib/
├── main.dart # App entry point
└── src/
├── app.dart # App configuration
├── router.dart # Navigation
├── clients/ # Data access layer
├── services/ # Business logic
├── controllers/ # State management
├── models/ # Data structures
├── views/ # Top-level pages
├── components/ # Reusable UI components
└── localization/ # i18n files
See AGENTS.md for coding guidelines and architecture patterns.
flutter run- Run the appflutter test- Run testsflutter analyze- Lint codeflutter build [platform]- Build for platform
SQLite database initialized in main.dart with users table. Default "Admin" user created on first launch.
ARB files in lib/src/localization/. Run flutter pub get after modifying ARB files to regenerate localization code.