Swiftlier
Swiftlier copied to clipboard
Library for common enhancements to the Swift language developed by Apple
Library for common enhancements to the Swift language.
For additional enhancments to more specific platforms see these other repositories:
- SwiftlierUIKit – UIKit helpers and improvements
- SwiftlierCLI – Command-Line Enhancements for macOS and Linux
Goals
Create a common library of generic extensions and types that are useful across many projects. This would allow developers to use more advanced features while maintaining readability. You are encouraged to submit pull requests or issues with additional features that we can discuss to see if they should be added.
Installation
Using Swift Package Manager
import PackageDescription
let package = Package(
name: "web",
dependencies: [
.package(url: "https://github.com/drewag/Swiftlier.git", from: "5.0.0"),
]
)
Code Coverage
Coding
- [x] Coding+Helpers
- [x] CodingKeys
- [x] NativeTypesDecoder
- [x] NativeTypesEncoder
- [x] PercentEncodable
- [x] SpecDecoder
Enhancements
- [x] Collection+Enhancements
- [x] Data+Processing
- [x] Date+Helpers
- [x] DispatchQueue+Enhancements
- [x] String+Enhancements
- [x] URL+Helpers
Errors
- [ ] AnySwiftlierError
- [ ] GenericSwiftlierError
- [ ] OperationBasedError
- [ ] OtherSwiftlierError
- [ ] SwiftlierError
- [ ] SwiftlierResult
FileSystem
- [ ] FileSystem+iOSDirectories
- [ ] FileSystem
- [x] Path+Coding
- [x] Path
- [x] PersistenceService
- [ ] ReferenceTypePersistenceService
- [ ] ValueTypePersistenceService
Formatting
- [x] Bool+Formatting
- [x] Data+Base64
- [ ] Date+Formatting
- [x] Double+Formatting
- [x] HeartRateFormatter
- [ ] TimeInterval+Formatting
Model
Containers
- [ ] BinarySearchTree
- [ ] LimitedQueue
- [ ] OrderedDictionary
- [x] PatchyRange
- [ ] SelectableValue
- [ ] Syncable
- [ ] WeakWrapper
Observable
- [x] EventCenter
- [x] MultiCallback
- [x] Observable
- [ ] ObservableArray
- [ ] ObservableDictionary
- [ ] ObservableReference
Structured
- [x] JSON
- [x] NativeTypesStructured
- [x] Structured
- [x] XML
Types
- [x] Age
- [x] AlwaysEqual
- [x] Angle
- [x] Day
- [x] EmailAddress
- [x] HTML
- [x] Mass
- [ ] Price
- [ ] UniquelyIdentifiable
Streams
- [ ] CSVStreamReader
- [ ] DelimiterStreamReader
- [ ] StreamReader
Testing
- [ ] Date+Testable
- [ ] URLSession+Testing