Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/LowKostKustomz/StatusAlert

Display Apple system-like self-hiding status alerts. It is well suited for notifying user without interrupting user flow in iOS-like way.
https://github.com/LowKostKustomz/StatusAlert

accessibility alert apple carthage cocoapods human-interface-guidelines ios objective-c private private-api private-framework swift swift-package-manager swift3 swift4 system ui uikit voice-over

Last synced: 3 months ago
JSON representation

Display Apple system-like self-hiding status alerts. It is well suited for notifying user without interrupting user flow in iOS-like way.

Awesome Lists containing this project

README

        

![Author StatusAlert](https://gitlab.com/ZEBSTER/FrameworksAssets/-/raw/master/StatusAlert/StatusAlertHeader.png)


Swift
Objective-C
Wiki
License
Platform



Dependency managers


CocoaPods
Carthage
SwiftPackageManager



Features |
Installation |
Usage |
Customization

StatusAlert is an iOS framework that displays status alerts similar to Apple's system self-hiding alerts. It is well suited for notifying user without interrupting user flow in iOS-like way.

It looks very similar to the alerts displayed in Podcasts, Apple Music and News apps.
![System StatusAlert](https://raw.githubusercontent.com/LowKostKustomz/StatusAlert/master/Assets/iPhonesWithSystemAlerts.png)

## Features

* System-like look and feel
* Reduce transparency mode support
* VoiceOver support
* Safe Areas support
* Universal (iPhone & iPad)
* Objective-C support

## Requirements

* Xcode 9.0 or later
* iOS 9.0 or later
* Swift 3.2 or later

## Installation

### CocoaPods

To install StatusAlert using [CocoaPods](http://cocoapods.org), add the following line to your `Podfile`:

```ruby
pod 'StatusAlert', '~> 1.1.1'
```

### Carthage

To install StatusAlert using [Carthage](https://github.com/Carthage/Carthage), add the following line to your `Cartfile`:

```ruby
github "LowKostKustomz/StatusAlert" ~> 1.1.1
```

### Swift Package Manager

To install StatusAlert using [Swift Package Manager](https://github.com/apple/swift-package-manager) add this to your dependencies in a `Package.swift` file:

```swift
dependencies: [
.package(url: "https://github.com/LowKostKustomz/StatusAlert.git", .exact("1.1.1"))
]
```

### Manual installation

You can also add this project:
* as git submodule
* simply download and copy source files to your project

### Objective-C integration

StatusAlert is fully compatible with Objective-C. To import it to your project just add the following line:

```objectiveс
@import StatusAlert;
```

## Demo

Demo application is included in the `StatusAlert` workspace. To run it clone the repo.

![Demo StatusAlert](https://raw.githubusercontent.com/LowKostKustomz/StatusAlert/master/Assets/iPhonesWithStatusAlert.png)

## Usage

```swift
// Importing framework
import StatusAlert

// Creating StatusAlert instance
let statusAlert = StatusAlert()
statusAlert.image = UIImage(named: "Some image name")
statusAlert.title = "StatusAlert title"
statusAlert.message = "Message to show beyond title"
statusAlert.canBePickedOrDismissed = isUserInteractionAllowed

// Presenting created instance
statusAlert.showInKeyWindow()
```
> All the alert components (`image`, `title`, `message`) are optional, but at least one should be present. Otherwise `show()` method will be ignored.
>
> **IMPORTANT**
> > The alert must be presented only from the main thread, otherwise application will crash with an appropriate error.

## Customization

> [Wiki](https://github.com/LowKostKustomz/StatusAlert/wiki) with more content and examples available

### Different configurations

Present alert with any set of image, title and message

### Vertical position

Display alert anywhere you want, either on the top, in the center or at the bottom of the view, and with any offset.

### Appearance

You can customize a single alert's appearance via the `StatusAlert`'s `appearance` property or for all alerts at once with `StatusAlert.Appearance`'s `common` property

```swift
var titleFont: UIFont
var messageFont: UIFont
var tintColor: UIColor
var backgroundColor: UIColor
var blurStyle: UIBlurEffect.Style
```

### Dismissal

Alert will hide itself after 2 seconds timeout.

You can change alert showing duration by setting `alertShowingDuration` property. You also can set `canBePickedOrDismissed` property to `true`. After that you will be able to dismiss the alert manually by tapping it and delay dismissal by long tapping the alert.

## Apps Using _StatusAlert_

[BitxfyAppStoreLink]: https://bitxfy.com








Bitxfy

[![BitxfyScreenShot](https://raw.githubusercontent.com/LowKostKustomz/StatusAlert/master/Assets/BitxfyStatusAlert.png)][BitxfyAppstoreLink]

[NotifyMeAppStoreLink]: https://apps.apple.com/us/app/notifyme-remind-alert-push/id1512269708?ls=1








NotifyMe

[![NotifyMeScreenShot](../master/Assets/ReminderBotStatusAlert.png?raw=true)][NotifyMeAppStoreLink]

> Feel free to submit pull request if you are using this framework in your apps.

## Author

[FrameworksRepo]: https://github.com/LowKostKustomz/Frameworks

[![Author ActionsList](https://gitlab.com/ZEBSTER/FrameworksAssets/-/raw/master/StatusAlert/StatusAlertAuthor.png)][FrameworksRepo]


https://twitter.com/LowKostKustomz
https://www.instagram.com/lowkostkustomz/
https://stackoverflow.com/users/9076809/lowkostkustomz
https://www.linkedin.com/in/yehor-miroshnychenko
mierosh@gmail.com
https://github.com/LowKostKustomz/Frameworks

## License

> The MIT License (MIT)
>
> Copyright (c) 2017-2018 LowKostKustomz
>
> Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the "Software"), to deal
> in the Software without restriction, including without limitation the rights
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> copies of the Software, and to permit persons to whom the Software is
> furnished to do so, subject to the following conditions:
>
> The above copyright notice and this permission notice shall be included in
> all copies or substantial portions of the Software.
>
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
> THE SOFTWARE.