Skip to content
CAI
Software that uses CAICheck a score

ninjaprox/NVActivityIndicatorView

47.5

Weak · 27 September 2026

3.5k

lines of production code

Swift

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Add new activity indicator animations

The library introduces a new set of loading animations for the UI, including AudioEqualizer, BallBeat, BallClipRotate, BallClipRotateMultiple, BallClipRotatePulse, BallDoubleBounce, BallGridBeat, BallGridPulse, BallPulse, BallPulseRise, BallPulseSync, BallRotate, BallRotateChase, BallScale, BallScaleMultiple, and BallScaleRipple. These new visual effects are now available for use as loading states.

Sources · high confidence

Add privacy manifest and update documentation

The library now includes a PrivacyInfo.xcprivacy file to declare that no tracking is performed, satisfying recent Apple App Store requirements. Additionally, the project has been updated with a .gitignore file to exclude build artifacts and user data, a .jazzy.yaml configuration for documentation generation, and a .swiftlint.yml file for code style enforcement. The README and CHANGELOG have also been updated to reflect these structural changes and the latest version history.

(repo-wide) · high confidence

Added automated version bumping script

A new shell script, scripts/bump-version.sh, has been added to automate the process of incrementing the build number, version number, and podspec version using Fastlane. This script accepts an optional argument to specify the type of version bump (defaulting to 'patch').

scripts · high confidence

Removals

Removed obsolete Xcode project file

The \NVActivityIndicatorViewDemo.xcodeproj/project.pbxproj\ file has been deleted. This removes the legacy Xcode project configuration for the demo application, likely as part of a migration to a different build system or project structure.

NVActivityIndicatorViewDemo.xcodeproj · high confidence

Behavioural changes

Example app updated with modern iOS lifecycle and layout support

The Example app now uses the modern iOS scene-based lifecycle (SceneDelegate) and includes updated asset catalogs with comprehensive iPhone and iPad icon sets. The main view controller has been refactored to use safe area layout guides for positioning activity indicators, ensuring correct layout on devices with notches or other screen insets.

Example · high confidence

Removed legacy iOS storyboards

The demo application no longer uses the legacy LaunchScreen.xib and Main.storyboard files for its user interface. These files have been removed from the project, indicating a shift away from Interface Builder-based layout definitions for the demo app.

NVActivityIndicatorViewDemo/Base.lproj · high confidence

Removed obsolete demo application files

The legacy \AppDelegate.swift\ and \ViewController.swift\ files for the \NVActivityIndicatorViewDemo\ target have been deleted. This cleanup removes outdated, boilerplate iOS application entry points that are no longer required for the demo project.

NVActivityIndicatorViewDemo · high confidence

Restructured project and updated version to 5.2.0

The Xcode project has been restructured, with the demo and test targets reorganized into the main project directory. The bundle identifiers and Info.plist files for the main framework and the extended framework have been updated to version 5.2.0, and the minimum iOS deployment target has been raised to 9.0.

NVActivityIndicatorView.xcodeproj · high confidence

Test coverage

Added unit tests for the activity indicator components; Removed demo test suite.

Dependencies

Release NVActivityIndicatorView 5.2.0 with Swift Package Manager support

The NVActivityIndicatorView library has been updated to version 5.2.0. This release introduces Swift Package Manager (SPM) support, allowing developers to easily integrate the library into their projects using the Swift Package Manager. The package defines two main components: 'Base' and 'Extended', with the latter depending on the former. The library now targets iOS and tvOS 9.0 and requires Swift 5.0. Additionally, the SwiftLintPlugins dependency has been updated to version 0.63.2.

(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 36 → 47 (+11.5)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 48 → 94 (+46.1)
  • Architecture 95 (new)
  • Maturity 55 → 49 (-6.6)
  • Readiness 14 → 69 (+55.1)
  • Security 91 → 97 (+6.6)
  • Accessibility 25 (new)

Resolved (8)

  • Dimension evaluation failed
  • LLM evaluation failed
  • Low: security finding (details withheld)
  • Low: security finding (details withheld)
  • No automated tests
  • No exposed public API
  • No tests found
  • Test reliability not included

New (52)

  • Coverage not measured — Swift suite
  • Documentation: no usage examples (README.md)
  • Dormant codebase
  • Duplicate boolean property exposing the same state. In Swift/Objective-C interop or Swift itself, having both animating and isAnimating is redundant and confusing, as isAnimating is the standard convention for boolean properties.
  • Duplicated block (10 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationBallClipRotateMultiple.swift)
  • Duplicated block (10 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationOrbit.swift)
  • Duplicated block (11 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationBallClipRotatePulse.swift)
  • Duplicated block (11 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationCircleStrokeSpin.swift)
  • Duplicated block (11–12 lines × 4) (Sources/Base/Animations/NVActivityIndicatorAnimationBallPulse.swift)
  • Duplicated block (12 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationBallGridBeat.swift)
  • Duplicated block (12 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationBallPulseRise.swift)
  • Duplicated block (12 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationBallZigZag.swift)
  • Duplicated block (12–13 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationBallGridBeat.swift)
  • Duplicated block (13–14 lines × 3) (Sources/Base/Animations/NVActivityIndicatorAnimationBallPulse.swift)
  • Duplicated block (15 lines × 3) (Sources/Base/Animations/NVActivityIndicatorAnimationOrbit.swift)
  • Duplicated block (16 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationBallZigZag.swift)
  • Duplicated block (24 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationBallBeat.swift)
  • Duplicated block (25 lines × 2) (Sources/Base/Animations/NVActivityIndicatorAnimationBallScaleRipple.swift)
  • Duplicated block (3–11 lines × 4) (Sources/Base/Animations/NVActivityIndicatorAnimationLineScale.swift)
  • Duplicated block (3–13 lines × 5) (Sources/Base/Animations/NVActivityIndicatorAnimationCubeTransition.swift)
  • …and 32 more

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

Survey your own repository

ninjaprox/NVActivityIndicatorView 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 27 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 9777b047a904a8972ad81b48ecdaac394a24c5ce — 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-d00c643c3f66.