You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project serves as a strictly typed, production-grade reference implementation for **Clean Architecture** in Flutter. It is designed to demonstrate how to build a scalable, testable, and offline-first mobile application that survives background process termination and strictly enforces separation of concerns.
19
+
This project serves as a strictly typed, production-grade reference implementation for **Clean Architecture** in Flutter. It is designed to demonstrate how to build a scalable, testable, and offline-first mobile application that survives background process termination.
20
+
21
+
**Key Features:**
22
+
-**Background Audio:** Robust playback with notification controls (`audio_service` + `just_audio`).
23
+
-**Offline-First:** Local SQLite database for analytics (`sqflite`).
24
+
-**Granular Permissions:** Handling Android 13+ media permissions.
25
+
-**Complex UI:** Physics-based animations and custom shaders.
22
26
23
-
Unlike simple "todo apps," this project tackles real-world complexity:
27
+
## Documentation
24
28
25
-
-**Background Audio:** Managing Android/iOS media sessions (`MediaSessionService`) when the app is killed.
26
-
-**Persistence:** A local SQLite database for analytics and `SharedPreferences` for flags.
27
-
-**Hardware Permissions:** Graceful handling of Android 13+ granular media permissions.
28
-
-**User Identity:** Local-first user profiles with avatar customization and physics-based interactions.
29
+
***[System Architecture](docs/architecture.md):** Deep dive into the Three-Layer Clean Architecture, DDD, and Folder Structure.
30
+
***[Background Audio Feature](docs/features/background_notifications.md):** How the background service and notifications work.
31
+
***[Analytics Feature](docs/features/analytics.md):** Implementation of local-first data tracking.
29
32
30
33
## Getting Started
31
34
32
35
### Prerequisites
33
36
34
37
-**Flutter SDK:** Stable channel (v3.10+)
35
-
-**Platform:** Android (min SDK 21) or iOS (min 13.0)._Desktop support is experimental._
38
+
-**Platform:** Android (min SDK 21) or iOS (min 13.0).
36
39
37
40
### Installation & Run
38
41
39
42
1.**Clone and Install:**
40
-
41
43
```bash
42
44
git clone [repository_url]
43
45
flutter pub get
44
46
```
45
47
46
48
2. **Code Generation (Mandatory):**
47
49
This project uses `freezed` and `json_serializable`. You must run the build runner before launching:
48
-
49
50
```bash
50
51
dart run build_runner build --delete-conflicting-outputs
0 commit comments