cbpowell/MarqueeLabel
40.0
Weak · 30 September 2026
2.4k
lines of production code
Swift
primary language
2
measurements over time
What this system is
MarqueeLabel is a Swift library that provides customizable scrolling text labels for iOS and tvOS applications. It supports modern distribution via Swift Package Manager and includes optional subclasses for specialized animation behaviors like single-shot scrolling. The system also provides demo applications and tvOS-specific frameworks to facilitate integration and testing across Apple platforms.
Features
Add tvOS support with MarqueeLabelTV framework and demo app
This change introduces a new Xcode project for tvOS, creating the MarqueeLabelTV framework target and a corresponding MarqueeLabelTVDemo application. The project structure includes the core MarqueeLabel.swift source file, a storyboard interface, and necessary resources like assets and privacy manifests, enabling developers to integrate and test the marquee label functionality on Apple TV.
MarqueeLabelTV/MarqueeLabelTV.xcodeproj · high confidence
Added Xcode scheme for MarqueeLabel framework
The project now includes a shared Xcode scheme (MarqueeLabel.xcscheme) that defines build, test, launch, profile, analyze, and archive actions for the MarqueeLabel framework. This enables developers to directly run, test, and archive the library within Xcode without needing to manually configure these actions.
MarqueeLabel/MarqueeLabel.xcodeproj/xcshareddata, MarqueeLabelTV/MarqueeLabelTV.xcodeproj/xcshareddata · high confidence
Added tvOS app icon and launch image assets
The MarqueeLabelTV framework now includes the necessary asset catalog entries for tvOS branding, specifically defining the App Icon & Top Shelf Image brand assets (including large and small icon stacks and top shelf images) and the launch image configuration. This allows the framework to be integrated into tvOS applications with proper visual identity and launch screen support.
MarqueeLabelTV/MarqueeLabelTV · high confidence
New MarqueeLabel extras for custom scroll behaviors
The Extras directory now includes two new subclasses for MarqueeLabel: NoReturnAnimation, which modifies LeftRight/RightLeft types to jump back to the home position after scrolling away instead of animating the return, and SingleShotOffscreenLabel, which scrolls the label offscreen once and clears the text to allow subsequent text changes to trigger a new scroll. These are provided as optional modifications with minimal support.
Extras · high confidence
New tvOS demo application for MarqueeLabel
A new tvOS demo project has been added, providing a sample application that showcases the MarqueeLabel library on Apple TV. The demo features a split-view interface with two table views: one demonstrating MarqueeLabel's scrolling text capabilities and another showing standard UILabel behavior for comparison. The implementation includes an AppDelegate, a Main storyboard, and a ViewController that manages focus-based updates to the marquee labels within table cells.
MarqueeLabelTV · high confidence
Swift Package Manager support for visionOS and iOS 12+
MarqueeLabel now supports installation via Swift Package Manager with explicit support for visionOS 1.0, alongside iOS 12 and tvOS 12. The package manifest also includes a privacy manifest resource, and the project has been cleaned up to focus on the Swift source file while excluding build artifacts from version control.
(repo-wide) · high confidence
Behavioural changes
Added Xcode workspace checks configuration
The project now includes an IDEWorkspaceChecks.plist file to manage Xcode workspace state, specifically enabling the 32-bit architecture warning check. This ensures consistent build environment settings across development sessions.
MarqueeLabel.xcworkspace/xcshareddata · high confidence
Demo app migrated to Swift with updated UI and interaction features
The MarqueeLabel demo application has been rewritten in Swift, replacing the previous Objective-C codebase. This update includes a modernized user interface with Xcode 8+ storyboard support, a new blur effect on the header, and the addition of SFSymbols. Functionally, the demo now showcases MarqueeLabel's IBInspectable properties directly in Interface Builder, randomizes label types in the push controller, and introduces new interaction capabilities such as tap-to-scroll and tap-to-pause behaviors on the labels.
MarqueeLabel · high confidence
Introduction of Xcode workspace for multi-target support
The project now includes an Xcode workspace that aggregates the main MarqueeLabel target alongside a new MarqueeLabelTV target for tvOS, along with an Extras group containing subclasses and categories. This structural change allows developers to build and test both iOS and tvOS versions of the library within a single Xcode workspace environment.
MarqueeLabel.xcworkspace · high confidence
MarqueeLabel for iOS now available as a Swift Package with privacy manifest
The MarqueeLabel library is now distributed as a Swift Package Manager package, replacing the previous Objective-C implementation with a pure Swift source file (MarqueeLabel.swift). This update includes a new PrivacyInfo.xcprivacy manifest declaring no data collection or tracking, and introduces several behavioral enhancements such as forced continuous scrolling, custom animation sequences, text coordinate conversion, and automatic font size shrinking to improve text layout and scrolling control.
Sources · high confidence
Swift-only framework structure established
The MarqueeLabel library has been restructured to support Swift exclusively. The project workspace now references only the Swift target (MarqueeLabelSwift), and the Swift framework bundle includes its standard Info.plist configuration, indicating the removal of the previous Objective-C codebase.
MarqueeLabel/MarqueeLabel.xcodeproj/project.xcworkspace, MarqueeLabel/MarqueeLabelSwift · medium confidence
Xcode project restructured for Swift-only MarqueeLabel framework
The MarqueeLabel project has been converted from Objective-C to Swift, removing the previous Objective-C codebase and umbrella header configuration. The Xcode project now builds a Swift framework (MarqueeLabel.framework) and a corresponding demo application, with source files organized into specific groups (Classes, Support, Interface, Extras). A privacy manifest (PrivacyInfo.xcprivacy) has been added to the framework resources to comply with modern iOS privacy requirements.
MarqueeLabel/MarqueeLabel.xcodeproj · 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 39 → 40 (+1.5)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 97 → 97 (+0.2)
- Architecture 66 → 90 (+24.4)
- Maturity 20 → 20 (+0.6)
- Readiness 24 → 21 (-3.1)
- Security 100 → 100 (+0.0)
Resolved (1)
- Hotspot: Sources/MarqueeLabel.swift (Sources/MarqueeLabel.swift)
New (4)
- Ambiguous lifecycle methods. restartLabel, resetLabel, and shutdownLabel have unclear distinctions. resetLabel might imply clearing state, while restartLabel implies re-triggering animation. shutdownLabel implies cleanup. Without clear documentation, these names are likely to be used interchangeably by developers, leading to inconsistent behavior.
- Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
- Overloaded method sizeThatFits with a boolean flag that changes behavior significantly (including/excluding buffers). This is confusing because sizeThatFits is a standard UIKit protocol method that should generally return the intrinsic size. The second overload suggests a non-standard calculation.
- Redundant operations for restarting labels associated with a view controller. One takes a direct reference, the other takes a Notification, but the intent (restarting labels for a VC) is identical. The Notification variant likely wraps the VC reference, creating an unnecessary API surface duplication.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
cbpowell/MarqueeLabel 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 30 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 c6b4da400c00dfd5db7a4f6e4915ca531d95fc49 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.