Skip to content
CAI
Software that uses CAICheck a score

dev-xero/coffee-drop-ui

50.0

Adequate · 21 September 2026

2.6k

lines of production code

Kotlin

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This is an Android application for browsing and selecting coffee products. It provides a catalog of coffee items with detailed information, allowing users to filter, search, and customize their choices. The system manages the user interface and data flow using modern Android architecture components like Hilt and ViewModels.

Features

Added Coffee Details and Home screens with filtering and size selection

Users can now view detailed information about a specific coffee, including its description, ratings, and available sizes, with the ability to select a size. The Home screen provides a filtered list of coffees, a search bar, and a 'Special For You' section. The interface includes a bottom navigation bar and a filter bar for coffee types.

app/src/main/java/architex/labs/coffeedrop/presentation/screens · medium confidence

Added Coffee data model

A new Coffee domain model has been introduced, defining the structure for coffee items with properties for identification, imagery, name, description, variant, type, price, rating, reviews, roasting level, and available sizes.

app/src/main/java/architex/labs/coffeedrop/domain/models · high confidence

Added CoffeeList domain interface

A new domain interface, CoffeeList, has been added to the repository layer. This interface defines a list property that returns a collection of Coffee objects, establishing the contract for retrieving coffee data within the application's domain model.

app/src/main/java/architex/labs/coffeedrop/domain/repository · high confidence

Added MainActivity entry point with navigation and splash screen integration

The app now includes a new MainActivity that serves as the primary entry point, integrating a navigation controller to manage the app's navigation graph and installing a splash screen for the initial launch experience.

app/src/main/java/architex/labs/coffeedrop/presentation · high confidence

Added domain models for coffee attributes

The app now includes new domain models for coffee attributes, specifically CoffeeSize (Small, Medium, Large), CoffeeType (Cappuccino, Latte, Espresso, Double Espresso, Mocha, Cortado), and RoastingLevel (Low, Medium, High). These sealed classes provide structured data for coffee customization options.

_app/src/main/java/architex/labs/coffeedrop/domain/models/sub\models · high confidence

Added new UI components for coffee browsing and details

The app now includes a suite of new presentation components to support the coffee browsing experience. This includes a AppBar for the header, a BottomNavBar for navigation, and a CoffeeCard for displaying coffee items in a list. Additionally, the update introduces components for the coffee details screen, such as CoffeeDetailsDisplay, CoffeeDetailsTopRow, and CoffeeDetailsBottomRow, which show product information, ratings, and an order button. The update also adds a CoffeeFilterBar for filtering by coffee type, a SearchBar for finding specific items, and a SpecialForYouCard for personalized recommendations. These components collectively enable users to browse, filter, search, and view detailed information about coffees.

app/src/main/java/architex/labs/coffeedrop/presentation/components · high confidence

Implemented app navigation graph and bottom navigation structure

Users can now navigate between the Home and Coffee Detail screens, with the bottom navigation bar displaying icons for Home, Cart, Favorites, and Notification sections. The navigation graph defines routes for HomeScreen and CoffeeDetailScreen, linking the HomeScreen to the CoffeeDetailsScreen via a selected coffee ID, and provides a back navigation mechanism from the detail view.

app/src/main/java/architex/labs/coffeedrop/application/navigation · high confidence

Implemented coffee list with 12 sample entries

The CoffeeListImpl repository was added to provide a static list of 12 coffee items, each containing details such as name, description, price, rating, and roasting level. This change introduces the data layer for the coffee list feature, enabling the application to display a collection of coffee products with their respective attributes.

app/src/main/java/architex/labs/coffeedrop/data · high confidence

New view models for coffee detail and home screen interactions

Added CoffeeDetailsScreenViewModel and HomeScreenViewModel to manage UI state for the coffee detail and home screens. The home screen view model now handles coffee type selection, search string updates, and filtering the coffee list based on type and search query. The coffee details view model manages the selected coffee, description expansion state, and coffee size selection.

app/src/main/java/architex/labs/coffeedrop/presentation/viewmodels · high confidence

Architecture

Initial Hilt dependency injection setup for CoffeeList

The app now includes a base Application class annotated with Hilt, and an AppModule that provides the CoffeeList repository implementation via Hilt's dependency injection. This establishes the foundation for managing application-level dependencies, specifically the CoffeeList, which will be injected into ViewModels and other components.

app/src/main/java/architex/labs/coffeedrop/application/di · high confidence

Behavioural changes

Customized bottom navigation and interaction feedback

The app now supports bottom navigation items that display distinct icons for selected and unselected states, providing clearer visual feedback during navigation. Additionally, the app introduces a custom ripple theme that disables the default ripple effect, and provides a utility to apply click handling without any ripple animation, resulting in a more subdued interaction experience.

app/src/main/java/architex/labs/coffeedrop/presentation/utils · medium confidence

Migration of build configuration files to Kotlin

The project has migrated its build configuration files from Groovy to Kotlin. This is evidenced by the deletion of the original \MainActivity.kt\ file (which appears to be a default template) and the update to \proguard-rules.pro\ to reference \build.gradle.kts\ instead of \build.gradle\. This change affects how the application is built and configured, shifting the build script format to Kotlin DSL.

app, app/src/main/java/architex/labs/coffeedrop · medium confidence

Updated app theme with custom typography and consistent navigation bar styling

The app's visual theme has been updated to use the 'Circular Std' font across all text styles, replacing the default system font. Additionally, the navigation bar color is now explicitly set to match the app's background color, ensuring a consistent visual appearance across the interface.

app/src/main/java/architex/labs/coffeedrop/presentation/theme · high confidence

Dependencies

Migrated Android build configuration from Groovy to Kotlin DSL

The project's build scripts have been converted from Groovy (build.gradle, settings.gradle) to Kotlin (build.gradle.kts, settings.gradle.kts). This migration includes updating the Kotlin plugin version from 1.7.20 to 1.8.20, adding the Hilt plugin, and updating Java compile options from 1.8 to 17. Additionally, the Compose BOM was upgraded from 2022.10.00 to 2023.04.01, and various AndroidX dependencies (Core, Lifecycle, Activity, Navigation, Hilt) were updated to newer versions.

(dependencies) · medium 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 51 → 50 (-0.5)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 99 → 98 (-1.0)
  • Architecture 100 → 94 (-6.3)
  • Maturity 32 → 32 (+0.0)
  • Readiness 34 → 34 (-0.1)
  • Security 92 → 92 (+0.0)
  • Domain Modelling 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
  • Duplicated block (16 lines × 2) (app/src/main/java/architex/labs/coffeedrop/presentation/screens/CoffeeDetailsScreen.kt)
  • No exposed public API
  • Test reliability not included
  • single-maintainer — knowledge-concentration (bus factor) risk

New (7)

  • 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 (61 lines × 2) (app/src/main/java/architex/labs/coffeedrop/presentation/screens/CoffeeDetailsScreen.kt)
  • MethodTooLong: CoffeeDetailsScreenKt.CoffeeDetailsScreen (app/src/main/java/architex/labs/coffeedrop/presentation/screens/CoffeeDetailsScreen.kt)
  • No ADRs found
  • Repeated repair: app/src/main/java/architex/labs/coffeedrop/presentation/components/CoffeeCard.kt (app/src/main/java/architex/labs/coffeedrop/presentation/components/CoffeeCard.kt)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

dev-xero/coffee-drop-ui 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 9990c094005abbad8ee56f2dd0d64c09ca940a00 — 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.