Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/przemek-jablonski/casimir
Complex extension suite for Multiplatform Stack (SwiftUI, Combine, SPM, Async/Await)
https://github.com/przemek-jablonski/casimir
combine-framework extensions swift swiftui
Last synced: about 2 months ago
JSON representation
Complex extension suite for Multiplatform Stack (SwiftUI, Combine, SPM, Async/Await)
- Host: GitHub
- URL: https://github.com/przemek-jablonski/casimir
- Owner: przemek-jablonski
- License: mit
- Created: 2019-11-25T17:04:05.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-08-03T15:45:15.000Z (over 1 year ago)
- Last Synced: 2023-08-03T16:38:47.749Z (over 1 year ago)
- Topics: combine-framework, extensions, swift, swiftui
- Language: Swift
- Homepage:
- Size: 373 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Casimir
> "Met it wooden 🪵 and made it brickwalled 🧱" (Casimir the Great)Prebuilt and prepackaged code suite for rapid development using the multiplatform Apple Stack (SwiftUI, Combine, Concurrency)
## Usage
Some of the features:
- Easy architectural elements, like `ModelProtocol`, `Randomable`, `Selectable` and `LocalizedString`.
- Out-of-the-box custom loggers, such as logger for sending diagnostic data to Firebase as non-fatals.
- Custom Combine operators closing the gap with `Rx*`, such as `WithPrevious`, `PreventCompletion`, `Single`, `On` or `Retry`.
- Streamlining API for testing `Publisher` streams using `TestScheduler` and `TestSequence`.
- Hundreds of extensions to Apple's `Foundation`, including custom `Math` operations like `lerp` and also `LoremIpsum`s, `CURL` or `Errors`.
- Expanding core Apple APIs with reactive Combine support
- and more...## Installation
Add dependency to the project:
```swift
dependencies: [
...
.package(url: "https://github.com/przemek-jablonski/Casimir.git", exact: "6.0.0")
]
```Enable core library (`Casimir`):
```swift
.target(
name: "YourLibrary",
dependencies: [
.product(name: "Casimir", package: "Casimir"),
]
),
```Enable testing library (`Testimir`):
```swift
.testTarget(
name: "YourLibraryTests",
dependencies: [
.product(name: "Testimir", package: "Casimir"),
]
),
```## Platform Availability
iOS 15.0
iPadOS 15.0
tvOS 15.0
macOS 12.0
watchOS 8.0also compliant with Mac Catalyst