A Swift library for creating animated, interactive, and custom UIViewController transitions with a simple and flexible API.
Jelly is a Swift library designed for iOS developers to create animated, interactive, and custom view controller transitions and presentations. It solves the problem of UIKit's complex and verbose Transitioning API by providing a simple, declarative way to implement sophisticated animations like slide, cover, and fade effects with interactive gestures.
iOS developers building apps that require custom view controller animations, interactive transitions, or resizable presentations, particularly those looking to enhance user experience without deep diving into UIKit's transitioning protocols.
Developers choose Jelly because it dramatically reduces the boilerplate code needed for custom transitions, offers a clean and intuitive API, and provides advanced features like live updates and interactive gestures that are difficult to implement with native UIKit alone.
🌊 - Jelly is a library for animated, non-interactive & interactive viewcontroller transitions and presentations with the focus on a simple and yet flexible API.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Jelly abstracts UIKit's verbose Transitioning API, allowing developers to create slide, cover, and fade transitions with just a few lines of Swift code, as shown in the minimal setup example.
It enables interactive transitions with configurable drag modes and completion thresholds, making it easy to add swipe-to-dismiss functionality, detailed in the InteractionConfiguration section.
The Live Update API allows real-time adjustments to alignment, size, and corner radius of presented view controllers while they are visible, enhancing user experience with animated changes.
Offers a wide range of settings for size, direction, background style, and animation curves, with detailed documentation in the Jelly Wiki for fine-tuning presentations.
Some live update functions, like updating size, are not supported on all presentation types, such as Slide-Presentation, and can throw exceptions, limiting flexibility.
Developers must keep a strong reference to the Animator object to prevent it from being deallocated, as emphasized in the README, which adds complexity and risk of bugs.
Jelly is built for UIKit and does not support SwiftUI, making it less suitable for modern iOS apps using Apple's newer declarative UI framework.