ChadCSong/ShineButton
71.7
Strong · 25 September 2026
1.4k
lines of production code
Kotlin
with Java
4
measurements over time
What this system is
Features
Demo app updated with Material 3 theming, dynamic colors, and new demo screens
The demo application now uses the Material 3 (Material You) theme, enabling dynamic colors via DynamicColors.applyToActivitiesIfAvailable in the App class. The main screen now includes a VectorDrawable-based ShineButton and buttons to navigate to new demo activities: a ListDemoActivity that displays a ListView of ShineButtons, a FragmentDemo that shows a fragment with ShineButtons, and a DialogDemo that places a ShineButton inside a Dialog. These additions provide updated examples of the ShineButton in list, fragment, and dialog contexts.
app/src · high confidence
ShineButton library migrated to Kotlin with new Compose integration
The ShineButton library has been rewritten in Kotlin, introducing new classes such as PorterImageView, PorterShapeImageView, and ShineButton. A new Jetpack Compose implementation, ShineButtonCompose, has been added to support modern Android UI development. The change also includes a local implementation of the QuartOutInterpolator to replace an external dependency, and adds unit tests for the interpolator and ShineParams.
shinebuttonlib/src · medium confidence
Behavioural changes
Added ProGuard configuration for ShineButton library
A new ProGuard rules file (proguard-rules.pro) was added to the shinebuttonlib module. This configuration ensures that the ShineButton custom view, its associated ShineParams class, and the OnCheckedChangeListener interface are preserved during code shrinking and obfuscation, preventing runtime errors caused by minification.
shinebuttonlib · medium confidence
Project modernization and documentation overhaul
The repository has been modernized with a new \.editorconfig\ for consistent code styling, a \.travis.yml\ for automated Android builds, and updated \.gitignore\ rules. Documentation is significantly improved with a comprehensive \README.md\ covering installation, usage, and features, alongside a new \CHANGELOG.md\ and \CONTRIBUTING.md\ files to guide contributors.
(repo-wide) · high confidence
Dependencies
Updated Gradle wrapper to version 7.5.1
The Gradle wrapper has been updated to use Gradle 7.5.1, ensuring the project uses a specific, modernized version of the Gradle build tool for consistent builds.
gradle · high confidence
Upgrade Android build configuration and dependencies
The project's build configuration has been updated to target Android SDK 34 and Java 8, with the library module now supporting Jetpack Compose via the Compose BOM and Kotlin 1.7.20. Dependencies have been modernized to AndroidX (e.g., AppCompat 1.6.1, Material 1.11.0) and Gradle 7.4.2, enabling the use of modern Android development features.
(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 50 → 72 (+21.8)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 97 (-2.2)
- Architecture 94 → 100 (+5.9)
- Maturity 54 → 62 (+8.6)
- Readiness 26 → 64 (+37.7)
- Security 84 → 95 (+11.5)
Resolved (10)
- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (39 lines × 2) (shinebuttonlib/src/main/java/com/sackcentury/shinebuttonlib/ShineButtonCompose.kt)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium: security finding (details withheld)
- No exposed public API
- No tests found
- Test reliability not included
- The Usage section only shows XML layout code ('<com.sackcentury.shinebuttonlib.ShineButton ...' with 'and') before being cut; the Java/Compose implementations and other unshown sections are not visible in this document. (README.md)
New (11)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Duplicated block (17 lines × 2) (shinebuttonlib/src/main/java/com/sackcentury/shinebuttonlib/ShineButtonCompose.kt)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- No ADRs found
- No dependency advisory monitoring
- ShineView.onDraw (cognitive 17) (shinebuttonlib/src/main/java/com/sackcentury/shinebuttonlib/ShineView.kt)
- TooManyMethods: ShineButton (shinebuttonlib/src/main/java/com/sackcentury/shinebuttonlib/ShineButton.kt)
- Workflow token permissions not restricted
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ChadCSong/ShineButton 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 91983d10e451ed1a294b1556283a6ac274c30c76 — 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-9630dbd8b4f7.