Skip to content
CAI
Software that uses CAICheck a score

hegaojian/JetpackMvvm

46.9

Weak · 28 September 2026

17.1k

lines of production code

Kotlin

with Java

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an Android MVVM framework library named JetpackMvvm, designed to scaffold base application components and streamline network request handling. It provides utilities for ViewBinding, Kotlin Flow integration, and asynchronous initialization tasks to reduce boilerplate in Android development. The project also includes a demo application that illustrates these capabilities alongside modern build configurations.

Features

Initial release of the JetpackMvvm demo application

This change introduces the initial codebase for the JetpackMvvm demo app, establishing the core application structure. It includes the main Application class for SDK initialization and task management, base activity implementations using ViewBinding, and a Lottie animation asset for the app's visual identity.

app/src · high confidence

JetpackMvvm 2.0 introduces Kotlin Flow support and a new initialization task system

This update adds a new \requestFlow\ DSL that allows ViewModels to execute network or local requests using Kotlin Flows, supporting multiple data emissions and custom flow operators, which complements the existing \request\ DSL for single-result LiveData. The framework also introduces an \InitTaskManager\ with \InitTask\ and \BaseInitTask\ classes, enabling developers to register and execute asynchronous or blocking initialization tasks during app startup. Additionally, the \BaseViewModel\ now uses \MutableResult\ for its loading change observables, and the \JetpackMvvm\ initialization object now exposes a \jetpackMvvmLogEnable\ property to control the printing of request and framework logs.

JetpackMvvm · high confidence

Removals

Removal of MVVMNB Android framework base classes and utilities

The mvvmnb module has removed its core framework implementation, including the base Application, ViewModel, Activity, and Fragment classes (BaseApp, BaseViewModel, BaseVmActivity, BaseVmDbActivity, BaseVmDbFragment, BaseVmFragment) that previously provided automatic ViewModel injection, DataBinding setup, and UI state observation. Additionally, all supporting utilities have been deleted: type-specific ObservableFields and LiveData wrappers, the UnPeekLiveData observer hook, the SingleLiveEvent class, the ViewState sealed class and its extension functions for network request handling, the AppException and BaseResponse network models, the LogInterceptor, and the AndroidManifest. This change eliminates the library's ability to scaffold MVVM-based Android components and handle standard network states out of the box.

mvvmnb · high confidence

Behavioural changes

JetpackMvvm 2.0 introduces ViewBinding support and Kotlin Flow integration

The framework now includes a new BaseVbFragment that leverages Android ViewBinding, allowing developers to skip defining layout IDs and access views via a type-safe binding object. API result handling has been modernized with new Kotlin Flow support (requestFlow) and extension functions for observing both LiveData and SharedFlow results, providing a more reactive approach to network calls. Additionally, the demo application demonstrates these changes with a custom KeepStateNavigator to preserve Fragment state during navigation and theme changes, alongside updated initialization tasks for network and crash-handling libraries.

. · high confidence

Dependencies

Gradle wrapper upgraded to version 8.13

The Gradle wrapper has been updated from version 5.4.1 to 8.13. This upgrade ensures that builds use a modern, supported version of the Gradle build tool, which may improve build performance and compatibility with newer Android and Java features.

gradle · high confidence

Migrate to Gradle Version Catalog and Kotlin DSL

The project has been upgraded from legacy Groovy build scripts to Kotlin DSL (build.gradle.kts) and now uses the Gradle Version Catalog (libs.versions.toml) for centralized dependency management. This change updates the Android Gradle Plugin to 8.10.0, Kotlin to 2.2.0, and compiles against SDK 36, while removing the old mvvmnb module in favor of the new JetpackMvvm library. The demo app now explicitly includes Retrofit and RxHttp examples, and the library is published via Maven Central/Jitpack instead of the deprecated Bintray.

(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 45 → 47 (+2.1)
  • Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 88 → 88 (-0.1)
  • Architecture 100 → 84 (-15.7)
  • Maturity 48 → 48 (+0.0)
  • Readiness 18 → 22 (+3.9)
  • Security 87 → 87 (+0.0)
  • Performance 100 (new)

Resolved (2)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)

New (9)

  • Duplicated block (10 lines × 5) (JetpackMvvm/src/main/java/me/hgj/jetpackmvvm/widget/alpha/UIConstraintLayout.java)
  • Duplicated block (14 lines × 2) (JetpackMvvm/src/main/java/me/hgj/jetpackmvvm/widget/loadsir/callback/HintCallback.java)
  • Duplicated block (9 lines × 2) (JetpackMvvm/src/main/java/me/hgj/jetpackmvvm/widget/alpha/QMUILayoutHelper.java)
  • Duplicated block (9 lines × 5) (JetpackMvvm/src/main/java/me/hgj/jetpackmvvm/widget/alpha/UIConstraintLayout.java)
  • Members sharing a duplicated core (5 members, 50+ identical tokens) (JetpackMvvm/src/main/java/me/hgj/jetpackmvvm/widget/alpha/UIConstraintLayout.java)
  • No ADRs found
  • Off the main sequence: :JetpackMvvm
  • Split JetpackMvvm
  • Split app

Architecture

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

Added bounded contexts (2)

  • JetpackMvvm
  • app

Removed bounded contexts (1)

  • .

Added dependency edges (1)

  • app → JetpackMvvm (coupling)

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

Survey your own repository

hegaojian/JetpackMvvm 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 28 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 b83caec295efa1e4c70167f6d5e2b24248f7d4e3 — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.