edittler/clean-architecture
48.3
Weak · 22 September 2026
3.8k
lines of production code
Swift
primary language
7
measurements over time
What this system is
This system is a cross-platform mobile application for managing student course data. It provides a local-first architecture on both Android and iOS, utilizing Realm and NoSQL storage to cache courses and subjects for offline access. The app features a clean architecture with distinct domain, presentation, and data layers to handle UI logic and navigation for course enrollment and listing.
Features
Initial Android app structure with domain and presentation layers
The Android application is initialized with a clean architecture, introducing domain models for Courses and Subjects, along with mappers to convert JSON data into these models. The app includes a local data repository using a simple NoSQL storage mechanism with hardcoded sample data for subjects and courses. Presentation layer components, including presenters and view models, are added to handle UI logic for displaying available subjects, courses, and enrolled courses. The app's main activity and several other activities (Courses, EnrollToCourse, EnrolledCourses) are registered in the manifest, establishing the core navigation and data flow for the student course management feature.
android/FIUBAPP · high confidence
Initial Android project structure and configuration
The Android module for the mobile application has been initialized with a standard project structure. This includes Gradle build scripts and wrapper scripts (gradlew) for building the app, along with essential configuration files such as .gitignore, IDE settings for Android Studio and IntelliJ (.idea/), and a FindBugs filter. The project is configured to support API 15 and above, using Java 1.8, and includes dependencies for testing (JUnit, Mockito) and code analysis (FindBugs).
android · high confidence
iOS app initializes with local course and subject data
The iOS application now includes a local dataset of courses and subjects, stored as JSON files (courses.json, subjects.json) and model classes (Course, Subject). On first launch, the app loads this data into a local Realm database, ensuring that the initial list of subjects and courses is available immediately without requiring a network connection. This provides a functional baseline for the course listing and enrollment features.
ios · high confidence
Dependencies
Initial Android and iOS build configurations and dependencies
The project now includes the foundational build scripts and dependency declarations for both Android and iOS platforms. On Android, Gradle files define the application structure, specifying SDK versions (compileSdk 23, minSdk 15), and declare dependencies including Android Support Library, Butterknife, Timber, Retrofit, and testing libraries. On iOS, the Podfile configures the 'FIUBA' target with RealmSwift 2.0.2 and sets the Swift version to 3.0. These changes establish the environment required to build and run the mobile applications.
(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 57 → 48 (-8.5)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 99 (-0.8)
- Architecture 100 → 86 (-14.1)
- Maturity 68 → 47 (-21.5)
- Readiness 24 → 25 (+0.4)
- Security 100 → 100 (+0.0)
Resolved (7)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — no supported dependency manifest was read
- Duplicated block (8 lines × 3) (android/FIUBAPP/app/src/main/java/com/clean/data/repository/LocalDataBase.java)
- No exposed public API
- Test reliability not included
- early-stage repository — too few commits for a meaningful bus factor
- early-stage repository — too little history to judge knowledge freshness
New (20)
- Assertions commented out: testExample (ios/FIUBATests/FIUBATests.swift)
- Assertions commented out: testExample (ios/FIUBAUITests/FIUBAUITests.swift)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (ios/FIUBA/Workers/CoursesWorker.swift)
- Duplicated block (10 lines × 3) (ios/FIUBA/Services/CoursesRealmStore.swift)
- Duplicated block (13 lines × 3) (ios/FIUBA/Scenes/ListEnrolledCourses/ListEnrolledCoursesConfigurator.swift)
- Duplicated block (34 lines × 2) (ios/FIUBA/Scenes/ListEnrolledCourses/ListEnrolledCoursesRouter.swift)
- Duplicated block (5 lines × 2) (ios/FIUBA/Scenes/ListCourses/ListCoursesWorker.swift)
- Duplicated block (6 lines × 2) (ios/FIUBA/Scenes/ListCourses/ListCoursesViewController.swift)
- Duplicated block (6 lines × 2) (ios/FIUBA/Services/CoursesJsonStore.swift)
- Duplicated block (7 lines × 2) (ios/FIUBA/Scenes/ListCourses/ListCoursesViewController.swift)
- Low cohesion: AppDelegate (LCOM4 6) (ios/FIUBA/AppDelegate.swift)
- Low cohesion: ListEnrolledCoursesViewController (LCOM4 6) (ios/FIUBA/Scenes/ListEnrolledCourses/ListEnrolledCoursesViewController.swift)
- Low cohesion: ListSubjectsViewController (LCOM4 4) (ios/FIUBA/Scenes/ListSubjects/ListSubjectsViewController.swift)
- Low cohesion: ShowOptionsViewController (LCOM4 4) (ios/FIUBA/Scenes/ShowOptions/ShowOptionsViewController.swift)
- No ADRs found
- No assertions: testPerformanceExample (ios/FIUBATests/FIUBATests.swift)
- Test project verifies nothing: FIUBAUITests (ios/FIUBAUITests/FIUBAUITests.swift)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
edittler/clean-architecture 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 22 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 640cb0fea9edbed115c4d58714a35ea753f11693 — 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-90d5d2fe38ee.