/awesome-swift

A collaborative list of awesome swift resources. Feel free to contribute!

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome Swift Awesome

A curated list of awesome Swift frameworks, libraries, and software for iOS and OSX.

Contributing

Please take a quick look at the contribution guidelines first. If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you to all contributors; you rock!

Contents

Demo Apps

Some interesting demo/poc apps written in Swift.

iOS

A list of iOS Swift demo apps

Watch

A list of Apple watch enabled projects

  • Gulps - OS app for iOS and apple watch to monitor water consumption.
  • Soon - Countdown app for apple watch.
  • WatchOS 2 Sampler - WatcOS 2 Samples.

OS X

A list of OSX Swift demo apps

  • Allkdic - a status bar dictionary.
  • clock-saver - a clock screen saver for osx written in Swift.
  • dshb - OS X system monitor in Swift
  • Helium - floating web browser
  • Panda - a simple OSX menu bar application to enable/disable Yosemite dark mode.
  • RetinAssets - a simple app that generates missing images from a scaled images (3x -> 2x and 1x scale)
  • Swifter - http server written in Swift.

Dependency Managers

Dependency manager software for Swift.

  • carthage - a new dependency manager for Swift.
  • CocoaPods - the most used dependency manager for Objective-C and Swift (Swift supported since version 0.36.0).

Guides

An awesome list of Swift related guides.

Official Guide

Third party Guides

Style Guides

  • GitHub - Style guide & coding conventions for Swift projects.
  • Raywenderlich - Raywenderlich Swift guide, a must read.
  • SlideShare (LinkedIn) - Style guides that SlideShare (LinkedIn) uses for their Swift iOS app.
  • SwiftLint - A tool to enforce Swift coding conventions for your Swift code.

Editor Support

Support for your favorite editors.

Emacs

  • swift-mode - Emacs Swift support, including partial flycheck error support.

Vim

  • swift-vim - play Swift with vim editor.
  • vim-swift - adds Swift support to vim. It covers syntax, indenting, and more.
  • vim-polyglot - language pack for vim that includes vim-swift.

Libs

Here you can find a list of snippets and libs for your Swift projects.

Animation

Libs to help with animation

  • DKChainableAnimationKit - Easy to read and write chainable animations in Swift.
  • EasyAnimation - A Swift library to take the power of UIView.animateWithDuration(_:, animations:...) to a whole new level.
  • Presentation - A Swift library to help you to make tutorials, release notes and animated pages.
  • Spring - A library to simplify iOS animations in Swift.

Audio

Libs to work with audio

  • AudioPlayer - A wrapper around AVPlayer with some cool features.
  • MusicKit - A framework for composing and transforming music in Swift

API

Quick libs to get access to third party API services

Colors

Interesting snippets related to color management and utility.

Cryptography

Deal with cryptography method easily in Swift

Data Management

Core Data

No more pain with Core Data, here are some interesting libs to handle data management.

  • AERecord - super awesome Core Data wrapper library for iOS written in Swift.
  • AlecrimCoreData - a simple CoreData wrapper library written in Swift.
  • CoreStore - simple and elegant way to handle CoreData in Swift.
  • CoreValue - Lightweight Framework for using Core Data with Value Types
  • JSQCoreDataKit - A swifter Core Data stack.
  • SugarRecord - an easy with to work with coredata and realm.
  • SuperRecord - A small set of utilities to make working with CoreData and Swift a bit easier.
  • QueryKit - an easy way to play with coredata filtering within your Swift projects.

Realm

  • Realm - Realm is a mobile database: a replacement for Core Data & SQLite http://realm.io
  • Realm+JSON - A concise Mantle-like way of working with Realm and JSON.

JSON

Struggling using json data? Here are some interesting ways to handle it.

  • AlamofireObjectMapper - An Alamofire extension which converts JSON response data into swift objects using ObjectMapper.
  • Alexander - An extremely simple JSON helper written in Swift.
  • Argo - Json parsing library
  • Decodable - JSON parsing for Swift 2.
  • Himotoki - A type-safe JSON decoding library purely written in Swift.
  • json-swift - A basic library for working with JSON in Swift.
  • JSONHelper - lightning fast JSON deserialization and value conversion library for iOS & OS X written in Swift.
  • ObjectMapper - JSON object mapper.
  • Pistachio - Generic model framework for Swift.
  • PPJSONSerialization - Convert JSON string to Swift Class
  • SwiftyJSON - A lib for JSON in Swift with error handling.
  • SwiftMapper - JSON Mapper.
  • SwiftJSONParser - JSON parser.
  • yaml.swift - Load YAML and JSON documents using Swift.

SQLite

Are you interested in storing your app data using SQLite? Here are some interesting resources.

  • SQLite.swift - A pure Swift framework wrapping SQLite3. Small. Simple. Safe.
  • SQLiteDB - sqlite wrapper for Swift.
  • SwiftData - simple and Effective SQLite Handling in Swift.

XML

If you prefer to manage XML data formatted entries, here are some helpful libs

Date

Handle data formatting easily.

Events

Alternatives to NSNotificationCenter, Key-Value-Observation, or delegation.

  • Bond - a Swift binding framework.
  • BrightFutures - promise and future lib for swift.
  • Caravel - A Swift event bus for UIWebView and JS
  • DeLorean - A Functional Reactive Programming kit.
  • EmitterKit - an implementation of event emitters and listeners in swift.
  • Future - A micro framework providing Future<T, Error>
  • FutureKit - A Swift based Future/Promises Library.
  • PromiseKit - async promise programming lib.
  • PureFutures - Futures and Promises library
  • Safe - A modern concurrency and synchronization for Swift.
  • SignalKit - Swift event and binding framework.
  • Signals - replaces delegates and notifications.
  • SwiftEventBus - A publish/subscribe event bus optimized for iOS.
  • ReactKit - Swift Reactive Programming.
  • RxSwift - Microsoft Reactive Extensions (Rx) for Swift and iOS/OSX platform.

Fonts

A collection of font related snippets.

  • Font-Awesome - Use Font Awesome in project written in Swift.
  • FontBlaster - Programmatically load custom fonts into your iOS app.
  • GoogleMaterialDesignIcons - google Material Design Icons Font for iOS.
  • MCFontAwesome - fontawesome porting for Swift.
  • SwiftFonts - render all the supported fonts in Swift.
  • OpenSansSwift - OpenSans for Swift.
  • SDevIconFonts - Fontawesome, Iconic, Ionicons, Octicon porting for Swift.
  • Swicon - Use 1600+ icons from FontAwesome and Google Material Icons (and even your own customized icons) in your swift/iOS project!
  • SwiftFontName - OS font complements library. Localized font supported.

Gesture

iBeacon

Interested in using iBeacon in your Swift project? Here some interesting resources.

  • iBeacon - iBeacon implementation in Swift.

Images

An interesting list of image related libs..

  • Agrume - A lemony fresh iOS image viewer written in Swift.
  • CYFastImage - display images from web.
  • DePict - functional wrapper for CoreGraphics
  • gifu - highly performant animated GIF support for iOS in Swift.
  • ImageLoader - A lightweight and fast image loader for iOS written in Swift.
  • ImageScout - a Swift implementation of fastimage - supports PNG, GIF, and JPEG.
  • KFSwiftImageLoader - An extremely high-performance, lightweight, and energy-efficient pure Swift async web image loader with memory and disk caching for iOS and  Watch.
  • Kingfisher - a lib for image download and caching.
  • MapleBacon - Swift image download and caching library.
  • Misen - A script to support using Xcode Asset Catalog in Swift.
  • PASImageView - async remote download your image and round them. automatically.
  • SwiftColorArt - font schema generator according image colours.
  • SwiftGen-Assets - A tool to auto-generate Swift enums for all your UIImages from your Assets Catalogs.
  • SwiftGif - A small UIImage extension with gif support
  • Toucan - Image processing api
  • UIImageView-BetterFace-Swift - autoresize images and if any face discovered refine the position of the image.

Keyboard

Do you want to create your own customized keyboard? Here are some interesting resources

Layout

Libs to help you with layout.

  • ManualLayout - Easy to use and flexible AutoLayout alternative for iOS 8+. Supports AsyncDisplayKit.
  • SwiftBox - Flexbox in Swift, using Facebook's css-layout.

Auto Layout

Bored of using storyboard? Give a try to declarative auto layout libs.

  • Cartography - declarative auto layout lib for your project.
  • FormationLayout - Auto Layout lib supports group layout and size classes.
  • PureLayout – The ultimate API for iOS & OS X Auto Layout.
  • Restraint - Minimal Auto Layout in Swift.
  • SnapKit - A Swift Autolayout DSL for iOS & OS X.
  • Snappy - a light-weight layout framework which wraps AutoLayout with nicer syntax.
  • SwiftAutoLayout - a small DSL for autolayout.
  • Swiftstraints - Powerful auto-layout framework that lets you write constraints in one line of code.
  • Tails - declarative autolayout for ios app written in swift.
  • VFLToolbox - fancy Swift implementation of the Visual Format Language

Localization

Frameworks that helps with localizing your app

  • Swifternalization - Localize apps using e.g. regular expressions in Localizable.strings.
  • SwiftGen-L10n - A tool to auto-generate Swift enums for all your Localizable.strings keys (with appropriate associated values if those strings contains printf-format placeholders like %@)

Logging

Utilities for writing to and reading from the device log

  • CleanroomASL — a low-level Swift API for writing to and reading from the Apple System Log daemon
  • CleanroomLogger — a configurable and extensible high-level logging API that is simple, lightweight and performant

Maps

  • GEOSwift - The Swift Geographic Engine, make it easier to work with geographic models and calculate intersections, overlapping, projections etc.

Math

  • Easy-Cal-Swift - Overload +-*/ operator for Swift, make it easier to use (and not so strict).
  • Surge - Accelerate framework for Swift.
  • swix - A general matrix language.

Network

A list of libs that allow you to decrease the amount of time spent dealing with http requests.

  • agent - http request agent.
  • Alamofire - elegant networking in Swift.
  • APIKit - a library for building type-safe web API client.
  • BigBrother - Automatically sets the network activity indicator for any performed request.
  • GRequest - http request handler.
  • IJReachability - check for network connection availability.
  • Just - HTTP for Humans (a python-requests style HTTP library in Swift)
  • ModestProposal - an HTTP toolbox.
  • Moya - network abstraction layer.
  • Net - an httprequest wrapper.
  • OAuth2 - oauth2 auth lib.
  • OAuthSwift - Swift based OAuth library for iOS.
  • PeerKit - An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps.
  • RSNetworking - Network library written purely in Swift.
  • Socket.IO - Socket.IO client for iOS/OS X.
  • SocketIO-Kit - Socket.io iOS and OSX Client.
  • Stargate - A communication channel from your Mac to your watch.
  • Starscream - websockets implementation in Swift.
  • SwiftHTTP - NSURLSession wrapper.
  • SwiftSocket - simple TCP socket library.
  • SwiftWebSocket - A high performance WebSocket client library for Swift.
  • Transporter - A tiny library makes uploading and downloading easier.
  • YYHRequest-Swift - http request in async.

Quality

  • SwiftFormat - Auto formatting Swift code, similar to Clang format.
  • SwiftLint - An experimental tool to enforce Swift style and conventions.

Security

  • KeychainAccess - Simple Swift wrapper for Keychain that works on iOS and OS X.
  • KeyClip - Keychain framework for iOS written in Swift.
  • SwiftKeychainWrapper - a simple static wrapper for the iOS Keychain to allow you to use it in a similar fashion to user defaults.

Sensors

Manage your device sensors in a faster and easier way

System

  • SMCKit - Apple SMC library in Swift
  • SystemKit - OS X system library in Swift

Testing

A collection of testing frameworks.

  • DVR - A simple network testing framework for Swift.
  • OHHTTPStubs - A testing library designed to stub your network requests easily.
  • Mockingjay - An elegant library for stubbing HTTP requests with ease in Swift.
  • Quick - Quick is a behavior-driven development framework for Swift and Objective-C.
  • Sleipnir - BDD-style framework for Swift.
  • SwiftCheck - A testing library that automatically generates random data for testing program properties.
  • Swiftest - experimental BDD-style framework.

Text

A collection of text projects.

  • Regex - Swift wrapper class for NSRegularExpression. Includes a map() override and an operator (=~) for a more Swift-like API.
  • PySwiftyRegex - Easily deal with Regex in Swift in a Pythonic way.
  • SyntaxKit - TextMate-style syntax highlighting.

UI

A collection of pre-packaged transitions & cool ui stuffs.

Utility

Some interesting utilities to help you in your projects

  • Basis - Pure Declarative Programming in Swift
  • BrightFutures - promise and future lib for Swift.
  • __ - Underscore.js power in your Swift projects.
  • AAWindow - UIWindow subclass to enable behavior like adaptive round-corners & detecting when Control Center is opened.
  • AlertKit – Alert with a single line of Swift.
  • Async – Syntactic Swift sugar for Grand Central Dispatch
  • Async.legacy – Syntactic Swift sugar for Grand Central Dispatch (iOS 7 and OS X 10.9 Mavericks compatible fork)
  • AwesomeCache - manage cache easy in your Swift project.
  • Butterfly - A lightweight library for integrating bug-report and feedback features with shake-motion event.
  • Chronos- Grand Central Dispatch Utilities.
  • CLIKit - a way to create cli with Swift.
  • Collection Each - add each func to collections.
  • Curry - Swift implementations for function currying
  • CommandLine - A pure Swift library for creating command-line interfaces
  • DBPathRecognizer - Gesture recognizer tool.
  • Device.swift - Super-lightweight library to detect used device
  • Dispatcher - Queues, timers, and task groups in Swift
  • Dollar - a lib similar to Lo-Dash or Underscore in Javascript.
  • ExSwift - a set of Swift extensions for standard types and classes.
  • Forbind - Functional chaining and Promises in Swift
  • Funky - Functions and operators for functional programming in Swift.
  • GCD - A wrapper of Grand Central Dispatch written in Swift
  • Honour - Simple and powerful Validation Library
  • Inflection - The Optimus Prime of string inflection
  • Lambdatron - Clojure(ish) interpreter in Swift.
  • LlamaKit - Collection of must-have functional Swift tools.
  • Mendel - Swift miliframework for implementing evolutionary/genetic algorithms.
  • PermissionScope - A Periscope-inspired way to ask for iOS permissions.
  • protobuf-swift - ProtocolBuffers for Swift.
  • Prototope - Swift library of lightweight interfaces for prototyping, bridged to JS.
  • Puree - A log collector for iOS
  • Pythonic.swift - Pythonic tool-belt for Swift: a Swift implementation of selected parts of Python standard library.
  • R.swift - Tool to get strong typed, autocompleted resources like images, cells and segues.
  • ReactiveArray - An array class implemented in Swift that can be observed using ReactiveCocoa's Signals.
  • ResponseDetective - A non-intrusive framework for intercepting any outgoing requests and incoming responses between your app and server for debugging purposes.
  • Result - Swift type modelling the success/failure of arbitrary operations.
  • Runes - Functional operators for Swift - flatMap, map, apply, pure
  • SpecificationPattern - chainable rules useful for form validation.
  • SpriteKit+Spring - SpriteKit API reproducing UIView's spring animations with SKAction.
  • Stream - Lazy streams in Swift.
  • swamp - Icon stamping in Swift.
  • Swell - a logging utility for Swift.
  • SwiftBitmask - Bitmask<T> type intended as a replacement for RawOptionSet.
  • SwiftColors - HEX color handling as an extension for UIColor.
  • SwiftExP - Pure Swift 2.0 S-expression Parser
  • SwiftForms - form are now easy as 1.2.3!
  • SwiftMemCache - Swift Memory Cache with namespace & TTL support.
  • SwiftSequence - A μframework of extensions for SequenceType in Swift 2.0, inspired by Python's itertools
  • SwiftyStateMachine - Swift µframework for creating state machines.
  • SwiftyUserDefaults — a cleaner, nicer syntax for NSUserDefaults
  • Swiftz - a lib for functional programming.
  • Swift Sugar - objsugar ported to Swift.
  • undefined - Nano framework which defines Haskell's undefined in Swift.
  • Versions - Helping you find inner peace when comparing version numbers in Swift.
  • Wyrd - Asynchronous programming in Swift made easy. Wyrd is inspired by Promises/A+.
  • XCGLogger - a lib that help you handling better debug logging.

Video

  • Player - iOS video player in Swift, simple drop in component for playing and streaming media.

Webserver

Would you like host a webserver in your device? Here you can find how to do it.

  • NetworkObjects - REST HTTP Server written in Swift. Builds REST API from Core Data.
  • swifter - Http server written in Swift with routing handler.
  • XcodeServerSDK - Access Xcode Server API with native Swift objects.

Misc

Miscellaneous Swift related projects

  • MAIKit - A framework for sharing code between iOS and OS X.
  • sbconstants - A nifty tool to generate constants file by grabbing identifiers from storyboards in a Swift project.
  • swift-compiler-crashes - A collection of test cases crashing the Swift compiler
  • swiftier - Quick-and-dirty Objective-C to Swift translator.
  • SwiftInFlux - List of things that are "in flux" in Swift + changelog of the language
  • SwiftGen - A suite of tools written in Swift to auto-generate Swift code for various assets of your project.

Tools

Tools for Swift development

Documentation

Generate documentation for Swift code

  • jazzy - Soulful docs for Swift & Objective-C
  • swiftdoc-parser - Header parsing and HTML generating utilities for SwiftDoc.org