SebastianBoldt/Jelly
62.3
Adequate · 1 October 2026
1.8k
lines of production code
Swift
primary language
2
measurements over time
What this system is
This system is a Swift library for iOS that manages interactive view controller transitions and presentations. It provides configurable animation styles such as slide, cover, and fade, supporting both standard and gesture-driven interactive dismissals. The library also enables live updates to presentation properties like size and alignment after a view controller is displayed.
Removals
Removal of placeholder animator file
The placeholder file ReplaceMe.swift has been removed from the Jelly-Animators module, cleaning up the codebase by eliminating the stub that was previously present in the Classes directory.
Jelly-Animators · high confidence
Removed Jelly-Animators example project
The Jelly-Animators example application project file (project.pbxproj) has been deleted from the repository. This removes the Xcode project configuration for the example app, including its source files, resources, and CocoaPods integration, effectively removing the standalone example project from the distribution.
Example/Jelly-Animators.xcodeproj · high confidence
Removed legacy iOS 8 example app scaffolding
The example application's legacy iOS 8-style scaffolding has been removed, specifically deleting the AppDelegate, LaunchScreen.xib, and Main.storyboard files. This cleanup eliminates the default boilerplate that was previously included in the Jelly-Animators example project.
Example/Jelly-Animators · high confidence
Behavioural changes
Example app UI rebuilt with new storyboard and launch screen
The Example app's user interface has been replaced with new Interface Builder files. A new LaunchScreen.xib now displays the Jelly logo on a splash screen, and Main.storyboard has been rewritten to feature a custom navigation controller and a menu table view. This menu organizes demo content into sections for Basic Transitions (such as Slide and Cover) and Interactive Transitions (such as Cover Menu), providing a structured way for users to explore the library's capabilities.
Example/Jelly/Base.lproj · high confidence
Example app project structure reorganized
The Example/Jelly.xcodeproj project file has been restructured to reflect the refactored example application. The source tree now explicitly groups Swift files into 'Views' (containing RoundedView.swift) and 'Enums' (containing ExampleType.swift), alongside the main application controllers. The project also formally includes the UnitTests target with its corresponding test spec file (JellyAnimatorSpec.swift) and configures the necessary Pods frameworks for both the example app and the test bundle.
Example/Jelly.xcodeproj · high confidence
Example app refactored to showcase interactive transitions and live updates
The Example/Jelly application has been restructured to demonstrate the library's interactive transition capabilities. The new demo includes specific examples for edge-based and canvas-based drag interactions, as well as non-interactive presentations. It also introduces a 'Live Update' section that allows users to dynamically modify presentation properties—such as size, alignment, corner radius, and margin guards—after the view controller has been presented. The app structure now uses a dedicated navigation controller with touch visualization and a menu to select between these various presentation modes.
Example/Jelly · high confidence
Example project renamed from Jelly-Animators to Jelly
The Xcode workspace and project files for the example application have been renamed from Jelly-Animators to Jelly. This change updates the internal project references and workspace configuration to reflect the new name, ensuring the example project builds correctly under the updated identifier.
Example/Jelly.xcodeproj/project.xcworkspace · high confidence
Example workspace configuration updated for modern Xcode compatibility
The Example project's workspace has been restructured to include explicit references to the main project and CocoaPods, alongside new workspace settings that disable Previews and enable the 32-bit warning check. This change aligns the example app with the legacy build system removal in Xcode 13, ensuring the workspace opens correctly without build system warnings.
Example/Jelly.xcworkspace · high confidence
Jelly library renamed and updated to version 2.3.0
The library has been renamed from Jelly-Animators to Jelly, with the CocoaPods pod name changing from 'Jelly-Animators' to 'Jelly'. The project now supports Swift 4.2 (as indicated by the .swift-version file) and Xcode 10 (updated in .travis.yml). Version 2.3.0 introduces support for Xcode 13 and Swift Package Manager (SPM), alongside existing Carthage support. The minimum deployment target remains iOS 10, though the README notes iOS 11.0 for some features. Interactive transitions, live updates, and various presentation configurations (slide, cover, fade) are documented as core capabilities.
(repo-wide) · high confidence
Refactored animation system with new Slide, Cover, and Fade animators and interactive transitions
The Jelly animation engine has been restructured to use dedicated animator classes (SlideAnimator, CoverAnimator, FadeAnimator) that leverage iOS 10+ UIViewPropertyAnimator for smoother, interruptible transitions. The Slide presentation now supports parallax effects on the underlying view, and interactive dismissal/presentation is handled by a new InteractionController that supports both canvas pan and screen-edge pan gestures. Additionally, the codebase introduces live-updatable presentation properties (alignment, size, corners) and extracts view size calculation logic into a separate ViewControllerSizeCalculator to improve testability and maintainability.
Jelly · high confidence
Scheme configuration updated for Jelly example app and unit tests
The Xcode scheme configuration for the example application has been renamed from 'Jelly-Animators' to 'Jelly', updating all buildable product references (e.g., Jelly\_Example.app) and container paths to reflect the new project name. Additionally, a new 'UnitTests' scheme was added to explicitly enable code coverage for the Jelly framework during test runs, and the existing example scheme was updated to target the renamed UnitTests test bundle.
Example/Jelly.xcodeproj/xcshareddata · high confidence
Test coverage
Removed placeholder Quick/Nimble test suite
The Example/Tests directory no longer includes the default Quick and Nimble test scaffold (Tests.swift), which previously contained intentional failing and passing examples for basic assertions and asynchronous waits. This removal clears the test target of boilerplate code that was not specific to the Jelly library's functionality.
Example/Tests · 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 64 → 62 (-2.2)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 97 → 97 (+0.0)
- Architecture 100 → 97 (-2.9)
- Maturity 48 → 48 (+0.0)
- Readiness 59 → 55 (-4.7)
- Security 95 → 95 (+0.0)
Resolved (1)
- Coverage not measured — test suite did not build
New (4)
- Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
- Redundant/Confusing API surface: Similar to alignment, updateSize accepts a composite PresentationSize (width + height), while updateWidth and updateHeight exist for individual dimensions. This mirrors the alignment inconsistency, creating a parallel confusion in the API design.
- Redundant/Confusing API surface: updateAlignment accepts a composite PresentationAlignmentProtocol which contains both vertical and horizontal alignments. However, separate methods updateVerticalAlignment and updateHorizontalAlignment exist to update individual components. This creates ambiguity: should a user call the composite method to update both, or the specific methods? If the composite method updates both atomically, the specific methods are redundant. If they are independent, the composite method's name is misleading (it implies a single alignment action rather than a batch update).
- Typo in property name: verticalAlignemt is missing the 'n' (should be verticalAlignment).
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
SebastianBoldt/Jelly 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 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 4494e6793acd259c193aea6e445fa4273e420ff2 — 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-e569280dd5e2.