SwifterSwift is a collection of over 500 native Swift extensions, with handy methods, syntactic sugar, and performance improvements for wide range of primitive data types, UIKit and Cocoa classes –over 500 in 1– for iOS, macOS, tvOS, watchOS and Linux.
SwifterSwift is Swift v5.0+ compatible starting from v5
v3.1.1.v3.2.0.To integrate SwifterSwift into your Xcode project using CocoaPods, specify it in your Podfile:
pod 'SwifterSwift'
pod 'SwifterSwift/SwiftStdlib'
pod 'SwifterSwift/Foundation'
pod 'SwifterSwift/UIKit'
pod 'SwifterSwift/AppKit'
pod 'SwifterSwift/MapKit'
pod 'SwifterSwift/CoreGraphics'
pod 'SwifterSwift/CoreLocation'
pod 'SwifterSwift/CryptoKit'
pod 'SwifterSwift/SpriteKit'
pod 'SwifterSwift/SceneKit'
pod 'SwifterSwift/StoreKit'
pod 'SwifterSwift/Dispatch'
pod 'SwifterSwift/WebKit'
pod 'SwifterSwift/HealthKit'
To integrate SwifterSwift into your Xcode project using Carthage, specify it in your Cartfile:
github "SwifterSwift/SwifterSwift" ~> 6.0
You can use The Swift Package Manager to install SwifterSwift by adding the proper description to your Package.swift file:
import PackageDescription
let package = Package(
name: "YOUR_PROJECT_NAME",
targets: [],
dependencies: [
.package(url: "https://github.com/SwifterSwift/SwifterSwift.git", from: "6.0.0")
]
)
Next, add SwifterSwift to your targets dependencies like so:
.target(
name: "YOUR_TARGET_NAME",
dependencies: [
"SwifterSwift",
]
),
Then run swift package update.
Note that the Swift Package Manager doesn't support building for iOS/tvOS/macOS/watchOS apps – see Accio in the next section for that.
Accio is a dependency manager based on SwiftPM which can build frameworks for iOS/macOS/tvOS/watchOS. Therefore the integration steps are exactly the same as described above. Once your Package.swift file is configured, you need to run accio update instead of swift package update though.
Add the SwifterSwift folder to your Xcode project to use all extensions, or a specific extension.
For your test targets you can also add the XCTest folder.
Array extensionsBidirectionalCollection extensionsBinaryFloatingPoint extensionsBool extensionsCharacter extensionsCollection extensionsComparable extensionsDecodableExtensions extensionsDefaultStringInterpolationExtensions extensionsDictionary extensionsDouble extensionsFloat extensionsFloatingPoint extensionsInt extensionsOptional extensionsRangeReplaceableCollection extensionsSequence extensionsSignedInteger extensionsSignedNumeric extensionsString extensionsStringProtocol extensionsCalendar extensionsData extensionsDate extensionsFileManager extensionsLocale extensionsMeasurement extensionsNSAttributedString extensionsNSPredicate extensionsURL extensionsURLRequest extensionsURLSession extensionsUserDefaults extensionsUIActivity extensionsUIAlertController extensionsUIApplication extensionsUIBarButtonItem extensionsUIButton extensionsUICollectionView extensionsUIColor extensionsUIDatePicker extensionsUIEdgeInsets extensionsUIFont extensionsUIGestureRecognizer extensionsUIImage extensionsUIImageView extensionsUILabel extensionsUILayoutPriority extensionsUINavigationBar extensionsUINavigationController extensionsUINavigationItem extensionsUIRefreshControl extensionsUIScrollView extensionsUISearchBar extensionsUISegmentedControl extensionsUISlider extensionsUIStackView extensionsUIStoryboard extensionsUISwitch extensionsUITabBar extensionsUITableView extensionsUITextField extensionsUITextView extensionsUIViewController extensionsUIView extensionsUIWindow extensionsCGColor extensionsCGFloat extensionsCGPoint extensionsCGSize extensionsCGRect extensionsCGVector extensionsSCNBox extensionsSCNCone extensionsSCNCapsule extensionsSCNCylinder extensionsSCNGeometry extensionsSCNMaterial extensionsSCNPlane extensionsSCNShape extensionsSCNSphere extensionsSCNVector3 extensionsSwifterSwift is a library of over 500 properties and methods, designed to extend Swift's functionality and productivity, staying faithful to the original Swift API design guidelines.
Check Examples.playground from the project for some cool examples!
Documentation for all extensions, with examples, is available at swifterswift.com/docs
We want your feedback.
Please refer to contributing guidelines before participating.
It is always nice to talk with other people using SwifterSwift and exchange experiences, so come join our Slack channel.
Special thanks to:
SwifterSwift is released under the MIT license. See LICENSE for more information.