{"id":2458,"url":"https://github.com/LowKostKustomz/StatusAlert","last_synced_at":"2025-08-06T16:30:53.471Z","repository":{"id":45705527,"uuid":"113487978","full_name":"LowKostKustomz/StatusAlert","owner":"LowKostKustomz","description":"Display Apple system-like self-hiding status alerts. It is well suited for notifying user without interrupting user flow in iOS-like way.","archived":false,"fork":false,"pushed_at":"2023-09-12T08:49:23.000Z","size":54469,"stargazers_count":846,"open_issues_count":1,"forks_count":50,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-12-01T11:06:55.830Z","etag":null,"topics":["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"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LowKostKustomz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-12-07T19:02:16.000Z","updated_at":"2024-08-28T06:14:03.000Z","dependencies_parsed_at":"2024-01-29T18:06:32.516Z","dependency_job_id":null,"html_url":"https://github.com/LowKostKustomz/StatusAlert","commit_stats":{"total_commits":89,"total_committers":5,"mean_commits":17.8,"dds":0.0898876404494382,"last_synced_commit":"9997022d9fe4ba30e01175b52fde7a1e2b1cd5d7"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LowKostKustomz%2FStatusAlert","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LowKostKustomz%2FStatusAlert/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LowKostKustomz%2FStatusAlert/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LowKostKustomz%2FStatusAlert/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LowKostKustomz","download_url":"https://codeload.github.com/LowKostKustomz/StatusAlert/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228733696,"owners_count":17964200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-01-05T20:16:14.243Z","updated_at":"2024-12-09T16:31:00.269Z","avatar_url":"https://github.com/LowKostKustomz.png","language":"Swift","funding_links":[],"categories":["UI","Libs","UI [🔝](#readme)"],"sub_categories":["Alert \u0026 Action Sheet","UI","Other free courses"],"readme":"![Author StatusAlert](https://gitlab.com/ZEBSTER/FrameworksAssets/-/raw/master/StatusAlert/StatusAlertHeader.png)\n\n\u003cp align=\"center\"\u003e\n\u003ca\u003e\u003cimg alt=\"Swift\" src=\"https://img.shields.io/badge/Swift-3.2+-F57C00.svg?style=flat\" /\u003e\u003c/a\u003e\n\u003ca\u003e\u003cimg alt=\"Objective-C\" src=\"https://img.shields.io/badge/Objective--C-supported-1976D2.svg?style=flat\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/LowKostKustomz/StatusAlert/wiki\"\u003e\u003cimg alt=\"Wiki\" src=\"https://img.shields.io/badge/Wiki-available-lightgrey.svg?style=flat\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://raw.githubusercontent.com/LowKostKustomz/StatusAlert/master/LICENSE\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/cocoapods/l/StatusAlert.svg?style=flat\u0026label=License\" /\u003e\u003c/a\u003e\n\u003ca\u003e\u003cimg alt=\"Platform\" src=\"https://img.shields.io/cocoapods/p/StatusAlert.svg?style=flat\u0026label=Platform\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cb\u003eDependency managers\u003c/b\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"http://cocoapods.org/pods/StatusAlert\"\u003e\u003cimg alt=\"CocoaPods\" src=\"https://img.shields.io/cocoapods/v/StatusAlert.svg?style=flat\u0026label=CocoaPods\u0026colorB=d32f2f\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Carthage/Carthage\"\u003e\u003cimg alt=\"Carthage\" src=\"https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://swiftpkgs.ng.bluemix.net/package/LowKostKustomz/StatusAlert\"\u003e\u003cimg alt=\"SwiftPackageManager\" src=\"https://img.shields.io/badge/Swift_Package_Manager-compatible-F57C00.svg?style=flat\" /\u003e\u003c/a\u003e\n\u003cbr /\u003e\n\u003c/p\u003e\n\n\n\u003cp align=\"center\"\u003e\n\t\u003cstrong\u003e\u003ca href=\"#features\"\u003e Features \u003c/a\u003e\u003c/strong\u003e |\n\t\u003cstrong\u003e\u003ca href=\"#installation\"\u003e Installation \u003c/a\u003e\u003c/strong\u003e |\n\t\u003cstrong\u003e\u003ca href=\"#usage\"\u003e Usage \u003c/a\u003e\u003c/strong\u003e |\n\t\u003cstrong\u003e\u003ca href=\"#customization\"\u003e Customization \u003c/a\u003e\u003c/strong\u003e\n\u003c/p\u003e\n\nStatusAlert 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.\n\nIt looks very similar to the alerts displayed in Podcasts, Apple Music and News apps.\n![System StatusAlert](https://raw.githubusercontent.com/LowKostKustomz/StatusAlert/master/Assets/iPhonesWithSystemAlerts.png)\n\n\n## Features\n\n* System-like look and feel\n* Reduce transparency mode support\n* VoiceOver support\n* Safe Areas support\n* Universal (iPhone \u0026 iPad)\n* Objective-C support\n\n## Requirements\n\n* Xcode 9.0 or later\n* iOS 9.0 or later\n* Swift 3.2 or later\n\n## Installation\n\n### CocoaPods\n\nTo install StatusAlert using [CocoaPods](http://cocoapods.org), add the following line to your `Podfile`:\n\n```ruby\npod 'StatusAlert', '~\u003e 1.1.1'\n```\n\n### Carthage\n\nTo install StatusAlert using [Carthage](https://github.com/Carthage/Carthage), add the following line to your `Cartfile`:\n\n```ruby\ngithub \"LowKostKustomz/StatusAlert\" ~\u003e 1.1.1\n```\n\n### Swift Package Manager\n\nTo install StatusAlert using [Swift Package Manager](https://github.com/apple/swift-package-manager) add this to your dependencies in a `Package.swift` file:\n\n```swift\ndependencies: [\n    .package(url: \"https://github.com/LowKostKustomz/StatusAlert.git\", .exact(\"1.1.1\"))\n]\n```\n\n### Manual installation\n\nYou can also add this project:\n * as git submodule\n * simply download and copy source files to your project\n\n### Objective-C integration\n\nStatusAlert is fully compatible with Objective-C. To import it to your project just add the following line:\n\n```objectiveс\n@import StatusAlert;\n```\n\n## Demo\n\nDemo application is included in the `StatusAlert` workspace. To run it clone the repo.\n\n![Demo StatusAlert](https://raw.githubusercontent.com/LowKostKustomz/StatusAlert/master/Assets/iPhonesWithStatusAlert.png)\n\n## Usage\n\n```swift\n// Importing framework\nimport StatusAlert\n\n// Creating StatusAlert instance\nlet statusAlert = StatusAlert()\nstatusAlert.image = UIImage(named: \"Some image name\")\nstatusAlert.title = \"StatusAlert title\"\nstatusAlert.message = \"Message to show beyond title\"\nstatusAlert.canBePickedOrDismissed = isUserInteractionAllowed\n\n// Presenting created instance\nstatusAlert.showInKeyWindow()\n```\n\u003e All the alert components (`image`, `title`, `message`) are optional, but at least one should be present. Otherwise `show()` method will be ignored.\n\u003e\n\u003e **IMPORTANT**\n\u003e  \u003e The alert must be presented only from the main thread, otherwise application will crash with an appropriate error.\n\n## Customization\n\n\u003e [Wiki](https://github.com/LowKostKustomz/StatusAlert/wiki) with more content and examples available\n\n### Different configurations\n\nPresent alert with any set of image, title and message\n\n### Vertical position\n\nDisplay alert anywhere you want, either on the top, in the center or at the bottom of the view, and with any offset.\n\n### Appearance\n\nYou 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\n\n```swift\nvar titleFont: UIFont\nvar messageFont: UIFont\nvar tintColor: UIColor\nvar backgroundColor: UIColor\nvar blurStyle: UIBlurEffect.Style\n```\n\n### Dismissal\n\nAlert will hide itself after 2 seconds timeout.\n\nYou 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.\n\n## Apps Using _StatusAlert_\n\n[BitxfyAppStoreLink]: https://bitxfy.com\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://bitxfy.com\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/LowKostKustomz/StatusAlert/master/Assets/BitxfyIcon.png\" align=\"center\" width=\"40\"\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003cstrong\u003e\u003ca href=\"https://bitxfy.com\"\u003e\nBitxfy\n\u003c/strong\u003e\n\u003c/p\u003e\n\n[![BitxfyScreenShot](https://raw.githubusercontent.com/LowKostKustomz/StatusAlert/master/Assets/BitxfyStatusAlert.png)][BitxfyAppstoreLink]\n\n[NotifyMeAppStoreLink]: https://apps.apple.com/us/app/notifyme-remind-alert-push/id1512269708?ls=1\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://apps.apple.com/us/app/notifyme-remind-alert-push/id1512269708?ls=1\"\u003e\n\u003cimg src=\"../master/Assets/ReminderBotIcon.png?raw=true\" align=\"center\" width=\"40\"\u003e\n\u003c/a\u003e\n\u003cbr\u003e\n\u003cstrong\u003e\u003ca href=\"https://apps.apple.com/us/app/notifyme-remind-alert-push/id1512269708?ls=1\"\u003e\nNotifyMe\n\u003c/strong\u003e\n\u003c/p\u003e\n\n[![NotifyMeScreenShot](../master/Assets/ReminderBotStatusAlert.png?raw=true)][NotifyMeAppStoreLink]\n\n\u003e Feel free to submit pull request if you are using this framework in your apps.\n\n## Author\n\n[FrameworksRepo]: https://github.com/LowKostKustomz/Frameworks\n\n[![Author ActionsList](https://gitlab.com/ZEBSTER/FrameworksAssets/-/raw/master/StatusAlert/StatusAlertAuthor.png)][FrameworksRepo]\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://twitter.com/LowKostKustomz\"\u003e\u003cimg alt=\"https://twitter.com/LowKostKustomz\" src=\"https://gitlab.com/ZEBSTER/FrameworksAssets/-/raw/master/Socials/Twitter.png\" width=\"80\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://www.instagram.com/lowkostkustomz/\"\u003e\u003cimg alt=\"https://www.instagram.com/lowkostkustomz/\" src=\"https://gitlab.com/ZEBSTER/FrameworksAssets/-/raw/master/Socials/Instagram.png\" width=\"80\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://stackoverflow.com/users/9076809/lowkostkustomz\"\u003e\u003cimg alt=\"https://stackoverflow.com/users/9076809/lowkostkustomz\" src=\"https://gitlab.com/ZEBSTER/FrameworksAssets/-/raw/master/Socials/StackOverflow.png\" width=\"80\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://www.linkedin.com/in/yehor-miroshnychenko\"\u003e\u003cimg alt=\"https://www.linkedin.com/in/yehor-miroshnychenko\" src=\"https://gitlab.com/ZEBSTER/FrameworksAssets/-/raw/master/Socials/LinkedIn.png\" width=\"80\"/\u003e\u003c/a\u003e\n\u003ca href=\"mierosh@gmail.com\"\u003e\u003cimg alt=\"mierosh@gmail.com\" src=\"https://gitlab.com/ZEBSTER/FrameworksAssets/-/raw/master/Socials/Email.png\" width=\"80\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/LowKostKustomz/Frameworks\"\u003e\u003cimg alt=\"https://github.com/LowKostKustomz/Frameworks\" src=\"https://gitlab.com/ZEBSTER/FrameworksAssets/-/raw/master/Socials/Portfolio.png\" width=\"80\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## License\n\n\u003e The MIT License (MIT)\n\u003e\n\u003e Copyright (c) 2017-2018 LowKostKustomz \u003cmierosh@gmail.com\u003e\n\u003e\n\u003e Permission is hereby granted, free of charge, to any person obtaining a copy\n\u003e of this software and associated documentation files (the \"Software\"), to deal\n\u003e in the Software without restriction, including without limitation the rights\n\u003e to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\u003e copies of the Software, and to permit persons to whom the Software is\n\u003e furnished to do so, subject to the following conditions:\n\u003e \n\u003e The above copyright notice and this permission notice shall be included in\n\u003e all copies or substantial portions of the Software.\n\u003e \n\u003e THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\u003e IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\u003e FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\u003e AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\u003e LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\u003e OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\u003e THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLowKostKustomz%2FStatusAlert","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLowKostKustomz%2FStatusAlert","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLowKostKustomz%2FStatusAlert/lists"}