CFNotify alternatives and similar libraries
Based on the "Alert" category.
Alternatively, view CFNotify alternatives based on common mentions on social networks and blogs.
-
Alerts Pickers
Advanced usage of UIAlertController and pickers based on it: Telegram, Contacts, Location, PhotoLibrary, Country, Phone Code, Currency, Date... -
SwiftEntryKit
SwiftEntryKit is a presentation library for iOS. It can be used to easily display overlays within your iOS apps. -
NotificationBanner
The easiest way to display highly customizable in app notification banners in iOS -
PopupDialog
A simple, customizable popup dialog for iOS written in Swift. Replaces UIAlertController alert style. -
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 -
Jelly
๐ - Jelly is a library for animated, non-interactive & interactive viewcontroller transitions and presentations with the focus on a simple and yet flexible API. -
MijickPopupView
Popups, popovers, sheets, alerts, toasts, banners, (...) presentation made simple. Written with and for SwiftUI. -
CDAlertView
Highly customizable alertview and alert/notification/success/error/alarm popup written in Swift -
SPAlert
DISCONTINUED. Native alert from Apple Music & Feedback. Contains Done, Heart & Message and other presets. [Moved to: https://github.com/varabeis/SPAlert] -
StatusAlert
Display Apple system-like self-hiding status alerts. It is well suited for notifying user without interrupting user flow in iOS-like way. -
SPIndicator
Floating indicator, mimicrate to indicator which appear when silent mode switched. Can be present from top and bottom. Interactive with gesters. -
Indicate
Interactive notification pop-over (aka "Toast) modeled after the iOS AirPods and Apple Pencil indicator.
CodeRabbit: AI Code Reviews for Developers

* 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 CFNotify or a related project?
README
CFNotify
CFNotify is written in Swift. Using UIKit Dynamics
as animator. It can make ANY UIView
object draggable and throwable. This library mainly use for in-app notification and alerts. Let's notice and alert your users in more playable and fun way !
[Demo1](image/Demo1.gif) [Demo2](image/Demo2.gif) [Demo3](image/Demo3.gif)
Features
- [x] Work with ANY
UIView
object ! - [x] Using UIKit Dynamics. Light and Smooth !
- [x] Highly Customizable
- [x] Included three ready to use views:
CyberView
,ClassicView
,ToastView
- [x] Simple to implement
Requirements
- Swift 4.0+
- Xcode 9
- iOS 9.0+
Change Log
Please read [CHANGELOG.md](CHANGELOG.md).
Installation
#CFNotify
github "JT501/CFNotify"
Run carthage update
and then add CFNotify.framework and CFResources.bundle into your project
pod "CFNotify"
Getting Started
There is an example project inside the source code. You are suggested to have a look first and get familiar with this framework.
The Basics
This is the basic function with all default settings, design your own UIView
or use CFNotifyView
to create one easily.
CFNotify.present(view: UIView)
If you need more custom settings, create your own Config
and use the following function.
CFNotify.present(config: Config, view: UIView)
if you want custom tap
action, use the following function. (If you use tapHandler, it will override the default tap to hide action)
CFNotify.present(config: Config, view: UIView, tapHandler: (()->Void)?)
CFNotify
will put all the views to be shown in queue (First In First Out).
You can hide the view programmatically using the following functions.
CFNotify.hide() // hide the current view
CFNotify.hideAll() // hide all the views in queue (Clear the queue)
CFNotifyView
You can create an alert view quickly and easily by using CFNotifyView
class.
CFNotifyView
included 3 views currently: Cyber
, Classic
, Toast
.
Each style has 4 themes: Info
, Success
, Fail
, Warning
Each theme has 2 styles: Light
and Dark
- #### Cyber [CyberView](image/CyberView.png) ````swift // Use Pre-set theme let cyberView = CFNotifyView.cyberWith(title: "Title", body: "Body", theme: .info(.light))
//More customizations let customCyberView = CFNotifyView.cyberWith(titleFont: UIFont, titleColor: UIColor, bodyFont: UIFont, bodyColor: UIColor, backgroundColor: UIColor, blurStyle: UIBlurEffectStyle)
* #### Classic

````swift
// Use Pre-set theme
let classicView = CFNotifyView.classicWith(title: "Title",
body: "Body",
theme: .success(.light))
//More customizations
let customClassicView = CFNotifyView.classicWith(titleFont: UIFont,
titleColor: UIColor,
bodyFont: UIFont,
bodyColor: UIColor,
backgroundColor: UIColor)
- #### Toast [ToastView](image/ToastView.png) ````swift // Use Pre-set theme let toastView = CFNotifyView.toastWith(text: "Text", theme: .fail(.dark))
//More customizations let customToastView = CFNotifyView.toastWith(text: String, textFont: UIFont, textColor: UIColor, backgroundColor: UIColor)
### Config
You can config `CFNotify` using `Config` class. `Config` class included lots of properties, the following three are the most common:
* `initPosition` : where the view is born
* `appearPosition` : where the view appear position
* `hideTime` : the view will automatically hide after `hideTime` (default is 3 sec)
Example:
````swift
var classicViewConfig = CFNotify.Config()
classicViewConfig.initPosition = .top(.random) //the view is born at the top randomly out of the boundary of screen
classicViewConfig.appearPosition = .top //the view will appear at the top of screen
classicViewConfig.hideTime = .never //the view will never automatically hide
Delegate
CFNotify
provides Delegate methods for some of common events.
You need to conform to the CFNotifyDelegate
.
func cfNotifyDidAppear() {}
func cfNotifyStartDragging(atPoint: CGPoint) {}
func cfNotifyIsDragging(atPoint: CGPoint) {}
func cfNotifyEndDragging(atPoint: CGPoint) {}
func cfNotifyDidDisappear() {}
func cfNotifyIsTapped() {}
To-Do List
- [ ] Add SPM support
- [ ] Improve the example app
- [ ] Add alert view with buttons
- [ ] Full documentation
Bugs and issues
If you find any bugs or encounter some issues regard to this framework, please feel free to open a new issue in Issues page.
Contribute
You are welcome to contribute into this project, feel free to Pull Request.
License
CFNotify is released under an MIT License. See [LICENSE](LICENSE) for details.
*Note that all licence references and agreements mentioned in the CFNotify README section above
are relevant to that project's source code only.