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.
- iOS 8.0+ / tvOS 9.0+ / watchOS 2.0+ / macOS 10.10+ / Ubuntu 14.04+
- Swift 4.2+
- To use with Swift 3 / Xcode 8.x please ensure you are using v3.1.1.
- To use with Swift 3.2 / Xcode 9.x please ensure you are using v3.2.0.
CocoaPods
To integrate SwifterSwift into your Xcode project using CocoaPods, specify it in your Podfile:
pod 'SwifterSwift'pod 'SwifterSwift/SwiftStdlib'pod 'SwifterSwift/Foundation'pod 'SwifterSwift/AppKit'pod 'SwifterSwift/MapKit'pod 'SwifterSwift/CoreGraphics'pod 'SwifterSwift/CoreLocation'pod 'SwifterSwift/SpriteKit'Carthage
To integrate SwifterSwift into your Xcode project using Carthage, specify it in your Cartfile:
github "SwifterSwift/SwifterSwift" ~> 4.0
Swift Package Manager
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: "4.0.0")
    ]
)
Note that the Swift Package Manager is still in early design and development, for more information checkout its GitHub Page
Manually
Add the extensions folder to your Xcode project to use all extensions, or a specific extension.
SwiftStdlib Extensions
- Array extensions
- Bool extensions
- Character extensions
- Collection extensions
- Dictionary extensions
- Double extensions
- Float extensions
- FloatingPoint extensions
- Int extensions
- Optional extensions
- Sequence extensions
- SignedInteger extensions
- SignedNumeric extensions
- String extensions
- StringProtocol extensions
Foundation Extensions
UIKit Extensions
- UIAlertController extensions
- UIBarButtonItem extensions
- UIButton extensions
- UICollectionView extensions
- UIDatePicker extensions
- UIFont extensions
- UIColor extensions
- UIImage extensions
- UIImageView extensions
- UILabel extensions
- UINavigationBar extensions
- UINavigationController extensions
- UINavigationItem extensions
- UISearchBar extensions
- UISegmentedControl extensions
- UISlider extensions
- UIStackView extensions
- UIStoryboard extensions
- UISwitch extensions
- UITabBar extensions
- UITableView extensions
- UITextField extensions
- UITextView extensions
- UIViewController extensions
- UIView extensions
- UIWindow extensions
SwifterSwift 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:
- Steven Deutsch and Luciano Almeida for their latest contributions to extensions, docs and tests.
- Paweł Urbanek for adding tvOS, watchOS, and macOS initial support and helping with extensions.
- Mert Akengin and Bashar Ghadanfar for designing project website and logo.
- Abdul Rahman Dabbour for helping document the project.
- Many thanks to all other contributors of this project.
SwifterSwift is released under the MIT license. See LICENSE for more information.