Skip to content

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

License

Notifications You must be signed in to change notification settings

jplazcano87/awesome-swift

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

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.
  • Debter - simple personal debt manager for OS X.
  • 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).
  • Conche - Swift build system and dependency manager.

Guides

An awesome list of Swift related guides.

Official Guide

Third party Guides

  • A better way to learn Swift - Learn Swift in a different way.
  • Apple eBook - Official Apple eBook for Swift beginners.
  • Developing iOS 8 Apps with Swift - Stanford course by Paul Hegarty.
  • HACKING WITH SWIFT - Hacking with Swift is a complete Swift training course that teaches you app development through 30 hands-on projects, for free. Everything is taught as part of a practical project, so you can immediately apply your knowledge as you learn.
  • HackingWithSwift - The project source code for hackingwithswift.com
  • Learn Swift - a collection of tuts that will help you learning Swift via playground.
  • Natasha the Robot - Weekly Newsletter on learning Swift
  • Practice Swift - an interesting guide to learn Swift.
  • Swift A Day - Daily swift experiments by Linda Dong.
  • SwiftDoc - Auto-generated documentation for Swift.
  • SwiftGuide CN - A chinese written guide for Swift.
  • SwiftInFlux - A well explained list of feature in flux for Swift
  • Swifty - App to learn to code in Swift.
  • Swift Sandbox Newsletter - Swift Sandbox is a weekly newsletter containing a collection of links to the best Swift code and developer tools. Every Friday. Free.
  • Swift Tips - Swift tips collection.
  • Swift-Weekly - Weekly Swift Language Gems, Tips and Tricks

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.
  • Swift-Best-Practices - Best practices for software development with Swift.
  • SwiftLint - A tool to enforce Swift coding conventions for your Swift code.

Patterns

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

  • Cheetah - An animation library on iOS with Swift 2.
  • 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.

Concurrency

Easier ways to work with concurrency.

  • Venice - Communicating sequential processes (CSP) for Swift 2 (Linux ready).

Cryptography

Deal with cryptography method easily in Swift

  • CryptoSwift - add crypto lib support to Swift.
  • SwiftSSL - add crypto toolkit in Swift.
  • CryptoSwift - Crypto related functions and helpers for Swift implemented in Swift programming language

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 https://realm.io
  • Realm+JSON - A concise Mantle-like way of working with Realm and JSON.

Files

  • FileKit - Simple and expressive file management in Swift.

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.
  • Genome - A simple, type safe, failure driven mapping library for serializing JSON to models in Swift 2.0
  • Gloss - shiny JSON parsing library.
  • Himotoki - A type-safe JSON decoding library purely written in Swift.
  • JASON - JSON parsing with outstanding performances and convenient operators.
  • json-swift - A basic library for working with JSON in Swift.
  • JSONCodable - Hassle-free JSON encoding and decoding in Swift
  • JSONHelper - lightning fast JSON deserialization and value conversion library for iOS & OS X written in Swift.
  • JSONNeverDie - Auto reflection tool from JSON to Model, user friendly JSON encoder / decoder, aims to never die.
  • ModelRocket - An iOS framework for creating JSON-based models.
  • 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.
  • Tailor - A super fast & convenient object mapper tailored for your needs.
  • YamlSwift - Load YAML and JSON documents using Swift.

Key Value Store

  • SwiftStore - A Key-Value store for Swift backed by LevelDB

SQLite

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

XML

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

  • AEXML - xml wrapper
  • Fuzi - A fast & lightweight XML/HTML parser with XPath & CSS support in Swift 2.
  • Ji - an XML/HTML parser for Swift.
  • SWXMLHash - Simple XML parsing in Swift.
  • XMLParser - A lightweight XMLParser for assembling and parsing XML values written for iOS 8+ in Swift 2.

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
  • 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.

Gesture

  • DBPathRecognizer - db path recognizer for letters.
  • Tactile - Attach function handlers to gesture and control events in a more expressive and safer way.

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..

  • AlamofireImage - AlamofireImage is an image component library for Alamofire.
  • Agrume - A lemony fresh iOS image viewer written in Swift.
  • APNGKit - High performance and delightful way to play with APNG format in iOS.
  • CYFastImage - display images from web.
  • DePict - functional wrapper for CoreGraphics
  • gifu - highly performant animated GIF support for iOS in Swift.
  • HanekeSwift - A lightweight generic cache for iOS written in Swift with extra love for images.
  • 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.
  • Nuke - Advanced pure Swift framework for loading, caching, processing, displaying and preheating images.
  • 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

Key Value Coding

Libraries for key-value coding in Swift

  • SwiftKVC - Key-Value Coding (KVC) for native Swift classes and structs

Layout

Libs to help you with layout.

  • ManualLayout - Easy to use and flexible AutoLayout alternative for iOS 8+. Supports AsyncDisplayKit.
  • Neon - A powerful Swift programmatic UI layout framework.
  • SwiftBox - Flexbox in Swift, using Facebook's css-layout.
  • ViewMonitor - Confirm view positions with executing app.

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.
  • SwiftAutoLayout - a small DSL for autolayout.
  • Swiftstraints - Powerful auto-layout framework that lets you write constraints in one line of code.
  • SwiftyLayout - Lightweight mathematical declarative auto-layout framework for Swift.
  • 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

  • Localize-Swift - Localize apps using e.g. regular expressions in Localizable.strings.
  • 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 — Low-level Swift API for writing to and reading from the Apple System Log daemon.
  • CleanroomLogger — Configurable and extensible high-level logging API that is simple, lightweight and performant.
  • QorumLogs — Swift Logging Utility for Xcode & Google Docs.
  • swiftRemoteLogger - Remote logging easy as 1..2..3 in Swift.
  • Watchdog - A Swift utility for logging excessive blocking on the main thread.

Maps

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

Location

Math

  • Arithmosophi - Set of protocols for Arithmetic and Logical operations.
  • DDMathParser - DDMathParser makes it easy to parse a String and evaluate it as a mathematical expression.
  • Easy-Cal-Swift - Overload +-*/ operator for Swift, make it easier to use (and not so strict).
  • swix - A general matrix language.
  • Upsurge - Simple and fast matrix and vector math for Swift.

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.
  • BluetoothKit - A much simpler, high-level Swift API to allow easy communication between iOS devices using Bluetooth 4.0 LE.
  • 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.
  • NKMultipeer - A testable abstraction over multipeer connectivity
  • 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.
  • Pitaya - A Swift HTTP / HTTPS networking library just incidentally execute on machines.
  • RSNetworking - Network library written purely in Swift.
  • Siesta Elegant abstraction for REST APIs that untangles stateful messes. An alternative to callback- and delegate-based networking.
  • Stargate - A communication channel from your Mac to your watch.
  • SwiftHTTP - NSURLSession wrapper.
  • Transporter - A tiny library makes uploading and downloading easier.
  • YYHRequest-Swift - http request in async.

Websocket

Quality

  • Eureka - Elegant iOS form builder in swift.
  • SwiftFormat - Auto formatting Swift code, similar to Clang format.
  • SwiftLint - An experimental tool to enforce Swift style and conventions.
  • Tailor - Cross-platform static analyzer for Swift that helps you to write cleaner code and avoid bugs.

Security

  • KeychainAccess - Simple Swift wrapper for Keychain that works on iOS and OS X.
  • KeyClip - Keychain framework for iOS written in Swift.
  • Latch - A simple Swift Keychain Wrapper for iOS.
  • Locksmith - A powerful, protocol-oriented library for working with the iOS Keychain 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.

  • CatchingFire - Test Library for Swift's Error Handling.
  • DVR - A simple network testing framework for Swift.
  • Fakery - Swift fake data generator.
  • Mockingjay - An elegant library for stubbing HTTP requests with ease in Swift.
  • OHHTTPStubs - A testing library designed to stub your network requests easily.
  • Quick - Quick is a behavior-driven development framework for Swift and Objective-C.
  • Sleipnir - BDD-style framework for Swift.
  • Spectre - BDD Framework for Swift.
  • SwiftCheck - A testing library that automatically generates random data for testing program properties.
  • Swiftest - experimental BDD-style framework.
  • SwiftMock - A mocking framework for Swift

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.

Phone Numbers

  • PhoneNumberKit - Swift framework for parsing, formatting and validating international phone numbers. Inspired by Google's libphonenumber.

UI

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

Blur

  • Blurable - Apply a Gaussian Blur to any UIView with Swift Protocol Extensions
  • PCLBlurEffectAlert - Swift AlertController with UIVisualeffectview

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.
  • Collection Each - add each func to collections.
  • Commander - Compose beautiful command line interfaces in Swift.
  • 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.
  • Focus - an Optics library for Swift (where Optics includes Lens, Prisms, and Isos) that is inspired by Haskell's Lens library.
  • 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
  • GCDKit - Grand Central Dispatch simplified with 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.
  • Oriole - A functional utility belt implemented as Swift 2.0 protocol extensions.
  • PathKit - Effortless path operations in Swift.
  • PermissionScope - A Periscope-inspired way to ask for iOS permissions.
  • Prephirences - Manage application preferences, configurations and app-state.
  • 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.
  • Pluralize.swift - Great Swift String Pluralize Extension
  • R.swift - Tool to get strong typed, autocompleted resources like images, cells and segues.
  • RandomKit - Random data generation in Swift.
  • 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.
  • SwiftSortUtils - Useful functions and extensions for sorting 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.
  • SwiftRandom - A tiny generator of random data for swift
  • SwiftRouter - A URL Router for iOS written in Swift 2.0
  • 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 - Functional programming in Swift.
  • 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
  • SwiftHub - A universal app you can use to browse the newest Swift repositories on Github.
  • 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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published