kagemiku/ios-clean-architecture-sample
51.7
Adequate · 21 September 2026
1.4k
lines of production code
Swift
primary language
4
measurements over time
What this system is
This is an iOS application that interacts with the GitHub API to search for and display repository information. It is structured using Clean Architecture, separating concerns into distinct layers for domain logic, data handling, and presentation. The system fetches repository data, parses JSON responses, and renders UI components to show repository lists and detailed views.
Features
Add repository detail header UI components
Introduced new UI components for the repository detail screen: GitHubRepositoryDetailHeaderView and GitHubRepositoryDetailHeaderLabelView. These views handle the display of repository metadata, including the repository name, and the counts for watchers, stars, and forks. The header view arranges these elements, while the label view manages individual metric displays.
ios-clean-architecture-sample/Presentation/UI/View · high confidence
Add utility extensions for collections, colors, and table view cells
Developers can now use safe subscript access on collections, initialize UIColors from hex values, and easily obtain cell identifiers for table view cells. These new extension files in the Application/Extension directory provide convenient, reusable utilities that simplify common iOS development tasks.
ios-clean-architecture-sample/Application/Extension · medium confidence
Added data models for GitHub repository information
New Swift structs have been introduced to represent GitHub repository data, including GitHubRepositoryEntity, GitHubRepositoryOwnerEntity, and GitHubRepositoryReadmeEntity. These models map to JSON responses from the GitHub API, enabling the application to parse and display repository details such as name, description, star count, and owner information.
ios-clean-architecture-sample/Data/Entity · high confidence
Added data store implementations for GitHub repository search and readme retrieval
New data store classes, GitHubRepositoryDataStore and GitHubRepositoryDetailDataStore, were added to handle fetching repository search results and repository readme content respectively. These implementations interact with the GitHub API client and notify their respective repositories via the repository input protocols, enabling the application to search for repositories and retrieve repository readme data.
ios-clean-architecture-sample/Data/DataStore · high confidence
Added domain models for GitHub repository details and listings
New domain models have been introduced to support repository detail and listing views. GitHubRepositoriesModel and GitHubRepositoryModel now represent lists and individual items with properties like name, owner, description, and counts. A new GitHubRepositoryDetailModel enum and GitHubRepositoryReadmeModel struct provide structured data for repository details, including description text and readme content.
ios-clean-architecture-sample/Domain/Model · high confidence
Added network layer with APIClient and GitHub API integration
Introduced a new network abstraction in the Application/Network directory, featuring an APIClient that wraps Alamofire and ObjectMapper to handle JSON and raw string HTTP requests. The diff adds a generic Result type for success/error handling and a Routable protocol for URL construction. Specifically, GitHubAPIClient is implemented to interact with the GitHub API, providing methods to search repositories and fetch repository READMEs, utilizing the new APIClient infrastructure.
ios-clean-architecture-sample/Application/Network · medium confidence
Added presenters for repository search and detail views
New presenter classes (GitHubRepositoryPresenter and GitHubRepositoryDetailPresenter) were added to handle UI logic for the repository list and detail screens. The repository list presenter now manages search actions, loading states, and navigation to the detail view, while the detail presenter handles displaying repository information and fetching README content.
ios-clean-architecture-sample/Presentation/Presenter · high confidence
Added repository detail and search UI screens
Introduced two new view controllers to the iOS application: GitHubRepositoryDetailViewController, which displays repository information and README content, and GitHubRepositoryTableViewController, which handles the repository list and search functionality. These additions provide the user with the ability to search for repositories, view a list of results, and navigate to a detailed view containing repository metadata and documentation.
ios-clean-architecture-sample/Presentation/UI/ViewController · high confidence
Added repository implementations for GitHub search and detail flows
New repository classes (GitHubRepositoryRepository and GitHubRepositoryDetailRepository) have been introduced to handle data fetching for repository search and repository detail/readme retrieval respectively. These implementations bridge the data store and use cases, allowing the application to search for repositories and fetch repository readme content.
ios-clean-architecture-sample/Data/Repository · high confidence
Added repository search and detail use cases
Introduced two new domain use cases: GitHubRepositoryUseCase for searching repositories and GitHubRepositoryDetailUseCase for retrieving repository readme content. Each use case defines a protocol for its input/output, a presentation input protocol for the UI layer, and an implementation class that coordinates with the data layer and translates entities to models for the presenter.
ios-clean-architecture-sample/Domain/UseCase · medium confidence
Introduce Wireframe protocol and GitHubRepositoryWireframe implementation
A new WireFrame protocol and a concrete GitHubRepositoryWireframe struct have been added to the Application/Wireframe directory. The protocol defines a generic interface for view controllers, and the struct implements navigation logic to display repository details by pushing a new view controller onto the navigation stack.
ios-clean-architecture-sample/Application/Wireframe · high confidence
Introduce domain translators for mapping entities to models
Added a new 'Translator' protocol and specific translator classes (GitHubRepositoryTranslator, GitHubRepositoryOwnerTranslator, GitHubRepositoryReadmeTranslator) that convert domain entities into their corresponding model representations. This introduces a dedicated layer for data transformation within the Domain layer, ensuring that entities are properly mapped to models for use in the application.
ios-clean-architecture-sample/Domain/Translator · high confidence
Introduce new table view cells for repository display
Added GitHubRepositoryDetailViewCell and GitHubRepositoryTableViewCell to the iOS presentation layer. The new GitHubRepositoryTableViewCell supports displaying repository data including avatars and names, utilizing the Kingfisher library for image loading, while the new GitHubRepositoryDetailViewCell provides a simpler text/icon configuration for detail views.
ios-clean-architecture-sample/Presentation/UI/View/Cell · high confidence
Behavioural changes
Added shared Xcode scheme for the iOS Clean Architecture sample
A new shared Xcode scheme file (ios-clean-architecture-sample.xcscheme) has been added to the project. This file configures how the app is built, tested, launched, profiled, analyzed, and archived within Xcode, ensuring consistent build and run configurations for all developers working on the project.
ios-clean-architecture-sample.xcodeproj/xcshareddata · high confidence
App launch flow and launch screen configuration updated
The application now programmatically sets up the root view controller as a navigation controller wrapping a GitHub repository table view, with a custom background color applied to the navigation bar. The previous Main.storyboard file has been removed, and the corresponding entry has been removed from Info.plist, indicating a shift away from storyboard-based initialization for the main window setup.
ios-clean-architecture-sample · high confidence
Introduce ViewControllerBuilder protocol and concrete builders for repository views
The application now uses a \ViewControllerBuilder\ protocol to encapsulate the creation of \UIViewController\ instances for the GitHub repository features. Specifically, \GitHubRepositoryTableViewControllerBuilder\ and \GitHubRepositoryDetailViewControllerBuilder\ are introduced to handle the wiring of dependencies (repositories, use cases, presenters) for the main list and detail screens. This change shifts the responsibility of assembling the view controllers and their associated components into dedicated builder structs, replacing previous instantiation patterns.
ios-clean-architecture-sample/Application/Builder · high confidence
Removed legacy Main.storyboard
The default storyboard file (Main.storyboard) has been removed from the iOS project. This indicates a shift away from using a single, static storyboard for the app's initial view controller, likely in favor of programmatic UI or separate storyboards.
ios-clean-architecture-sample/Base.lproj · high confidence
Restructured project into Clean Architecture with new dependencies
The iOS project has been reorganized into a Clean Architecture structure, introducing distinct layers for Application, Presentation, Domain, and Data. This refactoring includes the addition of new classes such as APIClient, GitHubAPIClient, and various ViewControllers and ViewModels. The project now integrates several third-party libraries including Alamofire, SwiftyJSON, ObjectMapper, Kingfisher, and Down, which are linked as frameworks. Additionally, a test bundle has been added to support unit testing.
ios-clean-architecture-sample.xcodeproj · high confidence
Test coverage
Added iOS test bundle and placeholder test class
A new test bundle was added to the iOS project, including an Info.plist configuration file and a placeholder Swift test class (ios\_clean\_architecture\_sampleTests.swift) containing empty test methods for functional and performance testing.
ios-clean-architecture-sampleTests · high confidence
Dependencies
Initial project scaffolding and dependency configuration
The repository was initialized with essential configuration files, including a SwiftLint configuration (.swiftlint.yml) that enforces code style rules and excludes specific directories. The project also includes a Carthage dependency manifest (Cartfile) specifying external libraries such as Alamofire, Down, Kingfisher, ObjectMapper, and SwiftyJSON, with their resolved versions recorded in Cartfile.resolved. Additionally, standard project files like LICENSE (MIT), README.md, and an updated .gitignore were added to support the iOS clean architecture sample.
(repo-wide) · 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 45 → 52 (+7.2)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (-0.2)
- Architecture 67 (new)
- Maturity 39 → 67 (+28.3)
- Readiness 24 → 30 (+5.9)
- Security 100 → 100 (+0.0)
- Event-Driven 65 → 65 (+0.0)
Resolved (7)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — no supported dependency manifest was read
- No exposed public API
- Test reliability not included
- change coupling unreadable for .swift — no production change history could be paired for this repository's own source
- complexity unreadable for .swift — churn × complexity hotspots could not be measured
- single-maintainer — knowledge-concentration (bus factor) risk
New (12)
- Assertions commented out: testExample (ios-clean-architecture-sampleTests/ios_clean_architecture_sampleTests.swift)
- Documentation: no installation or build instructions (README.md)
- Documentation: no project overview (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (8 lines × 3) (ios-clean-architecture-sample/Presentation/UI/View/GitHubRepositoryDetailHeaderLabelView.swift)
- Low cohesion: GitHubRepositoryDetailHeaderLabelView (LCOM4 6) (ios-clean-architecture-sample/Presentation/UI/View/GitHubRepositoryDetailHeaderLabelView.swift)
- Low cohesion: GitHubRepositoryDetailHeaderView (LCOM4 5) (ios-clean-architecture-sample/Presentation/UI/View/GitHubRepositoryDetailHeaderView.swift)
- Low cohesion: GitHubRepositoryDetailViewController (LCOM4 5) (ios-clean-architecture-sample/Presentation/UI/ViewController/GitHubRepositoryDetailViewController.swift)
- Low cohesion: GitHubRepositoryTableViewCell (LCOM4 4) (ios-clean-architecture-sample/Presentation/UI/View/Cell/GitHubRepositoryTableViewCell.swift)
- Low cohesion: GitHubRepositoryTableViewController (LCOM4 6) (ios-clean-architecture-sample/Presentation/UI/ViewController/GitHubRepositoryTableViewController.swift)
- No assertions: testPerformanceExample (ios-clean-architecture-sampleTests/ios_clean_architecture_sampleTests.swift)
- Test project verifies nothing: ios-clean-architecture-sampleTests (ios-clean-architecture-sampleTests/ios_clean_architecture_sampleTests.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
kagemiku/ios-clean-architecture-sample 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 c08df24254b9ddf2eee0ace26bb73e70b3f745c3 — 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-b84573e22831.