Skip to content
CAI
Software that uses CAICheck a score

drakeet/MultiType

60.5

Adequate · 25 September 2026

2.9k

lines of production code

Kotlin

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Add sample app demonstrating multi-type list capabilities

The sample application now includes a comprehensive set of demo activities showcasing the library's features, including a main menu for navigation, a normal list with text and image items, a complex Bilibili-style layout with headers and horizontal scrolls, a one-to-many data binding example, and a payload-based update demonstration. These additions provide practical examples of using ViewDelegates, ItemViewBinders, and nested RecyclerViews within the sample app.

sample/src/main/kotlin · high confidence

Initial project scaffolding and CI configuration

The repository was initialized with core project files including a Travis CI configuration for Android testing, a CHANGELOG tracking releases from 1.1-beta1 through 4.2.0, and standard documentation (README, CONTRIBUTING, LICENSE). The diff also includes a checkstyle.xml for code style enforcement, a findbugs.xml filter, and updated Gradle wrapper scripts (gradlew, gradlew.bat) that now include Apache 2.0 license headers and improved path resolution logic.

(repo-wide) · high confidence

Simplified view binding with ViewDelegate and ItemViewBinder

The library introduces new base classes to simplify view binding. A new \ViewDelegate\ abstract class allows developers to bind views without managing \RecyclerView.ViewHolder\ boilerplate, automatically handling view holder creation and binding. Additionally, an \ItemViewBinder\ class is added as a compatible, simpler alternative to \ItemViewDelegate\, providing a more straightforward API for creating view binders. These changes streamline the process of creating custom item views by reducing the amount of code required to manage view holders and bind data to views.

library/src/main/kotlin · high confidence

Architecture

Migrated library to Kotlin and updated module documentation

The library has been migrated to Kotlin, a significant architectural shift for the project. Additionally, the module description in module.md has been updated to reflect the new package name (me.drakeet.multitype) and the library's purpose. The proguard-rules.pro file has been removed, likely because ProGuard rules are now handled differently in the new build configuration or language setup.

library · medium confidence

Behavioural changes

The library has removed several legacy classes including ItemContent, ItemType, ItemTypeFactory, ItemTypePool, ItemTypesAdapter, ItemViewProvider, and Savable. This cleanup eliminates deprecated APIs and simplifies the internal architecture, meaning developers must update their code to use the new multi-type adapter interface.

library/src/main/java · high confidence

Removed obsolete sample code using deprecated API

The sample application's main activity has been removed from the codebase. This eliminates the use of the deprecated \ItemType\ and \ItemTypeFactory\ API in favor of the modern \register\-based approach demonstrated in other sample files, ensuring the sample code aligns with current library usage patterns.

sample/src/main/java/me/drakeet/multitype/sample/page · high confidence

Removed sample item implementations

The sample application's item content and view provider classes for Text, Image, and Rich items have been removed. This eliminates the sample's demonstration of how to implement custom item types and view providers within the multitype library.

sample/src/main/java/me/drakeet/multitype/sample · high confidence

Test coverage

Added Android UI tests for the sample app; Added unit tests for the multitype library components; Removed Android instrumentation test; Removed obsolete unit test file.

Dependencies

Updated Gradle wrapper to version 6.8.2

The Gradle wrapper has been upgraded from version 2.10 to 6.8.2, which may require users to update their local Gradle installation or rely on the new wrapper for building the project.

gradle · high confidence

Upgraded Android build system and dependencies to modern standards

The project has been migrated to AndroidX, updated to compileSdkVersion 30, and upgraded the Android Gradle Plugin to 4.2.1 with Kotlin 1.4.32. Dependencies have been updated to use AndroidX libraries (e.g., androidx.recyclerview, androidx.appcompat) and modern test tools (Robolectric 4.3.1, Truth 1.0). The build configuration now enforces Java 8 compatibility and includes new Gradle scripts for Maven publishing and documentation generation.

(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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 51 → 60 (+9.9)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 94 → 99 (+5.3)
  • Maturity 52 → 50 (-2.5)
  • Readiness 24 → 44 (+20.2)
  • Security 97 → 100 (+2.5)

Resolved (6)

  • Coverage not measured — test suite did not build
  • Dimension evaluation failed
  • Medium: security finding (details withheld)
  • No exposed public API
  • No tests found
  • Test reliability not included

New (4)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • No dependency advisory monitoring
  • Orphaned files with no living knowledge

Architecture

  • Containers 0 added · 0 removed · contexts 2 added · 0 removed · edges 1 added · 0 removed

Added bounded contexts (2)

  • library
  • sample

Added dependency edges (1)

  • sample → library

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

Survey your own repository

drakeet/MultiType 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 25 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 84cd8fad89b0c6df661f32afae3b090cbf0cb0f5 — 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-dd72cc24c749.