mo7amedaliEbaid/fitness-app-clean-arch
54.7
Adequate · 21 September 2026
2.1k
lines of production code
Dart
primary language
4
measurements over time
What this system is
This is a cross-platform Flutter application for browsing and managing exercises, featuring a responsive UI with dark/light theme support. It leverages a modular architecture with dependency injection and state management via BLoC. The system supports Linux desktops and manages local data using SQLite, while fetching remote content through a paginated API.
Features
Added Linux desktop platform support
The Linux desktop platform has been added to the project, enabling the application to run on Linux. This includes the necessary CMake build configuration, the GTK-based application entry point, and the generated plugin registrant to support Flutter plugins on the Linux desktop.
linux · high confidence
Added responsive layout support and theme management
The app now supports responsive design, allowing the interface to adapt to mobile, tablet, and desktop screen sizes. Users can also switch between dark and light themes, with their preference being remembered across sessions.
lib/shared · high confidence
Behavioural changes
Restructure exercises feature and enhance UI and API capabilities
The exercises feature has been reorganized from the 'articles' module to the 'exercises' module, with all related data sources, repositories, and presentation layers moved accordingly. The remote API service now supports an optional 'limit' query parameter for pagination. The UI has been updated with a responsive layout for the exercises list, a theme toggle switch in the header, and improved styling for exercise tiles. Additionally, the codebase has been refactored to use shared core modules for constants, data states, and use cases, and error handling has been updated to use DioException.
lib/features/exercises · high confidence
Restructures app entry point and dependency injection
The application entry point (lib/main.dart) has been refactored to use a new core/app.dart module and a custom BlocObserver, replacing the previous inline MyApp widget and direct theme configuration. Additionally, the dependency injection container (lib/di/injection\_container.dart) has been moved to a new 'di' directory and updated to register the ThemeBloc, while all feature-related imports have been renamed from 'articles' to 'exercises' to reflect the domain's new naming convention.
lib · high confidence
Dependencies
Updated Dart/Flutter dependencies and added new libraries
The project's dependency manifest (pubspec.yaml) was updated to include sqlite3\_flutter\_libs and shared\_preferences, while build\_runner was pinned to version 2.0.0. Additionally, the pubspec.lock file was removed, indicating a shift in how dependencies are managed or tracked.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 49 → 55 (+5.7)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 95 (-4.6)
- Architecture 100 → 90 (-9.9)
- Maturity 40 → 46 (+6.2)
- Readiness 24 → 36 (+11.7)
- Security 95 → 95 (+0.0)
- Domain Modelling 100 → 100 (+0.0)
Resolved (8)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- No exposed public API
- Test reliability not included
- complexity unreadable for .dart, .kt, .swift — churn × complexity hotspots could not be measured
- early-stage repository — too little history to judge knowledge freshness
- git history depth insufficient
- single-maintainer — knowledge-concentration (bus factor) risk
New (12)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
- Documentation: no usage examples (README.md)
- MethodTooLong: _ZoomScaffoldState.build (lib/shared/widgets/zoomed_scaffold.dart)
- No ADRs found
- Rotate the exposed credentials — git history can't be un-committed
- Secret: generic-api-key (lib/apikey.dart)
- TodoComment (lib/shared/widgets/zoomed_scaffold.dart)
- _ZoomScaffoldState._buildGestures (cognitive 44) (lib/shared/widgets/zoomed_scaffold.dart)
- _ZoomScaffoldState._buildGestures (cyclomatic 24) (lib/shared/widgets/zoomed_scaffold.dart)
- _ZoomScaffoldState.build (cognitive 26) (lib/shared/widgets/zoomed_scaffold.dart)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
mo7amedaliEbaid/fitness-app-clean-arch was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit bc95c78a20ae0c866c8dc4f743b5cfd9aad84818 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.