Skip to content

A collaborative list of awesome Swift libraries and resources. Feel free to contribute!

License

Notifications You must be signed in to change notification settings

layoutBox/awesome-swift

 
 

Repository files navigation

Awesome Swift

iOS App Awesome Linux Projects Updated
Download on the App Store Awesome 🐧 1003 April 20, 2018

Contents

Guides

An awesome list of Swift related guides.

Newsletter

back to top

Official Guides

back to top

Style Guides

back to top

  • GitHub - Style guide & coding conventions.
  • LinkedIn - LinkedIn's Official Style Guide.
  • Raywenderlich - Raywenderlich guide, a must read.

Third party Guides

back to top

Boilerplates

REPL

Editor Support

Support for your favorite editors.

Emacs

back to top

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

Vim

back to top

Benchmark

  • Benchmark - Provides methods to measure and report the time used to execute code.
  • xcprofiler - Command line utility to profile compilation time.

Converters

  • Swiftify - Objective-C to Swift online code converter and Xcode extension.

Demo Apps

Check out apps on these projects:

  • awesome-macOS - A curated list of awesome applications, softwares, tools and shiny things for macOS.
  • open-source-ios-apps - A collaborative list of open-source iOS Apps.

Dependency Managers

Dependency manager software for Swift.

  • Carthage - A new dependency manager.
  • CocoaPods - The most used dependency manager.
  • Mint - A package manager that installs and runs Swift command line tools.
  • swift-package-manager - SPM is the Package Manager for the Swift Programming Language.

Patterns

Misc

Miscellaneous Swift related projects

  • Beak - A command line interface for your Swift scripts.
  • generator-swift-framework - Scaffolds out a Xcode framework project.
  • InteractivePlayground - A playground exploring the interactivity of Xcode 7.3 playgrounds.
  • 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 project.
  • SwagGen 🐧 - A command line tool for generating a REST API from a Swagger spec based off Stencil templates.
  • swift-compiler-crashes - A collection of test cases crashing the compiler.
  • SwiftGen - A suite of tools to auto-generate code for various assets of your project.
  • SwiftPlate - Easily generate cross platform framework projects from the command line.
  • Toybox - Xcode Playground management made easy.
  • XcodeGen - Tool for generating Xcode projects from a YAML file and your project directory.

Libs

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

AI

Libs for AI based projects (Machine Learning, Neural Networks etc). back to top

  • BrainCore - The iOS and OS X neural network framework.
  • CoreML-Models - A collection of unique Core ML Models.
  • MLKit - A simple machine learning framework.
  • Swift-AI - The machine learning library.

Algorithm

back to top

  • Algorithm - A toolset for writing algorithms and probability models.
  • swift-algorithm-club - Algorithms and data structures, with explanations.
  • SwiftLCS 🐧 - implementation of the longest common subsequence (LCS) algorithm.

Analytics

Analytics related libraries to easily track your app usage back to top

  • Umbrella - Analytics abstraction layer.

Animation

Libs to help with animation back to top

  • Advance - A powerful animation framework for iOS, tvOS, and OS X.
  • AnimatedCollectionViewLayout 🐧 - A UICollectionViewLayout subclass that adds custom transitions/animations to the UICollectionView without affecting your existing code.
  • Animo - SpriteKit-like animation builders for CALayers.
  • ChainPageCollectionView - Fancy two-level collection view layout and animation.
  • Cheetah - An animation library on iOS.
  • Dance - A radical & elegant animation library built for iOS.
  • DKChainableAnimationKit - Easy to read and write chainable animations.
  • DSGradientProgressView - DSGradientProgressView is a simple and customizable animated progress bar.
  • Ease - Animate everything with Ease.
  • EasyAnimation - A library to take the power of UIView.animateWithDuration(_:, animations:...) to a whole new level.
  • FlightAnimator - Natural Blocks Based Core Animation Framework.
  • Gemini - Gemini is rich scroll based animation framework.
  • IBAnimatable - Design and prototype UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable.
  • Interpolate - Interpolation framework for creating interactive gesture-driven animations.
  • JDAnimationKit - Animate easy and with less code.
  • Kinieta - An simple Animation Engine for iOS with an Intuitive API and Readable Code
  • Morgan - An always growing animation set.
  • Pastel - Gradient animation effect like Instagram.
  • Presentation - A library to help you to make tutorials, release notes and animated pages.
  • Pulsator - Pulse animation for iOS.
  • Spring - A library to simplify iOS animations.
  • spruce-ios - Choreograph animations on the screen.
  • Stellar - A Physical animation library.
  • SwiftyAnimate - Composable animations.
  • ViewAnimator - Brings your UI to life with just one line.
  • Walker - An animation engine to make your animations easy and more readable.
  • YapAnimator - Your fast and friendly physics-based animation system.
  • ZoomTransitioning - A custom transition with image zooming animation.

API

Quick libs to get access to third party API services back to top

App Routing

Internal app routing systems. back to top

  • Appz - Launch external apps and deeplink with ease.
  • Compass - Compass helps you setup a central navigation system for your application.
  • Linker - Lightweight way to handle internal and external deeplinks for iOS.
  • RxFlow - RxFlow is a navigation framework for iOS applications based on a Reactive Flow Coordinator pattern.
  • SwiftRouter - A URL Router for iOS.
  • URLNavigator - Elegant URL Routing.

App Store

Libs to help with apple app store, in app purchases and receipt validation. back to top

  • InAppFw - In App Purchase Manager framework.
  • InAppPurchase - A Simple, Lightweight and Safe framework for In App Purchase.
  • SwiftyStoreKit - Lightweight In App Purchases framework.

Audio

Libs to work with audio back to top

  • AudioKit - Powerful audio synthesis, processing and analysis, without the steep learning curve.
  • AudioPlayer - A wrapper around AVPlayer with some cool features.
  • AudioPlayerSwift - AudioPlayer is a simple class for playing audio (basic and advanced usage) in iOS, OS X and tvOS apps.
  • Beethoven - An audio processing library for pitch detection of musical signals.
  • MusicKit - A framework for composing and transforming music.
  • SwiftySound - Simple library that lets you play sounds with a single line of code.
  • TuningFork - A Simple Tuner for iOS.

Augmented Reality

back to top

  • ARCharts - Lovely Augmented Reality Charts for iOS - Built with ARKit
  • ARKit-CoreLocation - Combines the high accuracy of AR with the scale of GPS data.
  • ARKit-Navigation - Navigation in augmented reality with MapKit.
  • ARVideoKit - Capture & record ARKit videos, photos, Live Photos, and GIFs
  • ARVoxelKit - Voxel graphic framework using ARKit

Authentication

Easy way to manage auth in your apps. back to top

  • Cely - A Plug-n-Play login framework.
  • InstagramLogin - Simple way to authenticate Instagram accounts.
  • LoginKit - LoginKit is a quick and easy way to add a Login/Signup UX to your iOS app.
  • ReCaptcha - [In]visible ReCaptcha for iOS.
  • Simplicity - A simple way to implement Facebook and Google login in your iOS and OS X apps.
  • SpotifyLogin - Authenticate with the Spotify API.
  • Voucher - A simple library to make authenticating tvOS apps easy via their iOS counterparts.

Bots

Libs to build bot back to top

Cache

back to top

  • AwesomeCache - Manage cache easy.
  • Cache - Nothing but Cache.
  • Cachyr - A small key-value data cache for iOS, macOS and tvOS.
  • Carlos - A simple but flexible cache.
  • EVURLCache - If you want to make your app still works when it's offline.
  • SwiftMemCache - Memory Cache with namespace & TTL support.

Chart

back to top

  • Charts - Beautiful charts for iOS/tvOS/OSX (port of MPAndroidChart).
  • PNChart-Swift - A simple and beautiful chart lib with animation.
  • ScrollableGraphView - Adaptive scrollable graph view for iOS to visualise simple discrete datasets.
  • SwiftChart - A simple line and area charting library for iOS. Supports multiple series, partially filled series and touch events.
  • SwiftCharts - Highly customizable charts for iOS.
  • TKRadarChart - A customizable radar chart.

Chat

Libs to get access to build chat app back to top

  • Chatto - A lightweight framework to build chat applications.
  • MessageKit - A community-driven replacement for JSQMessagesViewController.

Colors

Interesting snippets related to color management and utility. back to top

  • Chameleon - Chameleon is a lightweight, yet powerful, color framework for iOS.
  • ChromaColorPicker - An intuitive and fun iOS color picker.
  • Colorify - Colorify - simple, yet powerful color library.
  • Colors - Library for using ANSI codes.
  • CSS3ColorsSwift - A UIColor extension with CSS3 Colors name.
  • DynamicColor - An extension to manipulate colors easily.
  • FlatUIColors - Flat UI color palette.
  • Google Material Color - Google Material Color Palette.
  • HexColor - Define UIColors as Hex integers.
  • Hue - Hue is the all-in-one coloring utility that you'll ever need.
  • PrettyColors - Styles and colors text in the Terminal with ANSI escape codes. Conforms to ECMA Standard 48.
  • RandomColorSwift - An attractive color generator (ported from randomColor.js).
  • SwiftGen-Colors - A tool to auto-generate Swift enums for your UIColor constants.
  • SwiftHEXColors - HEX color handling as an extension for UIColor.
  • UIColor-Hex-Swift - Hex to UIColor converter.
  • UIColor-WikiColors - All wikipedia colors implemented as easy to use UIColor extension.
  • UIGradient - A simple and powerful library for using gradient layer, image, color

Command Line

Create command line applications. back to top

  • Commander 🐧 - Compose beautiful command line interfaces.
  • CommandLine 🐧 - Library for creating command-line interfaces.
  • LineNoise 🐧 - A zero-dependency replacement for readline
  • Progress.swift 🐧 - Add beautiful progress bars to your command line.
  • SwiftCLI 🐧 - A powerful framework that can be used to develop a CLI.
  • Swiftline - A set of tools to help you create command line applications.
  • SwiftyTextTable 🐧 - A lightweight library to generate text tables.
  • TextTable - Easily print textual tables. Inspired by the Python tabulate library.

Concurrency

Easier ways to work with concurrency. back to top

  • AsyncNinja - A complete set of concurrency and reactive programming primitives.
  • GroupWork 🐧 - Easy concurrent, asynchronous tasks.
  • Hydra - Promises & Await - Write better async code.
  • Kommander - Manage the task execution in different threads through Kommands.
  • Overdrive - Fast async task based API with focus on type safety, concurrency and multi threading.
  • Queuer 🐧 - A queue manager, built on top of OperationQueue and Dispatch (aka GCD).
  • Safe - Modern Concurrency and Synchronization.
  • Threadly 🐧 - Type-safe thread-local storage.
  • Venice 🐧 - Communicating sequential processes (CSP), Linux ready.

Currency

back to top

  • Money - Currency formatter.

Data Management

back to top

Core Data

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

  • AERecord - Super awesome Core Data wrapper library for iOS.
  • AlecrimCoreData - Simple Core Data wrapper library.
  • Cadmium - Framework that hides the complexity of managed object contexts.
  • CoreStore - simple and elegant way to handle Core Data.
  • CoreValue - Lightweight Framework for using Core Data with Value Types.
  • DataKernel - DataKernel is a minimalistic wrapper around Core Data stack to ease persistence operations. No external dependencies.
  • Graph - An elegant data-driven framework for Core Data.
  • JSQCoreDataKit - A swifter Core Data stack.
  • JustPersist - Easiest and safest way to do persistence on iOS with Core Data support out of the box.
  • QueryKit - An easy way to play with Core Data filtering.
  • Skopelos - A minimalistic, thread safe, non-boilerplate and super easy to use version of Active Record on Core Data.
  • SugarRecord - Helps with Core Data and Realm.
  • SuperRecord - A small set of utilities to make working with Core Data a bit easier.

JSON

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

  • AlamofireJsonToObjects - An Alamofire extension which converts JSON response data into objects using Reflection.
  • AlamofireObjectMapper - An Alamofire extension which converts JSON response data into objects using ObjectMapper.
  • Alembic - Functional JSON parsing, mapping to objects, and serialize to JSON.
  • Alexander - An extremely simple JSON helper.
  • Argo - JSON parsing library.
  • Arrow - Elegant JSON Parsing.
  • Brick - A generic view model for both basic and complex scenarios.
  • Decodable 🐧 - JSON parsing.
  • Elevate - JSON parsing framework that makes parsing simple, reliable and composable.
  • EVReflection - Reflection based JSON encoding and decoding. Including support for NSDictionary, NSCoding, Printable, Hashable and Equatable
  • Freddy - A reusable framework for parsing JSON.
  • Genome - A simple, type safe, failure driven mapping library for serializing JSON to models.
  • Gloss 🐧 - Shiny JSON parsing library.
  • HandyJSON - A handy swift JSON-object serialization/deserialization library.
  • Himotoki - A type-safe JSON decoding library.
  • JASON - JSON parsing with outstanding performances and convenient operators.
  • json-swift - A basic library for working with JSON.
  • JSONCodable - Hassle-free JSON encoding and decoding.
  • JSONFeed - JSONFeed parser with built in reader for jsonfeed.org.
  • JSONHelper - Lightning fast JSON deserialization and value conversion library for iOS & OS X.
  • 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.
  • SwiftyJSON - A lib for JSON with error handling.
  • SwiftyJSONAccelerator - OSX app to generate models for JSON.
  • Tailor - A super fast & convenient object mapper tailored for your needs.
  • Unbox - The easy to use JSON decoder.

Key Value Store

back to top

  • Default - Modern interface to UserDefaults + Codable support
  • DefaultsKit - Simple, Strongly Typed UserDefaults for iOS, macOS and tvOS.
  • Palau - Typesafe NSUserDefaults with custom rules.
  • Prephirences - Manage application preferences, NSUserDefaults, iCloud, Keychain and more.
  • Storez - Safe, statically-typed, store-agnostic key-value storage.
  • SwiftStore - A Key-Value store backed by LevelDB.
  • SwiftyUserDefaults - Cleaner, nicer syntax for NSUserDefaults.
  • Zephyr - Effortlessly synchronize NSUserDefaults over iCloud.

MongoDB

back to top

Multi Database

Data management layers that involve multiple sources. back to top

  • Shallows - Your lightweight persistence toolbox.
  • StorageKit - Your Data Storage Troubleshooter 🛠

ORM

back to top

  • fluent 🐧 - Simple ActiveRecord implementation.

Other Data

Other ways to persist data back to top

  • CSVParser 🐧 - Fast parser for CSV.
  • EVCloudKitDao - Simplified access to CloudKit with support for subscriptions and local caching.
  • KeyPathKit - KeyPathKit provides a seamless syntax to manipulate data using typed keypaths.
  • LeetCode-Swift - Solutions to LeetCode interview questions.
  • Pencil - Write any value to file.
  • StorageManager - Safe and easy way to use FileManager as Database.

Realm

back to top

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

SQL drivers

back to top

  • MySQL Swift 🐧 - MySQL client library.
  • Perfect-MySQL 🐧 - A stand-alone wrapper around the MySQL client library, enabling access to MySQL servers.
  • Perfect-PostgreSQL 🐧 - A stand-alone wrapper around the libpq client library, enabling access to PostgreSQL servers.

SQLite

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

XML

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

  • AEXML - xml wrapper.
  • AlamofireXmlToObjects - An Alamofire extension for fetching an XML feed and parsing it into objects.
  • CheatyXML - A powerful framework designed to manage XML easily.
  • SwiftyXML - The most swifty way to deal with XML.
  • SWXMLHash - Simple XML parsing.
  • XMLParser - A lightweight XMLParser for assembling and parsing XML values written for iOS 8+.

YAML

back to top

  • YamlSwift - Load YAML and JSON documents.
  • Yams 🐧 - Sweet YAML parser.

ZIP

back to top

  • Zip - Framework for zipping and unzipping files.
  • Zip Foundation - A library to create, read and modify ZIP archive files.

Date

Handle data formatting easily. back to top

  • AnyDate - Date & Time API inspired from Java 8 DateTime API.
  • Chronology - Building a better date/time library.
  • DateHelper - Simple date helper.
  • Datez - Library for dealing with NSDate, NSCalendar, NSDateComponents, and NSTimeInterval.
  • Datify - Easypeasy date functions.
  • NSDate-Extensions - Practical real-world dates.
  • Punctual.swift 🐧 - Date handler.
  • SwiftDate - Easy NSDate Management.
  • SwiftMoment - A time and calendar manipulation library.
  • Time - Type-safe time calculations, powered by generics.
  • Timepiece - Intuitive NSDate extensions.
  • TrueTime.swift - Get the true current time impervious to device clock time changes (NTP library).

Dependency Injection

Dependency injection libs back to top

  • Cleanse - A Lightweight Dependency Injection Framework by Square.
  • Corridor - A Coreader-like Dependency Injection μFramework.
  • Dip - A simple Dependency Injection Container.
  • Swinject - A dependency injection framework.
  • Typhoon - Dependency injection toolkit.

Device

A collection of libs to recognize your device. back to top

  • Device - Light weight tool for detecting the current device and screen size.
  • Device.swift - Super-lightweight library to detect used device.
  • DeviceKit - DeviceKit is a value-type replacement of UIDevice.
  • Luminous - Get everything you need to know about the device.
  • Thingy - A modern device detection and querying library.
  • UIDeviceComplete - UIDevice extensions that fill in the missing pieces.

Documentation

Generate documentation for Swift code back to top

  • jazzy - Soulful docs.
  • SourceDocs - Generate Markdown reference documentation that lives with your code.
  • swiftdoc-parser - SwiftDoc.org header parsing and HTML generating utilities.

Email

back to top

  • Hedwig 🐧 - Send email to any SMTP server like a boss.

Embedded Systems

Build your embedded Linux projects on a RaspberryPi, BeagleBone, C.H.I.P. and other boards. back to top

  • SMBus-swift 🐧 - Communicate with SMBus/I2C devices.
  • SwiftyGPIO 🐧 - Interact with Linux GPIO/SPI/PWM on ARM.

Peripherals

Interact with specific external peripherals. back to top

Events

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

  • Aftermath - Stateless message-driven micro-framework.
  • Bond - Binding framework.
  • BrightFutures - Promise and future lib.
  • Caravel - Event bus for UIWebView and JS.
  • EmitterKit - Implementation of event emitters and listeners.
  • Forbind - Functional chaining and Promises.
  • Future - A micro framework providing Future<T, Error>.
  • FutureKit - Future/Promises Library.
  • Katana - Write apps a la React and Redux.
  • NoticeObserveKit - NoticeObserveKit is type-safe NotificationCenter wrapper that associates notice type with info type.
  • Notificationz - Helping you own NSNotificationCenter by providing a simple, customizable adapter.
  • Observable - The easiest way to observe values.
  • PromiseKit - Async promise programming lib.
  • ReactiveCocoa - ReactiveCocoa (RAC) is a Cocoa framework inspired by Functional Reactive Programming. It provides APIs for composing and transforming streams of values over time.
  • Reactor - Powering your RAC architecture.
  • ReactorKit - A framework for reactive and unidirectional application architecture.
  • ReduxSwift - Predictable state container.
  • ReSwift - Unidirectional Data Flow.
  • RxSwift - Microsoft Reactive Extensions (Rx) for Swift and iOS/OSX platform.
  • SignalKit - Event and binding framework.
  • Signals - Replaces delegates and notifications.
  • Snail - An Observables framework.
  • SwiftEventBus - A publish/subscribe event bus optimized for iOS.
  • Tempura - A holistic approach to iOS development, inspired by Redux and MVVM.
  • VueFlux - Unidirectional Data Flow State Management Architecture - Inspired by Vuex and Flux.
  • When - A lightweight implementation of Promises.

Files

back to top

  • FileBrowser - Powerful file browser for iOS.
  • FileKit - Simple and expressive file management.
  • FileProvider - FileManager replacement for Local, iCloud and Remote (WebDAV/FTP/Dropbox/OneDrive/SMB2) files for iOS/tvOS and macOS.
  • KZFileWatchers - A micro-framework for observing file changes, both local and remote.
  • PathKit 🐧 - Effortless path operations.
  • SKQueue - Monitor changes to files and directories using kernel event notifications (kqueue).

Fonts

A collection of font related snippets. back to top

  • FontAwesome.swift - Use FontAwesome in your projects.
  • FontBlaster - Programmatically load custom fonts into your iOS app.
  • GoogleMaterialDesignIcons - Google Material Design Icons Font for iOS.
  • GoogleMaterialIconFont - Google Material Icon Font.
  • Inkwell - An inkwell to use custom fonts on the fly.
  • IoniconsKit - Use ionicons as UIImage / UIFont in your projects.
  • OcticonsKit - Use Octicons as UIImage / UIFont in your projects.
  • OpenSansSwift - OpenSans.
  • Swicon - Use 1600+ icons from FontAwesome and Google Material Icons (and even your own customized icons) in your project.
  • SwiftFontName - OS font complements library. Localized font supported.
  • SwiftIconFont - Fontawesome, Iconic, Ionicons, Octicon ports.
  • SwiftIcons - Library for Font Icons: dripicons, emoji, font awesome, icofont, ionicons, linear icons, map icons, material icons, open iconic, state, weather.
  • UIFontComplete - Font management (System & Custom) for iOS and tvOS.

Game Engine

back to top

2D

back to top

Games

back to top

  • Sage 🐧 - A cross-platform chess library.

Gesture

back to top

  • DBPathRecognizer - db path recognizer for letters.
  • NiceGesture - Using UIGestureRecognizers in a intuitive way.
  • PeekPop - Framework for backwards-compatible Peek and Pop.
  • SBShortcutMenuSimulator - Allow the iPhone Simulator to test 3D Touch.
  • ShowTime - Show off your iOS taps and gestures for demos and videos with just one line of code.
  • SwiftyGestureRecognition - UIGestureRecognizers in Xcode Playgrounds.
  • SwipyCell - UITableViewCell implementing swiping to trigger actions (known from the Mailbox App).
  • Tactile - Attach function handlers to gesture and control events in a more expressive and safer way.

Hardware

A category dedicated to hardware related libs back to top

3D Touch

Easy handle new 3D Touch / Force Touch feature thanks to these libs. back to top

Bluetooth

Wrappers around CoreBluetooth back to top

  • Bleu - BLE (Bluetooth LE) for U.
  • BlueCap - Wrapper around CoreBluetooth and much more.
  • Bluejay - A simple framework for building reliable Bluetooth LE apps.
  • Bluetonium - Library that makes it easy to communicate with Bluetooth devices.
  • BluetoothKit - Easily communicate between iOS/OSX devices using BLE.
  • RxBluetoothKit - iOS & OSX Bluetooth library for RxSwift.
  • SwiftyBluetooth - Simple and reliable closure based wrapper around CoreBluetooth.

Camera

Awesome camera libs back to top

  • ALCameraViewController - Camera view controller with custom image picker and image cropping.
  • Fusuma - Instagram-like photo browser and a camera feature.
  • NextLevel - Rad Media Capture.
Barcode

Barcode, QR-code, other code readers back to top

Haptic Feedback

Libraries that involve the use of Haptic Feedback back to top

  • Haptica - Easy Haptic Feedback Generator.
  • TapticEngine - Generates haptic feedback vibrations on iOS device.

iBeacon

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

Sensors

Manage your device sensors in a faster and easier way back to top

Images

An interesting list of image related libs.. back to top

  • Agrume - A lemony fresh iOS image viewer.
  • AlamofireImage - AlamofireImage is an image component library for Alamofire.
  • APNGKit - High performance and delightful way to play with APNG format in iOS.
  • AXPhotoViewer - An iPhone/iPad photo gallery viewer, useful for viewing a large (or small!) number of photos.
  • CTPanoramaView - A library that displays spherical or cylindrical panoramas with touch or motion based controls.
  • DTPhotoViewerController - A fully customizable photo viewer ViewController to display single photo or collection of photos, inspired by Facebook photo viewer.
  • FacebookImagePicker - Facebook album photo picker.
  • Filterpedia - Core image filter.
  • FlexibleImage - A simple way to play with images.
  • gifu - Highly performant animated GIF support for iOS.
  • GPUImage 2 - GPUImage 2 is a BSD-licensed Swift framework for GPU-accelerated video and image processing.
  • HanekeSwift - A lightweight generic cache for iOS with extra love for images.
  • ImageLoader - A lightweight and fast image loader for iOS.
  • ImageScout - Implementation of fastimage - supports PNG, GIF, and JPEG.
  • ImageViewer - An image viewer à la Twitter
  • JLStickerTextView - A UIImageView allow you to add multiple Label (multiple line text support) on it, you can edit, rotate, resize the Label as you want with one finger ,then render the text on Image.
  • KFSwiftImageLoader - An extremely high-performance, lightweight, and energy-efficient async web image loader with memory and disk caching for iOS and Watch.
  • Kingfisher - Image download and caching.
  • LetterAvatarKit - A UIImage extension that generates letter-based avatars.
  • Lightbox - A convenient and easy to use image viewer for your iOS app.
  • MapleBacon - Image download and caching library.
  • MCScratchImageView - A custom ImageView that is used to cover the surface of other view like a scratch card, user can swipe the mulch to see the view below.
  • Misen - A script to support using Xcode Asset Catalog.
  • Moa - An image download extension of the image view for iOS, tvOS and macOS.
  • Nuke - Advanced framework for loading, caching, processing, displaying and preheating images.
  • PASImageView - Async remote download your image and round them, automatically.
  • PassportScanner - Scan the MRZ code of a passport and extract the first name, last name, passport number, nationality, date of birth, expiration date and personal number.
  • Sharaku - Image filtering UI library like Instagram.
  • Snowflake - Work with SVG.
  • SwiftGen-Assets - A tool to auto-generate enums for all your UIImages from your Assets Catalogs.
  • SwiftGif - A small UIImage extension with GIF support.
  • SwiftSVG - A single pass SVG parser with multiple interface options (String, NS/UIBezierPath, CAShapeLayer, and NS/UIView).
  • SwiftyGif - High performance GIF engine.
  • TextDrawer - A UIView allows you to add text with gesture on UIView or UIImage, support resize, rotate, move and edit.
  • TinyCrayon - A smart and easy-to-use image masking and cutout SDK for mobile apps.
  • Toucan - Image processing api.
  • UIImageColors - iTunes style color fetcher for UIImage.
  • Viewer - Image viewer (or Lightbox) with support for local and remote videos and images.
  • Vulcan - Multi image downloader with priority.
  • WDImagePicker - Image picker with customizable crop rectangle (getting update).
  • XAnimatedImage - XAnimatedImage is a performant animated GIF engine for iOS based on FLAnimatedImage.
  • YapImageManager - A high-performance image downloader — powered by YapDatabase.
  • ZImageCropper - Crop image in any shape.

Key Value Coding

Libraries for key-value coding back to top

Keyboard

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

  • IHKeyboardAvoiding - An elegant solution for keeping any UIView visible when the keyboard is being shown. No UIScrollView required.
  • IQKeyboardManager - Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView.
  • KeyboardHideManager - Codeless manager to hide keyboard by tapping on views for iOS.
  • Typist - Small, drop-in UIKit keyboard manager for iOS apps-helps manage keyboard's screen presence and behavior without notification center.

Kit

Libraries for coding with a simplified API back to top

  • BFKit-Swift 🐧 - A collection of useful classes, structs and extensions to develop Apps faster.
  • C4iOS - Harnesses the power of native iOS programming with a simplified API.

Layout

Libs to help you with layout. back to top

  • BrickKit - Create complex and responsive layouts in a simple way.
  • FlexLayout - Nice and clean interface to the highly optimized Facebook yoga Flexbox implementation.
  • JustUiKit - iOS UI Kit With Android-Style. It is designed to make Android developers build iOS UI easily.
  • LayoutKit - LayoutKit is a fast view layout library for iOS, macOS, and tvOS.
  • LayoutLess - Write less UI Code.
  • ManualLayout - Easy to use and flexible AutoLayout alternative for iOS 8+. Supports AsyncDisplayKit.
  • Neon - A powerful programmatic UI layout framework.
  • PinLayout - Fast views layouting without auto layout. No magic, pure code, full control and blazing fast. Concise, intuitive, readable & chainable syntax. Works nicely with FlexLayout.
  • Static - A simple static table views for iOS.
  • Stevia - Elegant view layout for iOS.
  • SwiftBox - Inspired by Flexbox, uses 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. back to top

  • AutoLayoutPlus - A bit of steroids for AutoLayout.
  • Bamboo - Auto Layout (and manual layout) in one line.
  • Cartography - Declarative auto layout lib for your project.
  • Cassowary - A linear constraint solving library using the same algorithm as AutoLayout.
  • Cupcake - An easy way to create and layout UI components for iOS.
  • EasyPeasy - Auto Layout made easy.
  • FormationLayout - Auto Layout lib supports group layout and size classes.
  • KVConstraintKit - An Impressive Autolayout DSL for iOS, tvOS & OSX.
  • MisterFusion - DSL for AutoLayout, supports Size Class.
  • Mortar - A concise but flexible DSL for creating Auto Layout constraints and adding subviews.
  • PureLayout - The ultimate API for iOS & OS X Auto Layout.
  • Restraint - Minimal Auto Layout.
  • SnapKit - Autolayout DSL for iOS & OS X.
  • SwiftAutoLayout - Small DSL for autolayout.
  • Swiftstraints - Powerful auto-layout framework that lets you write constraints in one line of code.
  • TinyConstraints - TinyConstraints is the syntactic sugar that makes Auto Layout sweeter for human use.

Localization

Frameworks that helps with localizing your app back to top

  • BartyCrouch - Incrementally update/translate your Strings files from Code and Storyboards/XIBs.
  • IBLocalizable - Localize your views directly in Interface Builder with IBLocalizable.
  • L10n-swift - Localization of an application with ability to change language "on the fly" and support for plural forms in any language.
  • LocalizationKit - Realtime dynamic localization of your app with remote management so you can manage maintain and deploy translations without resubmitting app.
  • Localize - Localize apps using e.g. regular expressions in Localizable.strings.
  • Localize-Swift - Localize apps using e.g. regular expressions in Localizable.strings.
  • NoOptionalInterpolation - Get rid of "Optional(...)" and "nil" in string interpolation. Easy pluralization.
  • Swifternalization - Localize apps using e.g. regular expressions in Localizable.strings.
  • SwiftGen-L10n - A tool to auto-generate enums for all your Localizable.strings keys (with appropriate associated values if those strings contains printf-format placeholders like %@).

Location

back to top

Logging

Utilities for writing to and reading from the device log back to top

  • AEConsole - Customizable Console UI overlay with debug log on top of your iOS App.
  • CleanroomASL - API for reading from & writing to the Apple System Log.
  • CleanroomLogger - Configurable and extensible high-level logging API that is simple, lightweight and performant.
  • Dotzu - Debbuger tool for iOS developer. Display logs, network request, device informations, crash logs while using the app.
  • Duration 🐧 - Lightweight logging library focused on reporting timings for operations.
  • Evergreen - Most natural logging.
  • HeliumLogger 🐧 - IBM's lightweight logging framework.
  • Log - A logging tool with built-in themes, formatters, and a nice API to define your owns.
  • Printer - A fancy logger for your next app.
  • Puree - A log collector for iOS.
  • QorumLogs - Logging Utility for Xcode & Google Docs.
  • Rainbow 🐧 - Delightful console output.
  • SwiftyBeaver 🐧 - Multi-platform logging during development & release.
  • TinyConsole - A tiny log console to display information while using your iOS app.
  • Watchdog - Utility for logging excessive blocking on the main thread.
  • WatchdogInspector - A logging tool to show the current framerate (fps) in the status bar of your iOS app.
  • Willow - Willow is a powerful, yet lightweight logging library.
  • XCGLogger - Full featured & Configurable logging utility with log levels, timestamps, and line numbers.

Maps

back to top

  • Cluster - Easy Map Annotation Clustering.
  • FlyoverKit - FlyoverKit enables you to present stunning 360° flyover views on your MKMapView with zero effort while maintaining full configuration possibilities.
  • GEOSwift - Make it easier to work with geographic models and calculate intersections, overlapping, projections etc.
  • LocoKit - A location and activity recording framework for iOS.

Math

back to top

  • Arithmosophi - Set of protocols for Arithmetic and Logical operations.
  • BigInt - Arbitrary-precision arithmetic.
  • DDMathParser - DDMathParser makes it easy to parse a String and evaluate it as a mathematical expression.
  • PlotKit - Plots made easy.
  • SigmaSwiftStatistics - A collection of functions for statistical calculation.
  • swix - A general matrix language.
  • Upsurge - Simple and fast matrix and vector math.

Natural Language Processing

back to top

Network

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

  • agent - HTTP request agent.
  • Alamofire 🐧 - Elegant networking.
  • APIKit - Library for building type-safe web API client.
  • BigBrother - Automatically sets the network activity indicator for any performed request.
  • Ciao - Publish and discover services using mDNS (Bonjour, Zeroconf).
  • Conduit - Robust networking for web APIs.
  • Dratini - A neat network layer.
  • Heimdallr.swift - Easy to use OAuth 2 library for iOS.
  • Just 🐧 - HTTP for Humans (a python-requests style HTTP library).
  • Malibu - A networking library built on promises.
  • Moya - Network abstraction layer.
  • NEKit - A toolkit for Network Extension Framework.
  • NetClient - Versatile HTTP networking library.
  • Netfox - A lightweight, one line setup, network debugging library.
  • OAuth2 - oauth2 auth lib.
  • OAuthSwift - OAuth library for iOS.
  • PeerKit - Framework for building event-driven, zero-config Multipeer Connectivity apps.
  • PerfectAPIClient - An API Client based on a network abstraction layer for the Perfect Server-Side Swift Framework
  • Pitaya 🐧 - HTTP / HTTPS networking library just incidentally execute on machines.
  • Postal - Framework providing simple access to common email providers.
  • Reach - A simple class to check for internet connection availability.
  • Reachability.swift - A replacement for Apple's Reachability with closures.
  • ResponseDetective - A non-intrusive framework for intercepting any outgoing requests and incoming responses between your app and server for debugging purposes.
  • ShadowsocksX-NG - A fast tunnel proxy that helps you bypass firewalls.
  • Siesta - Elegant abstraction for REST APIs that untangles stateful messes. An alternative to callback- and delegate-based networking.
  • SolarNetwork - Elegant network abstraction layer.
  • SwiftHTTP - NSURLSession wrapper.
  • SwiftyOAuth - A small OAuth library with a built-in set of providers.
  • Transporter - A tiny library makes uploading and downloading easier.
  • TRON - Lightweight network abstraction layer, written on top of Alamofire.

HTML

Need to manipulate contents from html easily? back to top

  • Fuzi - A fast & lightweight XML/HTML parser with XPath & CSS support.
  • Ji - XML/HTML parser.
  • Kanna - Another XML/HTML parser.
  • SwiftSoup 🐧 - HTML Parser, with best of DOM, CSS, and jquery.
  • WKZombie - Headless browser.

Messaging Protocol

back to top

Socket

back to top

Webserver

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

  • Ambassador - Super lightweight web framework based on SWSGI.
  • Blackfire 🐧 - A minimal, fast and unopinionated web framework.
  • Curassow 🐧 - HTTP server using the pre-fork worker model.
  • Dynamo 🐧 - High performance web server supporting dynamic content.
  • Embassy 🐧 - Super lightweight async HTTP server library.
  • Express 🐧 - Web Application framework, supporting both Synchronous and Asynchronous (Futures based) styles. Inspired by Play framework and Express.js.
  • Frank 🐧 - Frank is a DSL for quickly writing web applications.
  • http4swift 🐧 - A simple HTTP server.
  • Kitura 🐧 - IBM's web framework and server for web services.
  • Kunugi 🐧 - Minimal web framework and middleware.
  • Lightning 🐧 - Multiplatform Single-threaded Non-blocking Web and Networking Framework.
  • Noze.io 🐧 - Evented I/O streams like Node.js.
  • Perfect 🐧 - Server-side Swift. The Perfect library, application server, connectors and example apps.
  • swifter 🐧 - Http server with routing handler.
  • Swifton 🐧 - A Ruby on Rails inspired Web Framework that runs on Linux and OS X.
  • SwiftyHTTP - A simple GCD based HTTP client and server.
  • Taylor - A lightweight library for writing HTTP web servers.
  • Trevi - A powerful Web Application Server Framework Project.
  • Vapor 🐧 - Elegant web framework that works on iOS, OS X, and Ubuntu.
  • XcodeServerSDK - Access Xcode Server API.
  • Zewo 🐧 - Server-Side Swift.

OCR

back to top

  • SwiftOCR - Neural Network based OCR lib.

Optimization

back to top

  • Unreachable 🐧 - Unreachable code path optimization hint.

PDF

back to top

  • PDFGenerator - A simple Generator of PDF. Generate PDF from view(s) or image(s).
  • SimplePDF - Create a simple PDF effortlessly.
  • UXMPDFKit - A PDF viewer and annotator that can be embedded in iOS applications.

Quality

back to top

  • IBLinter - A linter tool for Interface Builder.
  • SwiftLint - A tool to enforce coding conventions.
  • Swimat - Xcode plugin to format code.
  • Tailor 🐧 - Cross-platform static analyzer that helps you to write cleaner code and avoid bugs.

Scripting

back to top

  • Marathon - Easy way to create and manage scripts.

SDK

back to top

Security

back to top

Cryptography

Deal with cryptography method easily back to top

  • CryptoSwift 🐧 - Crypto related functions and helpers.
  • IDZSwiftCommonCrypto - A wrapper for Apple's Common Crypto library.
  • RNCryptor - CCCryptor (Apple's AES encryption) wrappers for iOS and Mac.
  • SCrypto - Elegant Swift interface to access the CommonCrypto routines.
  • Siphash - Simple and secure hashing with the SipHash algorithm.
  • SweetHMAC - A tiny and easy to use class to encrypt strings using HMAC algorithms.
  • Swift-Sodium - Interface to the Sodium library for common crypto operations for iOS and OS X.
  • SwiftSSL - Crypto toolkit.

Keychain

back to top

  • keychain-swift - Helper functions for saving text in Keychain securely for iOS, OS X, tvOS and watchOS.
  • KeychainAccess - Simple wrapper for Keychain that works on iOS and OS X.
  • KeyClip - Keychain framework for iOS.
  • Latch - A simple Keychain Wrapper for iOS.
  • Locksmith - A powerful, protocol-oriented library for working with the iOS Keychain.
  • SwiftKeychainWrapper - Simple static wrapper for the iOS Keychain to allow you to use it in a similar fashion to user defaults.

Streaming

back to top

  • Live - Demonstrate how to build a live broadcast app.

Styling

back to top

  • Ambience - Brightness aware accessibility theme switching without coding.
  • Stylist - Define UI styles in a hot-loadable external yaml or json file.
  • SwiftTheme - Powerful theme/skin manager for iOS 8+.
  • Themes - Theme management.

System

back to top

Testing

A collection of testing frameworks. back to top

  • Buildasaur - Automatic testing of your Pull Requests on GitHub and BitBucket using Xcode Server.
  • CatchingFire - Error handling test library.
  • DVR - A simple network testing framework.
  • Erik - An headless browser to access and manipulate webpages using javascript allowing to run functional tests.
  • Fakery - Fake data generator.
  • Nimble - A matcher framework.
  • OHHTTPStubs - A testing library designed to stub your network requests easily.
  • PinpointKit - Lets your testers and users send feedback with annotated screenshots and logs using a simple gesture.
  • Quick 🐧 - Quick is a behavior-driven development framework.
  • Sleipnir - BDD-style framework.
  • Spectre 🐧 - BDD Framework.
  • SwiftCheck - A testing library that automatically generates random data for testing program properties.
  • UI Testing Cheat Sheet - Answers to common "How do I test this with UI Testing?" questions with a working example app.

Mock

back to top

  • Cuckoo - First boilerplate-free mocking framework.
  • Kakapo - Dynamically Mock server behaviors and responses.
  • Mockingjay - An elegant library for stubbing HTTP requests with ease.
  • Mockit - A simple mocking framework, inspired by the famous Mockito for Java.
  • SwiftMock - A mocking framework.

Text

A collection of text projects. back to top

  • Apodimark - Fast, flexible markdown parser.
  • Atributika - Easily build NSAttributedString by detecting and styling HTML-like tags, hashtags, mentions, RegExp or NSDataDetector patterns.
  • Attributed - Modern µframework for attributed strings.
  • AttributedTextView - Easiest way to create an attributed UITextView with support for multiple links, hashtags and mentions.
  • BonMot - Beautiful, easy attributed strings for iOS.
  • edhita - Fully open source text editor for iOS.
  • Format - Formatting kit for numbers, addresses and colors.
  • Markdown 🐧 - Markdown templates for Swift. Based on Discount library (a library used deep down by GitHub markdown).
  • MarkdownKit - A simple and customizable Markdown Parser.
  • MarkdownView - iOS Markdown view.
  • MarkyMark - Converts Markdown into native views or attributed strings.
  • Mustard - Library for tokenizing strings when splitting by whitespace doesn't cut it.
  • Notepad - A fully themeable markdown editor with live syntax highlighting.
  • Parsey - Parser combinator framework that supports source location tracking, backtracking prevention, and rich error messages.
  • Pluralize.swift - Great String Pluralize Extension.
  • PredicateFlow - PredicateFlow is a builder that allows you to write amazing, strong-typed and easy-to-read NSPredicate.
  • PrediKit - An NSPredicate DSL for iOS & OS X inspired by SnapKit.
  • PySwiftyRegex - Easily deal with Regex in a Pythonic way.
  • Reductio - Automatic summarizer text.
  • Regex by brynbellomy - Wrapper class for NSRegularExpression.
  • Regex by crossroadlabs 🐧 - Very easy to use Regular Expressions library with rich functionality. Features both operator =~ and method based APIs. Unit tests covered.
  • RichEditorView - RichEditorView is a simple, modular, drop-in UIView subclass for Rich Text Editing.
  • Roman 🐧 - Seamless Roman numeral conversion.
  • SmarkDown 🐧 - Markdown processing conforming to Gruber's standards.
  • Sprinter - A library for formatting strings.
  • SwiftRichString - Elegant & Painless Attributed Strings Management Library.
  • SwiftString - A lightweight string extension.
  • SwiftVerbalExpressions - VerbalExpressions porting.
  • SwiftyAttributes - Extensions that make it a breeze to work with attributed strings.
  • SyntaxKit - TextMate-style syntax highlighting.
  • TextAttributes - An easier way to compose attributed strings.

Thread

Threading, task-based or asynchronous programming, Grand Central Dispatch (GCD) wrapper back to top

  • Async - Syntactic sugar for Grand Central Dispatch.
  • AwaitKit - The ES7 Async/Await control flow.
  • Chronos - Grand Central Dispatch Utilities.
  • Dispatcher - Queues, timers, and task groups.
  • Each - Each is a NSTimer bridge library.
  • EKI - Make Grand Central Dispatch easy and fun to use (queue, task, group, timer and semaphore).
  • GCDKit - Grand Central Dispatch simplified.
  • GCDTimer - A well-tested GCD timer.
  • SwiftyTimer - API for NSTimer.

UI

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

  • AECoreDataUI - Core Data driven UI.
  • AGCircularPicker - Helpful component for creating a controller aimed to manage any calculated parameter.
  • AmazingBubbles - Apple Music like Bubble Picker using Dynamic Animation (faster / more lightweight than SpriteKit).
  • AMScrollingNavbar - Scrollable UINavigationBar that follows the scrolling of a UIScrollView.
  • AZTransitions - API to make great custom transitions in one method.
  • BreakOutToRefresh - A playable pull to refresh view using SpriteKit.
  • BulletinBoard - Generates and manages contextual cards displayed at the bottom of the screen.
  • BusyNavigationBar - A UINavigationBar extension to show loading effects.
  • CostumeKit - Base types for theming an app.
  • CountryPickerView - A simple, customizable view for efficiently collecting country information in iOS apps.
  • CustomSegue - Custom segue for OSX Storyboards with slide and cross fade effects.
  • DeckTransition - A library to recreate the iOS 10 Apple Music now playing transition.
  • Dodo - A message bar for iOS.
  • DropDown - A Material Design drop down for iOS.
  • Element - Programmatic UI framework for macOS.
  • Elissa - Displays a notification on top of a UITabBarItem or any UIView anchor view to reveal additional information.
  • EPShapes - Create shapes(Polygons, Stars, Hearts, Arrows) in Interface builder.
  • EstMusicIndicator - Music play indicator like iTunes.
  • EZSwipeController - UIPageViewController like Snapchat/Tinder/iOS Main Pages.
  • FAQView - An easy to use FAQ view for iOS.
  • Fashion - Fashion accessories and beauty tools to share and reuse UI styles.
  • FillableLoaders - Fillable loaders progress.
  • FlagKit - Beautiful flag icons for usage in apps and on the web.
  • FloatRatingView - Floating rating system.
  • Fluid Slider - A slider widget with a popup bubble displaying the precise value selected.
  • GaugeKit - Customizable gauges. Easy reproduce Apple's style gauges.
  • Geometry - extensions for UIView.
  • GIFRefreshControl - A pull to refresh that supports GIF images as track animations.
  • GMStepper - A stepper with a sliding label in the middle.
  • GradientProgressBar - A customizable gradient progress bar (UIProgressView).
  • GRMustache - Flexible Mustache templates.
  • GrowingTextView - UITextView that supports auto growing, placeholder and length limit.
  • Hexacon - A new way to display content in your app like the Apple Watch SpringBoard.
  • HGCircularSlider - A custom reusable circular slider control for iOS application.
  • HoneycombView - HoneycombView is the iOS UIView for displaying like Honyecomb layout.
  • HorizontalDial - A horizontal scroll dial like Instagram.
  • IGColorPicker - A customizable color picker for iOS.
  • ImagePicker - A nicely designed and super easy to use ImagePicker.
  • ImagePickerSheetController - A component that replicates the custom photo action sheet in iMessage.
  • InfoView - Simple information view with pointed arrow.
  • InstantSearch iOS - A library of widgets and helpers to build instant-search features on iOS.
  • KALoader - Beautiful animated placeholders for showing loading of data.
  • KDInteractiveNavigationController - A UINavigationController subclass that support pop interactive UINavigationBar with hidden or show.
  • KMNavigationBarTransition - A drop-in universal library helps you to manage the navigation bar styles and makes transition animations smooth between different navigation bar styles while pushing or popping a view controller for all orientations.
  • KMPlaceholderTextView - A UITextView subclass that adds support for multiline placeholder.
  • LeeGo - Declarative, configurable & highly reusable UI development as making Lego bricks.
  • LicensePlist - A command-line tool that automatically generates a Plist of all your dependencies.
  • LiquidLoader - Spinner loader components with liquid animation.
  • Macaw - Powerful and easy-to-use vector graphics library with SVG support.
  • Magnetic - SpriteKit Floating Bubble Picker (inspired by Apple Music).
  • Mandoline - An iOS picker view to serve all your 'picking' needs.
  • MantleModal - A simple modal resource that uses a UIScrollView to allow the user to close the modal by dragging it down.
  • Material - Express your creativity with Material, an animation and graphics framework for Google's Material Design and Apple's Flat UI.
  • MaterialKit - Material design components.
  • MediaBrowser - Simple iOS photo and video browser with optional grid view, captions and selections.
  • MediumScrollFullScreen - Medium scroll style menubar.
  • MICountryPicker - Country picker with search option.
  • MPParallaxView - Apple TV Parallax effect.
  • MXParallaxHeader - Simple parallax header for UIScrollView.
  • MZFormSheetPresentationController - Provides an alternative to the native iOS UIModalPresentationFormSheet, adding support for iPhone and additional opportunities to setup controller size and feel form sheet.
  • NextGrowingTextView - The next in the generations of 'growing textviews' optimized for iOS 7 and above.
  • NVActivityIndicatorView - Collection of nice loading animations.
  • Otafuku - Some utility classes to use WKWebView.
  • PanelKit - A UI framework that enables panels on iOS.
  • Panoramic - Panoramic facebook story clone.
  • ParallaxView - Controls and extensions for tvOS that add parallax effect to your application.
  • PPAssetsActionController - Highly customizable Action Sheet Controller with assets preview.
  • PPSwiftGifs - Convenient way to show animated GIF images as a part of iOS GUI.
  • PullToDismiss - You can dismiss modal viewcontroller by pulling scrollview or navigationbar.
  • RangeSeekSlider - A customizable range slider like a UISlider for iOS.
  • Reel search - Option list managed as a reel.
  • RetroProgress - Retro looking progress bar straight from the 90s.
  • SAConfettiView - Easily add fun, multi-colored confetti to your app.
  • SAHistoryNavigationViewController - iOS task manager like UI in UINavigationContoller.
  • SectionedSlider - Control Center Slider.
  • SelectionDialog - Simple selection dialog.
  • ShadowView - Make shadows management easy on UIView.
  • Shiny - Iridescent Effect View (inspired by Apple Pay Cash).
  • SkeletonView - An elegant way to show users that something is happening and also prepare them to which contents he is waiting.
  • SKPhotoBrowser - Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers.
  • SMSwipeableTabView - Fully customizable control which is mixture of UIPageViewController and Scrollable Tab Bar.
  • Sonar - Cool radar-style view.
  • Spots - Spots is a view controller framework that makes your setup and future development blazingly fast.
  • SpreadsheetView - Full configurable spreadsheet view user interfaces for iOS applications.
  • StarryStars - Display & edit ratings, fully customizable from interface builder.
  • StatefulViewController - Placeholder views based on content, loading, error or empty states.
  • StepProgressView - Step-by-step progress view with labels and shapes. A good replacement for UIActivityIndicatorView and UIProgressView.
  • SurfingRefreshControl - Customizable pull-to-refresh control.
  • SwiftyUI - High performance and lightweight UIView, UIImage, UIImageView, UIlabel, UIButton and more.
  • SYBlinkAnimationKit - A blink effect animation framework.
  • TagListView - Simple but highly customizable iOS tag list view.
  • Toaster - Notification toasts.
  • TouchVisualizer - Lightweight touch visualization library with a single line of code.
  • Twinkle - Easy way to make elements in your iOS app twinkle.
  • UIDropDown - An elegant dropdown for iOS.
  • UIPheonix - Easy, flexible, dynamic and highly scalable UI framework + concept for reusable component/control-driven apps.
  • URLEmbeddedView - Automatically caches the object that is confirmed the Open Graph Protocol, and displays it as URL embedded card.
  • URWeatherView - Show weather effects onto a view.
  • Wallet - A replica of the Apple's Wallet interface. Add, delete or present your cards and passes.
  • Windless - Windless makes it easy to implement invisible layout loading view.
  • WSTagsField - An iOS text field that represents different Tags.
  • YNSearch - Awesome fully customizable search view like Pinterest.

Alert

Libs to display alert, action sheet, notification, popup. back to top

  • Alertift - Modern, easy UIAlertController wrapper.
  • AlertKit - Alert with a single line of code.
  • Alerts Pickers - Advanced usage of UIAlertController with TextField, DatePicker, PickerView, TableView and CollectionView.
  • CDAlertView - Highly customizable alert/notification/success/error/alarm popup.
  • CFNotify - A customizable framework to create draggable alert views.
  • EZAlertController - Easy UIAlertController.
  • GoogleWearAlert - Google Wear Alert style.
  • GSMessage - A simple style messages/notifications for iOS 7+.
  • Hokusai - A library for a cool bouncy action sheet.
  • HYAlertController - A simple and minimalist iOS AlertController.
  • Jelly - Jelly provides custom view controller transitions with just a few lines of code.
  • Kamagari - Simple UIAlertController builder class.
  • KRAlertController - A beautiful alert controller for your iOS.
  • MaterialActionSheetController - A Google like action sheet, easy to use and customizable.
  • Notie - In-app notification, with customizable buttons and input text field.
  • NotificationBanner - The easiest way to display highly customizable in app notification banners in iOS.
  • PMAlertController - PMAlertController is a great and customizable substitute to UIAlertController.
  • SCLAlertView - Animated Alert view.
  • StatusAlert - Display Apple system-like self-hiding status alerts without interrupting user flow.
  • SweetAlert - Alert system.
  • Swift-Prompts - Design custom prompts with a great scope of options to choose from.
  • SwiftMessages - A very flexible message bar for iOS.
  • SwiftOverlays - various popups and notifications.
  • SwiftyDrop - Lightweight dropdown message bar.
  • Whisper - Messages and in-app notification made easy.
  • XLActionController - Fully customizable and extensible action sheet controller.
  • Zingle - An alert will display underneath your UINavigationBar.

ApplicationDelegate

back to top

  • SuperDelegate - SuperDelegate provides a clean application delegate interface and protects you from bugs in the application lifecycle.

Blur

back to top

Button

back to top

Calendar

back to top

  • CalendarKit - Fully customizable calendar day view.
  • DateTimePicker - A nicer iOS UI component for picking date and time.
  • JTAppleCalendar - UI calendar handler.
  • Karmadust - Unidirectional Calendar Component with Native Events Support.
  • Koyomi - Simple customizable calendar component.
  • Workaholic - A GitHub-like work contribution timeline.

Form

back to top

  • Eureka - Elegant iOS form builder.
  • Former - A fully customizable library for easy creating UITableView based form.
  • SwiftForms - Forms are now easy as 1-2-3.
  • SwiftyFORM - Forms that can be validated.

HUD

back to top

Label

back to top

  • ActiveLabel - UILabel drop-in replacement supporting Hashtags (#), Mentions (@) and URLs (http://).
  • CharacterText - Perform fx on UILabel.
  • CountdownLabel - Simple countdown UILabel with morphing animation, and some useful function.
  • FloatLabelFields - Text entry controls which contain a built-in title/label so that you don't have to add a separate title for each field.
  • GlitchLabel - Glitching UILabel for iOS.
  • IncrementableLabel - An UILabel subclass to (de)increment numbers in an UILabel.
  • KDEDateLabel - An UILabel subclass that updates itself to make time ago's format easier.
  • LTMorphingLabel - Graceful morphing effects for UILabel.
  • NumberMorphView - A label view for displaying numbers which can transition or animate using a technique called number tweening or number morphing.
  • SlidingText - UIView for sliding text with page indicator.
  • SMIconLabel - UILabel with image placed from left or right.
  • Translucid - Lightweight library to set an Image as text background.
  • TriLabelView - A triangle shaped corner label view for iOS.

Menu

back to top

Pagination

back to top

  • CHIPageControl - A set of cool animated page controls to replace boring UIPageControl.
  • Pageboy - A simple, highly informative page view controller.
  • PageController - Infinite paging controller.
  • PageControls - Custom UIPageControl.
  • SlideController - It is a nice alternative for UIPageViewController built using power of generic types. Swipe between pages with an interactive title navigation control. Configure horizontal or vertical chains for unlimited pages amount.

Payment

back to top

  • Caishen - A Payment Card UI & Validator for iOS.
  • iCard - Bank Card Generator using SnapKit DSL.
  • MFCard - Easily integrate Credit Card payments in iOS App.

Permissions

back to top

  • AREK - AREK is a clean and easy to use wrapper over any kind of iOS permission.
  • Permission - A unified API to ask for permissions on iOS.
  • PermissionScope - A Periscope-inspired way to ask for iOS permissions.

StackView

back to top

Switch

back to top

Tab

back to top

Template

back to top

  • Stencil - Simple and powerful template language.
  • SwiftCssParser - Extensible CSS parser.
  • TemplateKit - React-inspired framework for building component-based user interfaces.

TextField

back to top

  • CBPinEntryView - Easy to use, very customisable pin entry.
  • DTTextField - DTTextField is a custom textfield with floating placeholder and error label.
  • HTYTextField - A UITextField with bouncy placeholder.
  • PasswordTextField - A custom TextField with a switchable icon which shows or hides the password and enforces good password policies.
  • SkyFloatingLabelTextField - A beautiful and flexible text field control implementation of "Float Label Pattern".
  • TaniwhaTextField - Lightweight and beautiful textfield framework, highly customisable, includes float label pattern.
  • TextFieldCounter - UITextField character counter with lovable UX.
  • TextFieldEffects - Several ready to use effects for UITextFields.
  • UITextField-Navigation - UITextField-Navigation adds next, previous and done buttons to the keyboard for your UITextFields. Highly customizable.

Transition

back to top

  • AudioIndicatorBars - AIB indicates for your app users which audio is playing. Just like the Podcasts app.
  • BubbleTransition - Bubble transition in an easy way.
  • Cards XI - Awesome iOS 11 AppStore's Card Views.
  • ElasticTransition - An interactive transition that simulates an elastic drag.
  • Hero - Elegant transition library for iOS.
  • ImageOpenTransition - Beautiful and precise transitions between ViewControllers images.
  • MusicPlayerTransition - Custom interactive transition like Apple Music iOS App.
  • PinterestSwift - Pinterest style transition.
  • RevealingSplashView - A Splash view that animates and reveals its content, inspired by the Twitter splash.
  • SendIndicator - Yet another task indicator.
  • StarWars.iOS - Transition animation to crumble view-controller into tiny pieces.
  • Transition - Easy interactive interruptible custom ViewController transitions.
  • TransitionManager - Painless custom transitioning. Easy extend, easy setup, just focus on animations.

UICollectionView

back to top

  • AZCollectionViewController - Easy way to integrate pagination with dummy views in CollectionView, make Instagram Discover withing minutes.
  • Blueprints - A framework that is meant to make your life easier when working with collection view flow layouts.
  • BouncyLayout - Collection view layout that makes your cells bounce.
  • CardsLayout - Nice card-designed custom CollectionView layout.
  • CenteredCollectionView - A lightweight UICollectionViewLayout that pages and centers it's cells.
  • CollectionViewShelfLayout - A UICollectionViewLayout subclass displays its items as rows of items similar to the App Store Feature tab without a nested UITableView/UICollectionView hack.
  • CollectionViewSlantedLayout - UICollectionViewLayout to show slanted content.
  • Drag and Drop UICollectionView - Dragging and Dropping data across multiple UICollectionViews.
  • FSPagerView - Elegant Screen Slide Library. It is extremely helpful for making Banner View、Product Show、Welcome/Guide Pages、Screen/ViewController Sliders.
  • GravitySlider - Beautiful alternative to the standard UICollectionView flow layout.
  • RAReorderableLayout - A UICollectionView layout which can move an item with drag and drop.
  • ReplaceAnimation - Pull-to-refresh animation in UICollectionView with a sticky header flow layout.
  • Sapporo - A cellmodel-driven CollectionView manager.
  • ShelfView-iOS - iOS custom view to display books on shelf.
  • SwiftSpreadsheet - Fully customizable spreadsheet CollectionViewLayout.
  • TagCellLayout - UICollectionView layout for Tags with Left, Center & Right alignments.
  • VegaScroll - Lightweight animation flowlayout for UICollectionView completely written in Swift 4.

UITableView

back to top

  • AZTableViewController - Elegant and easy way to integrate pagination with placeholder views.
  • DTTableViewManager - Protocol-oriented UITableView management, powered by generics and associated types.
  • ExpandableCell - Fully refactored YNExapnadableCell with more concise, bug free. Easiest usage of expandable & collapsible cell for iOS. You can customize expandable UITableViewCell whatever you like. ExpandableCell is made because insertRows and deleteRows is hard to use. Just inheirt ExpandableDelegate
  • ExpyTableView - Make your table view expandable just by implementing one method.
  • folding-cell - Folding cell transition.
  • GridView - Can be customized as a time table, spreadsheet, paging and more.
  • Hakuba - A new way to manage UITableView without the code of UITableViewDelegate and UITableViewDataSource.
  • HGPlaceholders - Nice library to show placeholders and Empty States for any UITableView/UICollectionView in your project.
  • ParallaxHeader - Simple way to add parallax header to UIScrollView/UITableView.
  • Persei - Animated top menu for UITableView / UICollectionView / UIScrollView.
  • PullToRefreshSwift - PullToRefresh library.
  • ReverseExtension - UITableView extension that enables the insertion of cells the from bottom of a table view.
  • SectionScrubber - A component to quickly scroll between collection view sections.
  • Shoyu - Easier way to represent the structure of UITableView.
  • SwipeCellKit - Swipeable UITableViewCell based on the stock Mail.app.
  • YNExpandableCell - Awesome expandable, collapsible tableview cell for iOS.

Walkthrough

back to top

  • AwesomeSpotlightView - Create tutorial or coach tour.
  • BWWalkthrough - A class to build custom walkthroughs for your iOS App.
  • Gecco - Spotlight view for iOS.
  • Instructions - A library to create app walkthroughs and guided tours.
  • RazzleDazzle - A simple keyframe-based animation framework for iOS. Perfect for scrolling app intros.
  • SwiftyOnboard - An iOS framework that allows developers to create beautiful onboarding experiences.
  • SwiftyWalkthrough - The easiest way to create a great walkthrough experience in your apps.

Utility

Some interesting utilities to help you in your projects back to top

  • Alexandria - A large set of convenience extensions for UIKit and Foundation.
  • AlexaSkillsKit - Develop custom Alexa Skills.
  • ArrayDiff - A fast, UITableView/UICollectionView-compatible array diffing microframework.
  • Basis - Pure Declarative Programming.
  • Butterfly - A lightweight library for integrating bug-report and feedback features with shake-motion event.
  • CallbackURLKit - Implementation of x-callback-url (Inter app communication).
  • Closures - Swifty closures for UIKit and Foundation.
  • Cormorant - Clojure(ish) interpreter.
  • Curry - Function currying.
  • DeepDiff - Fast diff library.
  • Delegated - Closure-based delegation without memory leaks.
  • Dollar - Similar to Lo-Dash or Underscore in Javascript.
  • ExSwift - Extensions for standard types and classes.
  • EZSwiftExtensions - How standard types and classes were supposed to work.
  • FluxCapacitor - FluxCapacitor makes implementing Flux design pattern easily with protocols and typealias.
  • Focus - Optics library (includes Lens, Prisms, and Isos) that is inspired by Haskell's Lens library.
  • Highlighter - Highlight whatever you want! Highlighter will magically find UI objects such as UILabel, UITextView, UITexTfield, UIButton in your UITableViewCell or other Class.
  • LifetimeTracker - Surface retain cycle / memory issues right as you develop your application.
  • ObjectiveKit - API for Objective C runtime functions.
  • OpenSourceController - The simplest way to display the librarie's licences used in your application.
  • Popsicle - Delightful, extensible value interpolation framework.
  • Prelude - Framework of simple functional programming tools.
  • protobuf-swift - ProtocolBuffers.
  • Prototope - Library of lightweight interfaces for prototyping, bridged to JS.
  • Pythonic.swift - Selected parts of Python standard library.
  • R.swift - Tool to get strong typed, autocompleted resources like images, cells and segues.
  • RandomKit 🐧 - Random data generation.
  • ReactiveArray - An array class that can be observed using ReactiveCocoa's Signals.
  • ReadabilityKit - Preview extractor for news, articles and full-texts.
  • ResourceKit - Enable autocomplete use resources.
  • Result - Type modelling the success/failure of arbitrary operations.
  • Runes - Functional operators: flatMap, map, apply.
  • seguecode - Support tool that provides compile-time safeties around building with UIStoryboards by exporting code regarding Scenes, Segues, Table and Collection Views and more.
  • Solar - Calculate sunrise and sunset times given a location.
  • SpriteKit+Spring - SpriteKit API reproducing UIView's spring animations with SKAction.
  • Sugar - Something sweet that goes great with your Cocoa.
  • Swift Sugar - Port of objsugar.
  • SwiftBitmask - Bitmask<T> type intended as a replacement for RawOptionSet.
  • SwifterSwift - A handy collection of more than 500 native Swift 3 extensions to boost your productivity.
  • SwiftGen-Storyboard - A tool to auto-generate enums for all your Storyboards, Scenes and Segues constants + appropriate convenience accessors.
  • SwiftLinkPreview - It makes a preview from an url, grabbing all information such as title, relevant texts and images.
  • SwiftRandom - A tiny generator of random data.
  • SwiftRater - A utility that reminds your iPhone app's users to review the app.
  • SwiftSequence - A framework of extensions for SequenceType, inspired by Python's itertools.
  • SwiftSortUtils - Useful functions and extensions for sorting.
  • SwiftTweaks - Tweak your iOS app without recompiling.
  • Swiftx - Functional data types and functions for any project.
  • SwiftyStateMachine - Framework for creating state machines.
  • SwiftyUtils - All the reusable code that we need in each project.
  • Swiftz - Functional programming.
  • Then - Super sweet syntactic sugar for initializers.
  • undefined - Nano framework which defines Haskell's undefined.
  • URLQueryItemEncoder - An Encoder for encoding any Encodable value into an array of URLQueryItem.
  • UTIKit - an UTI (Uniform Type Identifier) wrapper.
  • WhatsNew - Showcase new features after an app update similar to Pages, Numbers and Keynote.
  • XestiMonitors - An extensible monitoring framework.

Validation

A collection of validation libs. back to top

  • FormValidatorSwift - Allows you to validate inputs of text fields and text views in a convenient way.
  • Honour - Simple and powerful Validation Library.
  • Input Mask - Pattern-based user input formatter, parser and validator for iOS.
  • SwiftValidator - A rule-based validation library.
  • SwiftValidators - String validation for iOS (inspired by validator.js).
  • Validator - Drop in user input validation for your iOS apps.

Phone Numbers

back to top

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

Version Manager

back to top

  • AppVersionMonitor - Monitor iOS app version easily.
  • Siren - Notify users when a new version of your app is available and prompt them to upgrade.
  • Version - Version represents and compares semantic versions.
  • Version Tracker Swift - Versions tracker for your iOS, OS X, and tvOS app.
  • Version Update - Check and update app's version for both AppStore & Fir.
  • Versions - Helping you find inner peace when comparing version numbers.
  • VersionsTracker - Versions tracker keeping track of os and app version installation history including dates.

Video

back to top

  • BMPlayer - A video player for iOS, based on AVPlayer, support the horizontal, vertical screen. support adjust volume, brigtness and seek by slide.
  • MMPlayerView - Custom AVPlayerLayer on view and transition player with good effect like YouTube and Facebook.
  • MobilePlayer - A powerful and completely customizable media player for iOS.
  • NextLevelSessionExporter - Export and transcode media.
  • Player - iOS video player, simple drop in component for playing and streaming media.
  • PlayerView - Easy to use video player using a UIView, manage rate of reproduction, screenshots and callbacks-delegate for player state.
  • PryntTrimmerView - Trim and crop videos.
  • SwiftVideoBackground - Easy to Use UIView subclass for implementating a video background.
  • VGPlayer - A simple iOS video player, support play local and network, background playback mode, automatic caching while playing.

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

About

A collaborative list of awesome Swift libraries and resources. Feel free to contribute!

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 82.2%
  • Ruby 12.4%
  • JavaScript 4.0%
  • Shell 1.4%