SwiftEntryKit
Installation
SwiftEntryKit is compatible with Swift 5 as of release 1.0.0.SwiftEntryKit is compatible with Swift 4.2 as of release 0.8.1 .
Developers who use lower Swift version should install release 0.7.2.
CocoaPods
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:$ gem install cocoapods
source 'https://github.com/cocoapods/specs.git'platform :ios, '9.0'use_frameworks!pod 'SwiftEntryKit', '1.2.3'Then, run the following command:
$ pod install
Carthage
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update$ brew install carthage
To integrate SwiftEntryKit into your Xcode project using Carthage, specify the following in your Cartfile:
github "huri000/SwiftEntryKit" == 1.2.3
Accio
Accio is a decentralized dependency manager driven by SwiftPM that works for iOS/tvOS/watchOS/macOS projects.
You can install Accio with Homebrew using the following command:
$ brew tap JamitLabs/Accio https://github.com/JamitLabs/Accio.git$ brew install accioTo integrate SwiftEntryKit into your Xcode project using Accio, specify the following in your Package.swift manifest:
.package(url: "https://github.com/huri000/SwiftEntryKit", .exact("1.2.3"))
Dark Mode in the Example Project
You can tinker with the display mode using a segmented control on presets screen, forcing light and dark modes. All the presets are dark mode ready, but only some in the example project demonstrate dark mode capabilities.
Swift and Objective-C Interoperability
SwiftEntryKit's APIs use the Swift language exclusive syntax (enums, associated values, and more). Therefore, SwiftEntryKit cannot be referenced directly from an Objective-C file (.m, .h or .mm).Yet, it is pretty easy to integrate SwiftEntryKit into an Objective-C project using a simple .swift class that is a sort of adapter between SwiftEntryKit and your Objective-C code.This project demonstrates that using Carthage and CocoaPods.What's New?
🌑 1.1.4 - let there be dark
SwiftEntryKit is now dark mode ready, and user interface styles are supported pre iOS 13 / Xcode 11!
To know more about it, visit Change Log , and install the example project .
🤖 1.0.4 - automata
Accessibility in presets is now supported, enabling all kinds of robotic activity for host projects.
Features
- Banners or pop-ups are called Entries.
- Entries are displayed inside a separate UIWindow (of type EKWindow), so users are able to navigate the app freely while entries are being displayed in a non intrusive manner.
- The kit offers beautiful presets that can be themed with your own colors and fonts.
- Customization: Entries are highly customizable
- Can be positioned either at the top, center, or the bottom of the screen.
- Can be displayed within or outside the screen safe area.
- Can be stylized: have a border , drop-shadow and round corners .
- Their content and the surrounding background can be blurred, dimmed, colored or have a gradient style .
- Transition animations are customizable - entrance, exit and pop (by another entry).
- The user interaction with the entry or the screen can be intercepted.
- Entries can be enqueued or override previous entries using the precedence attribute.
- Each entry has a display priority attribute. That means that it can be dismissed only by other entry with an equal or higher priority.
- Presets support accessibility.
- Entries have an optional rubber banding effect while panning.
- Entries can be optionally dismissed using a simple swipe gesture .
- Entries can be optionally injected with lifecycle events : will and did appear/disappear.
- The status bar style is settable for the display duration of the entry.
- Supports navigation controllers & custom views as well!
Example Project
The example project contains various presets and examples you can use and modify as your like.
Example Project Installation
You can either use the terminal or git client such as Source Tree. The zip file doesn't contain a necessary dependency (QuickLayout).
Terminal Users
Run git clone with --recurse-submodules, to include QuickLayout as submodule, likewise:
$ git clone --recurse-submodules https://github.com/huri000/SwiftEntryKit.git
Git Client (Source Tree)
Cloning from https://github.com/huri000/SwiftEntryKit.git also setups QuickLayout as submodule.


