mirror of
https://github.com/samsonjs/NotificationTask.git
synced 2026-03-25 09:15:55 +00:00
Add a readme
This commit is contained in:
parent
084aadad84
commit
595f61ee43
2 changed files with 97 additions and 0 deletions
75
Readme.md
Normal file
75
Readme.md
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
# NotificationTask
|
||||
|
||||
[](https://0dependencies.dev)
|
||||
[](https://swiftpackageindex.com/samsonjs/NotificationTask)
|
||||
[](https://swiftpackageindex.com/samsonjs/NotificationTask)
|
||||
|
||||
## Overview
|
||||
|
||||
`NotificationTask` is
|
||||
|
||||
## Installation
|
||||
|
||||
The only way to install this package is with Swift Package Manager (SPM). Please [file a new issue][] or submit a pull-request if you want to use something else.
|
||||
|
||||
[file a new issue]: https://github.com/samsonjs/NotificationTask/issues/new
|
||||
|
||||
### Supported Platforms
|
||||
|
||||
This package is supported on iOS 16.0+ and macOS 12.0+.
|
||||
|
||||
### Xcode
|
||||
|
||||
When you're integrating this into an app with Xcode then go to your project's Package Dependencies and enter the URL `https://github.com/samsonjs/NotificationTask` and then go through the usual flow for adding packages.
|
||||
|
||||
### Swift Package Manager (SPM)
|
||||
|
||||
When you're integrating this using SPM on its own then add this to the list of dependencies your Package.swift file:
|
||||
|
||||
```swift
|
||||
.package(url: "https://github.com/samsonjs/NotificationTask.git", .upToNextMajor(from: "0.1.0"))
|
||||
```
|
||||
|
||||
and then add `"NotificationTask"` to the list of dependencies in your target as well.
|
||||
|
||||
## Usage
|
||||
|
||||
The simplest example uses a closure that receives the notification:
|
||||
|
||||
```swift
|
||||
import NotificationTask
|
||||
|
||||
@MainActor class SimplestVersion {
|
||||
let task = NotificationTask(name: .NSCalendarDayChanged) { _ in
|
||||
print("The date is now \(Date.now)")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Example using context to avoid reference cycles with `self`:
|
||||
|
||||
```swift
|
||||
import NotificationTask
|
||||
|
||||
@MainActor class WithContext {
|
||||
var notificationTask: NotificationTask?
|
||||
|
||||
init() {
|
||||
notificationTask = NotificationTask(name: .NSCalendarDayChanged, context: self) { _self, _ in
|
||||
_self.dayChanged()
|
||||
}
|
||||
}
|
||||
|
||||
func dayChanged() {
|
||||
print("The date is now \(Date.now)")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The closure is async so you can await in there if you need to.
|
||||
|
||||
## License
|
||||
|
||||
Copyright © 2025 [Sami Samhuri](https://samhuri.net) <sami@samhuri.net>. Released under the terms of the [MIT License][MIT].
|
||||
|
||||
[MIT]: https://sjs.mit-license.org
|
||||
22
Tests/NotificationTaskTests/ReadmeExamples.swift
Normal file
22
Tests/NotificationTaskTests/ReadmeExamples.swift
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import Foundation
|
||||
@testable import NotificationTask
|
||||
|
||||
@MainActor class SimplestVersion {
|
||||
let task = NotificationTask(name: .NSCalendarDayChanged) { _ in
|
||||
print("The date is now \(Date.now)")
|
||||
}
|
||||
}
|
||||
|
||||
@MainActor class WithContext {
|
||||
var notificationTask: NotificationTask?
|
||||
|
||||
init() {
|
||||
notificationTask = NotificationTask(name: .NSCalendarDayChanged, context: self) { _self, _ in
|
||||
_self.dayChanged()
|
||||
}
|
||||
}
|
||||
|
||||
func dayChanged() {
|
||||
print("The date is now \(Date.now)")
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue