/Swiftlier

Library for common enhancements to the Swift language developed by Apple

Primary LanguageSwiftMIT LicenseMIT

Swiftlier - Enhanced SwiftLang

Swift platforms Swift Package Manager compatible MIT Build Status

Twitter @drewag Blog drewag.me

Library for common enhancements to the Swift language.

For additional enhancments to more specific platforms see these other repositories:

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

  • Coding+Helpers
  • CodingKeys
  • NativeTypesDecoder
  • NativeTypesEncoder
  • PercentEncodable
  • SpecDecoder

Enhancements

  • Collection+Enhancements
  • Data+Processing
  • Date+Helpers
  • DispatchQueue+Enhancements
  • String+Enhancements
  • URL+Helpers

Errors

  • AnySwiftlierError
  • GenericSwiftlierError
  • OperationBasedError
  • OtherSwiftlierError
  • SwiftlierError
  • SwiftlierResult

FileSystem

  • FileSystem+iOSDirectories
  • FileSystem
  • Path+Coding
  • Path
  • PersistenceService
  • ReferenceTypePersistenceService
  • ValueTypePersistenceService

Formatting

  • Bool+Formatting
  • Data+Base64
  • Date+Formatting
  • Double+Formatting
  • HeartRateFormatter
  • TimeInterval+Formatting

Model

Containers

  • BinarySearchTree
  • LimitedQueue
  • OrderedDictionary
  • PatchyRange
  • SelectableValue
  • Syncable
  • WeakWrapper

Observable

  • EventCenter
  • MultiCallback
  • Observable
  • ObservableArray
  • ObservableDictionary
  • ObservableReference

Structured

  • JSON
  • NativeTypesStructured
  • Structured
  • XML

Types

  • Age
  • AlwaysEqual
  • Angle
  • Day
  • EmailAddress
  • HTML
  • Mass
  • Price
  • UniquelyIdentifiable

Streams

  • CSVStreamReader
  • DelimiterStreamReader
  • StreamReader

Testing

  • Date+Testable
  • URLSession+Testing