Jelly alternatives and similar libraries
Based on the "Alerts" category.
Alternatively, view Jelly alternatives based on common mentions on social networks and blogs.
-
NotificationBanner
The easiest way to display highly customizable in app notification banners in iOS -
JDStatusBarNotification
Highly customizable & feature rich notifications. Interactive dismiss. Custom Views. SwiftUI. Tap-to-hold. Progress. Written in Swift, compatible for ObjC! -
Whisper
:mega: Whisper is a component that will make the task of display messages and in-app notifications simple. It has three different views inside -
PMAlertController
PMAlertController is a great and customizable alert that can substitute UIAlertController -
RMDateSelectionViewController
This is an iOS control for selecting a date using UIDatePicker in an UIAlertController like manner -
CDAlertView
Highly customizable alertview and alert/notification/success/error/alarm popup written in Swift -
CFAlertViewController
It is a highly configurable iOS library which allows easy styling with built in styles as well as extra header and footer views so that you can make extremely unique alerts and action sheets. -
Swift-Prompts
A Swift library to design custom prompts with a great scope of options to choose from. -
TTGSnackbar
TTGSnackbar shows simple message and action button on the bottom or top of the screen with multi kinds of animation, which is written in Swift3 and inspired by Snackbar in Android. It also support showing custom view, icon image or multi action button. -
RMActionController
This is an iOS control for presenting any UIView in an UIAlertController like manner -
DOAlertController
Simple Alert View written in Swift, which can be used as a UIAlertController. (AlertController/AlertView/ActionSheet) -
RMPickerViewController
This is an iOS control for selecting something using UIPickerView in an UIAlertController like manner -
BPStatusBarAlert
BPStatusBarAlert is a library that allows you to easily make text-based alert that appear on the status bar and below navigation bar. -
RAlertView
AlertView, Ios popup window, A pop-up framework, Can be simple and convenient to join your project. IOS ๆ็คบๆก๏ผIOSๅผนๆก๏ผIOSๅผน็ช -
SnowGlobeFramework
Snow globe framework is delightful / slightly cheese easter egg for christmas season. Turns your awesome app into a snow globe, when user shake the device. -
AlertViewLoveNotification
A simple and attractive AlertView to ask permission to your users for Push Notification.
InfluxDB - Power Real-Time Data Analytics at Scale
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Jelly or a related project?
Popular Comparisons
README
Jelly is a library for animated, non-interactive & interactive viewcontroller transitions and presentations with the focus on a simple and yet flexible API.
With a few lines of source code, interactive UIViewController transitions and custom resizable UIViewController presentations can be created, without the use of the cumbersome UIKit Transitioning API.
var slidePresentation = SlidePresentation(direction: .left)
let animator = Animator(presentation: slidePresentation)
animator.prepare(viewController: viewController)
present(viewController, animated: true, completion: nil)
- Create a
Presentation
Object - Configure an
Animator
with the Presentation - Call the
prepare
Function - Use the native
UIViewController
presentation function.
class ViewController : UIViewController {
var animator: Jelly.Animator?
override func viewDidLoad() {
super.viewDidLoad()
let viewController = YourViewController()
let presentation = SlidePresentation(direction: .left)
animator = Animator(presentation:presentation)
animator?.prepare(presentedViewController: viewController)
present(viewController, animated: true, completion: nil)
}
}
DO NOT FORGET TO KEEP A STRONG ๐ช REFERENCE
Because the transitioningDelegate
of a UIViewController
is weak, you need to
hold a strong reference to the Animator
inside the UIViewController
you are presenting from or
the central object that maintains your presentations.
Interactive transitions can be activated for the slide and the cover transitions.
If the transitions are to be interactive, only an InteractionConfiguration
object has to be passed to the presentation.
Here 3 parameters play an important role. First, the completionThreshold
, which determines the percentage of the animation that is automatically completed as soon as the user finishes the interaction.
The second parameter is the actual type of interaction. Jelly offers the .edge
and the .canvas
type.
In an .edge
transition, the user must execute the gesture from the edge of the screen.
When using the .canvas
type, gesture recognizers are configured so that direct interaction with the presenting and presented view leads to the transition.
The last parameter is called mode
. Using the mode you can limit the interaction to presentation or dismiss interaction (default = [.present,.dismiss]
).
let viewController = YourViewController()
let interaction = InteractionConfiguration(presentingViewController: self, completionThreshold: 0.5, dragMode: .edge, mode: .dismiss)
let presentation = SlidePresentation(direction: .right, interactionConfiguration: interaction)
let animator = Animator(presentation: presentation)
animator.prepare(presentedViewController: viewController)
Jelly 2.0 also provides a new feature called LIVE UPDATE.
Using Jellys new Live Update API
it is now possible to update the alignment
, size
, margin-guards
and corner radius
when the viewcontroller is already visible.
These are the new live update functions provided by the Animator.
updateAlignment(alignment: PresentationAlignment, duration: Duration)
- Cover & FadeupdateVerticalAlignment(alignment: VerticalAlignment, duration: Duration)
- Cover & FadeupdateHorizontalAlignment(alignment: HorizontalAlignment, duration: Duration)
- Cover & FadeupdateSize(presentationSize: PresentationSize, duration: Duration)
- Cover & FadeupdateWidth(width: Size, duration: Duration)
- Cover, Fade and horizontal SlideupdateHeight(height: Size, duration: Duration)
- Cover, Fade and vertical SlideupdateMarginGuards(marginGuards: UIEdgeInsets, duration: Duration)
- Cover & FadeupdateCorners(radius: CGFloat, corners: CACornerMask, duration: Duration)
- Cover & Fade & Slide
Some of them will throw an exception if used on a not supported presentationType. For example: It is currently not possible to update the size on a Slide-Presentation.
The presentation types can be configured with various settings:
size
margin guards
direction
horizontal & vertical alignment
dimmed and blurred backgroundStyle
duration
presentation and dismiss curve
spring damping & velocity
corner specification
&corner radius
completion threshold
interactive drag mode
(edge or pan)interaction mode
(present, dismiss)parallax
(Just available on slide Presentations)
Each component is explained in more detail in the Jelly Wiki.
Deployment target of your App is >= iOS 11.0
Jelly is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Jelly', '~> 2.2.2'
Mentioned in iOS Dev Weekly by @Dave Verwer - Issue NO. 112
Mentioned in This Week in Swift by @Natasha the Robot - Issue No. 279
Sebastian Boldt, https://www.sebastianboldt.com
I am a mobile software architect and developer specializing in iOS. Passionate about creating awesome user experiences, designing beautiful user interfaces, and writing maintainable, structured, and best-practice orientated code. Continuously trying to improve skills and learn new technologies.
Jelly is available under the MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the Jelly README section above
are relevant to that project's source code only.