muryno/CleanArchitecture_Modularization
49.9
Weak · 22 September 2026
1.5k
lines of production code
Kotlin
primary language
7
measurements over time
What this system is
This system is an Android application that manages artist and album data, featuring a modernized UI built with Jetpack Compose. It provides detailed information about artists, including their country, and albums, including genre, label, and descriptions. The architecture follows clean principles with distinct layers for data, domain, and presentation, supported by comprehensive test coverage.
Features
Migrate Artist screen to Jetpack Compose
The Artist screen has been rewritten using Jetpack Compose, replacing the previous XML-based Android View implementation. A new AppTheme composable provides light and dark color schemes, while the ArtistScreen composable handles the search interface and artist list. An EmptyArtistScreen composable displays a refresh option when no artists are found. The ArtistFragment now uses a ComposeView to host the new UI, removing all legacy view bindings and RecyclerView setup.
artist-ui/src/main/java/com/muryno/artist/artist/view · high confidence
Behavioural changes
8 commits (0 fixes) modifying buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm
A change to existing behaviour in buildSrc/build/kotlin/compileKotlin/cacheable/caches-jvm — 8 commits, 4 files.
(repo-wide) · medium confidence · unverified
Added API level check to NetworkConnectionInterceptor
The NetworkConnectionInterceptor now includes an @RequiresApi annotation, indicating a check for the Android API level. This ensures the interceptor only runs on supported Android versions, preventing potential compatibility issues on older devices.
app/src/main/java · high confidence
Added genre and label fields to album release group API model
The AlbumReleaseGroupApiModel now includes 'genre' and 'label' fields, meaning users will see the genre and label information for album release groups in the API response.
_artist-datasource/src/main/java/com/muryno/artist\datasource/model/album · high confidence
Added logging for ArtistViewModel exceptions
The ArtistViewModel now logs a warning message when an exception occurs during the artist use case execution, aiding in debugging and monitoring of errors in the artist presentation layer.
artist-presentation/src/main/java/com/muryno/presention/artist/viewmodel · high confidence
Adds country information to the artist list item view
The ArtistAdapter's view holder now includes a TextView for the artist's city, which is bound to the item's city property. This change updates the UI to display the artist's location alongside their name, gender, and description in the list.
artist-ui/src/main/java/com/muryno/artist/artist/adapter · medium confidence
Artist domain model extended with country field
The ArtistDomainModel now includes a new 'country' property alongside existing fields like type, state, and score. This change updates the domain model to capture the artist's country information, which was previously absent from the data structure.
artist-domain/src/main/java/com/muryno/domain/artist · high confidence
Artist presentation includes country information
The ArtistDomainToPresentationMapper now maps the 'country' field from the domain model to the presentation layer, ensuring that country data is included in the artist's presentation output.
artist-presentation/src/main/java/com/muryno/presention/artist/mapper · high confidence
Artist profile now includes country information
The ArtistPresentationToUIMapper has been updated to map the country field from the presentation model to the UI model, ensuring that an artist's country is included in the user interface data.
artist-ui/src/main/java/com/muryno/artist/artist/mapper, artist-ui/src/main/java/com/muryno/artist/artist/model · high confidence
Enhanced artist data model and view state management
The artist presentation model now includes a 'country' field to provide more detailed location information for artists. Additionally, the artist view state has been updated to support an empty state, allowing the UI to properly display an empty state when no artists are available.
artist-presentation/src/main/java/com/muryno/presention/artist/model · high confidence
Expanded album and artist data models
The ArtistAlbumDataModel now includes additional fields for genre, label, short and full descriptions, and album image, while the ArtistDataModel now includes a country property. These changes enrich the data available for artists and their albums, allowing for more detailed artist and album information to be displayed.
artist-data/src/main/java/com/muryno/data/model · high confidence
Expanded album domain model with new metadata fields
The ArtistAlbumDomainModel has been updated to include additional fields: genre, label, shortDescription, fullDescription, and albumImage. This expands the data available for each album, allowing for richer metadata and more detailed album descriptions.
artist-domain/src/main/java/com/muryno/domain/artistAlbulm · high confidence
Expanded artist and album API response data with new fields
The Artist and ArtistAlbum response mappers now include additional fields in the API response data. For artist data, the 'country' field is now mapped. For album data, the 'genre' and 'label' fields are included, and placeholder strings are added for 'shortDescription', 'fullDescription', and 'albumImage'. These changes ensure that more data is available in the API responses.
_artist-datasource/src/main/java/com/muryno/artist\datasource/mapper · high confidence
Expanded artist and album domain models with new fields
The data-to-domain mappers now map additional fields to the domain models. For artists, a 'country' property is included in the domain model. For albums, the domain model now includes 'genre', 'label', 'shortDescription', 'fullDescription', and 'albumImage'.
artist-data/src/main/java/com/muryno/data/mapper · medium confidence
Refactors BaseFragment layout inflation and formatting
The BaseFragment class has been refactored to improve code formatting and structure. Specifically, the onCreateView method's view inflation logic has been condensed into a more compact multi-line expression, and the file's indentation and whitespace have been standardized. These changes improve the readability of the base fragment implementation without altering its functional behavior.
artist-ui/src/main/java/com/muryno/artist/base · medium confidence
Refined exception handling in the use-case executor
The domain layer now distinguishes between specific network failures, unexpected errors, and standard domain exceptions. The abstract DomainException base class was changed to accept a String message instead of a Throwable. The UseCaseExecutor was updated to catch SSLHandshakeException and UnknownHostException and wrap them in new custom exceptions (NetworkDomainException), while all other non-domain exceptions are wrapped in a new UnknownDomainException.
artist-domain/src/main/java/com/muryno/domain/cleanarchitecture · high confidence
Updated ArtistApiModel with new fields and formatting
The ArtistApiModel data class has been updated to include new fields: state, country, and disambiguation. Additionally, the model's formatting has been adjusted to a more compact style, and the @SerializedName annotations for begin-area, gender-id, life-span, sort-name, and type-id remain in place to map JSON keys to camelCase properties.
_artist-datasource/src/main/java/com/muryno/artist\datasource/model · medium confidence
Updated Hilt and Compose dependencies with new library definitions
The build configuration has been updated to use Hilt version 2.51.1, replacing the previous 2.38.1. Additionally, new Compose dependencies have been introduced, including Material 3, LiveData integration, and tooling previews, while the Compose compiler version was adjusted to resolve conflicts.
buildSrc/src · medium confidence
Test coverage
Added test coverage for country field in artist mapper; Updated ArtistLiveRepositoryTest with new model fields; Updated ArtistViewModelTest to include country field; Updated domain use case tests to reflect model changes; Updated formatting in ArtistAlbumApiToResponseDataMapperTest.
Dependencies
Centralize JVM target and introduce Compose dependencies
The project now uses a centralized configuration for the Kotlin JVM target, replacing hardcoded '1.8' values with a shared constant. Additionally, the artist-ui module has been updated to include Compose dependencies, specifically adding Compose Runtime, Material 3, LiveData integration, and tooling preview support, while also standardizing Hilt and Navigation library references.
(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 → 50 (+1.3)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 100 → 93 (-6.9)
- Maturity 41 → 49 (+8.6)
- Readiness 24 → 24 (+0.0)
- Security 100 → 100 (+0.0)
Resolved (6)
- 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
- Off-boarding risk: anonymized user #1
- Test reliability not included
- The project modules list is present but each module's purpose and interdependencies are not explained. (README.md)
New (4)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- No ADRs found
- Off-boarding risk: anonymized user #1
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
muryno/CleanArchitecture_Modularization 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 895c87bc8125f02570ac446b616dfdbb853260d2 — 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-821afab8930d.