# SPAlert **Popup from Apple Music & Feedback in AppStore**. Contains `Done`, `Heart` & `Message` presets. `Done` preset include animation. Also support Dark Mode. I clone Apple's alerts as much as possible. You can find this alerts in AppStore after feedback and after added song to library in Apple Music.

If you like the project, do not forget to `put star ★` and follow me on GitHub. For help project, see [Сooperation](#сooperation) section. I am use it in app [Debts - Spending tracker](https://itunes.apple.com/app/id1446635818). You can bue source code this app in my store for iOS developers: [![xcode-shop.com](https://github.com/ivanvorobei/SPPermissions/blob/master/Assets/Buttons/xcode-shop.svg)](https://xcode-shop.com) [![https://github.com/ivanvorobei](https://github.com/ivanvorobei/SPPermissions/blob/master/Assets/Buttons/follow-me-on-github.svg)](https://github.com/ivanvorobei) ## Navigate - [Requirements](#requirements) - [Installation](#installation) - [CocoaPods](#cocoapods) - [Swift Package Manager](#swift-package-manager) - [Carthage](#carthage) - [Manually](#manually) - [Quick Start](#quick-start) - [Usage](#usage) - [Duration](#duration) - [Dark Mode](#dark-mode) - [Layout](#layout) - [Dismiss by Tap](#dismiss-by-tap) - [Haptic](#haptic) - [Corner Radius](#corner-radius) - [Сooperation](#сooperation) - [License](#license) ## Requirements Swift `4.2` & `5.0`. Ready for use on iOS 10+ ## Installation ### CocoaPods: [CocoaPods](https://cocoapods.org) is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate `SPAlert` into your Xcode project using CocoaPods, specify it in your `Podfile`: ```ruby pod 'SPAlert' ``` ### Swift Package Manager The [Swift Package Manager](https://swift.org/package-manager/) is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies. To integrate `SPAlert` into your Xcode project using Xcode 11, specify it in `File > Swift Packages > Add`: ```ogdl https://github.com/ivanvorobei/SPAlert ``` ### Carthage [Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate `SPAlert` into your Xcode project using Carthage, specify it in your `Cartfile`: ```ogdl github "ivanvorobei/SPAlert" ``` ### Manually If you prefer not to use any of dependency managers, you can integrate `SPAlert` into your project manually. Put `Source/SPAlert` folder in your Xcode project. Make sure to enable `Copy items if needed` and `Create groups`. ## Quick Start For best experience, I recommend call alerts by `SPAlert`. These functions are updated regularly and show as Apple way. I focus on presets: ```swift SPAlert.present(title: "Added to Library", preset: .done) ``` If you want use custom image, use func: ```swift SPAlert.present(title: "Love", message: "We'll recommend more like this in For You", image: UIImage(named: "Heart")!) ``` For show simple text message, use: ```swift SPAlert.present(message: "Empty UITextField") ``` ## Usage Sometimes it may require deep customization. In this section, I will show you what you can do. ### Duration To change the time that the `SPAlert` will be shown, use property `duration`: ```swift let alertView = SPAlertView(title: "Added to Library", message: nil, preset: SPAlertPreset.done) alertView.duration = 3 alertView.present() ``` ### Dark Mode Dark Mode no need additional configuration. As soon as the user change the interface to dark, all alerts will appear dark. For check state of user appearance I am use `traitCollection`: ```swift if self.traitCollection.userInterfaceStyle == .dark { return true } ``` It available since iOS 12, for early using always Light Mode. ### Layout Here you can change the sizes and spaces: ```swift alertView.layout.topSpace = 18 alertView.layout.iconHeight = 25 ``` For more properties see class. ### Dismiss by Tap If you click on the alert, it will disappear ahead of time. This can be disabled: ```swift alertView.dismissByTap = false ``` ### Haptic If you use presets, the vibro-response will be start automatically. For customize this, you need set property `haptic`: ```swift alertView.haptic = .success ``` For disable haptic, set it to `.none`. ### Corner Radius I use a corner radius like an Apple. If you need to change it, see the property `cornerRadius`: ```swift alertView.layer.cornerRadius = 40 ``` ## Сooperation The development of this project is completely free. If you can make a contribution, it will help development. Here list of task what need do: - Fix mistakes in this Readme and docs. My English so bad. Good create pull request. - Add docs in source files. Description of public methods and parametrs. - Help me translate my app [Debts - Spending tracker](https://itunes.apple.com/app/id1446635818) for other languages. ## License `SPAlert` is released under the MIT license. Check `LICENSE.md` for details.