awesome-ios

A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects

3 years after

Awesome Build Status

A curated list of awesome iOS frameworks, libraries, tutorials, Xcode plugins, components and much more. The list is divided into categories such as Frameworks, Components, Testing and others, open source projects, free and paid services. There is no pre-established order of items in each category, the order is for contribution. If you want to contribute, please read the guide.

Projects in Swift will be marked with :large_orange_diamond:, Swift Extensions will be marked with :large_orange_diamond:[e] and ⌚ for Apple Watch projects. Feel free to add your project.

Contents

Getting Started

Libraries And Frameworks

Animation

  • Pop - An extensible iOS and OS X animation library, useful for physics-based interactions.
  • AnimationEngine - Easily build advanced custom animations on iOS.
  • Awesome-iOS-Animation - Collection of Animation projects
  • RZTransitions - A library of custom iOS View Controller Animations and Interactions.
  • DCAnimationKit - A collection of animations for iOS. Simple, just add water animations.
  • Spring - A library to simplify iOS animations in Swift.
  • Canvas - Animate in Xcode without code http://canvaspod.io
  • Fluent - Swift animation made easy :large_orange_diamond:
  • Cheetah - Easy animation library on iOS with Swift2. :large_orange_diamond:
  • RadialLayer - Animation for clickable elements (similar to Youtube Music). :large_orange_diamond:
  • Pop By Example - A project tutorial in how to use Pop animation framework by example.
  • AppAnimations - Collection of iOS animations to inspire your next project
  • EasyAnimation - A Swift library to take the power of UIView.animateWithDuration() to a whole new level - layers, springs, chain-able animations, and mixing view/layer animations together. :large_orange_diamond:
  • Animo - SpriteKit-like animation builders for CALayers. :large_orange_diamond:
  • CurryFire - A framework for creating unique animations.
  • IBAnimatable - Design and prototype UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable. :large_orange_diamond:
  • CKWaveCollectionViewTransition - Cool wave like transition between two or more UICollectionView :large_orange_diamond:
  • DaisyChain - :link: Easy animation chaining :large_orange_diamond:
  • SYBlinkAnimationKit - A blink effect animation framework for iOS, written in Swift. :large_orange_diamond:
  • PulsingHalo - iOS Component for creating a pulsing animation.
  • DKChainableAnimationKit - :star: Chainable animations in Swift :large_orange_diamond:[e]

Apple TV

  • Voucher - A simple library to make authenticating tvOS apps easy via their iOS counterparts.
  • XCDYouTubeKit - YouTube video player for iOS, tvOS and OS X
  • TVMLKitchen - Swifty TVML template manager without client-server :large_orange_diamond:
  • BrowserTV - Turn your TV into a dashboard displaying any webpage! :large_orange_diamond:
  • Swift-GA-Tracker-for-Apple-tvOS - Google Analytics tracker for Apple tvOS provides an easy integration of Google Analytics’ measurement protocol for Apple TV. :large_orange_diamond:

Bridging

  • RubyMotion - RubyMotion is a revolutionary toolchain that lets you quickly develop and test native iOS and OS X applications for iPhone, iPad and Mac, all using the Ruby language.
  • JSPatch - JSPatch bridge Objective-C and Javascript using the Objective-C runtime. You can call any Objective-C class and method in JavaScript by just including a small engine. JSPatch is generally use for hotfix iOS App.

Cache

  • SDURLCache - URLCache subclass with on-disk cache support on iPhone/iPad.
  • Awesome Cache - Delightful on-disk cache :large_orange_diamond:
  • mattress - iOS Offline Caching for Web Content :large_orange_diamond:
  • Carlos - A simple but flexible cache :large_orange_diamond:
  • HanekeSwift - A lightweight generic cache for iOS written in Swift with extra love for images. :large_orange_diamond:

Color

  • Chameleon - A lightweight, yet powerful, flat color framework for iOS (ObjC & Swift). :large_orange_diamond:
  • SDevFlatColors - Flat Colors on Swift :large_orange_diamond:
  • ColorArt - extract dominant colors from image like iTunes 11.
  • DynamicColor - Yet another extension to manipulate colors easily in Swift. :large_orange_diamond:[e]
  • SwiftHEXColors - HEX color handling as an extension for UIColor. :large_orange_diamond:[e]
  • Colours - A beautiful set of predefined colors and a set of color methods to make your iOS/OSX development life easier.
  • UIColor-Hex-Swift - Convenience method for creating autoreleased color using RGBA hex string. :large_orange_diamond:
  • Crayons - An Xcode plugin to improve dealing with colors in your project
  • Hue - Hue is the all-in-one coloring utility that you'll ever need.
  • FlatUIColors - Flat UI color palette helpers written in Swift. :large_orange_diamond:
  • RandomColorSwift - An attractive color generator for Swift. Ported from randomColor.js. :large_orange_diamond:
  • PFColorHash - Generate color based on the given string. :large_orange_diamond:

Charts

  • ios-charts - A powerful chart / graph framework, the iOS equivalent to MPAndroidChart. :large_orange_diamond:
  • JTChartView - JTChartView is the new lightweight and fully customizable solution to draw a chart.
  • PNChart - A simple and beautiful chart lib used in Piner and CoinsMan for iOS
  • BEMSimpleLineGraph - Elegant Line Graphs for iOS (charting library).
  • JBChartView - iOS-based charting library for both line and bar graphs.
  • iOSPlot - Chart library for iOS.
  • XYPieChart - A simple and animated Pie Chart for your iOS app.
  • TEAChart - Simple and intuitive iOS chart library. Contribution graph, clock chart, and bar chart.
  • EChart - iOS/iPhone/iPad Chart, Graph. Event handling and animation supported.
  • FSLineChart - A line chart library for iOS.
  • chartee - a charting library for mobile platforms.
  • ANDLineChartView - ANDLineChartView is easy to use view-based class for displaying animated line chart.
  • TWRCharts - An iOS wrapper for ChartJS. Easily build animated charts by leveraging the power of native Obj-C code.
  • SwiftCharts - Easy to use and highly customizable charts library for iOS. :large_orange_diamond:

Core Data

  • CWCoreData - Additions and utilities to make it concurrency easier with the Core Data framework.
  • ObjectiveRecord - ActiveRecord for Objective-C.
  • SSDataKit - Eliminate your Core Data boilerplate code.
  • ios-queryable - ios-queryable is an implementation of IQueryable/IEnumerable for Core Data.
  • ReactiveCoreData - ReactiveCoreData (RCD) is an attempt to bring Core Data into the ReactiveCocoa (RAC) world.
  • Ensembles - A synchronization framework for Core Data.
  • SLRESTfulCoreData - Objc naming conventions, autogenerated accessors at runtime, URL substitutions and intelligent attribute mapping.
  • Mogenerator - Automatic Core Data code generation.
  • HardCoreData - CoreData stack and controller that will never block UI thread.
  • encrypted-core-data - Core Data encrypted SQLite store using SQLCipher.
  • MagicalRecord - Super Awesome Easy Fetching for Core Data.
  • QueryKit - A simple type-safe Core Data query language. :large_orange_diamond:
  • CoreStore - Powerful Core Data framework for Incremental Migrations, Fetching, Observering, etc. :large_orange_diamond:
  • Core Data Query Interface A type-safe, fluent query framework for Core Data. :large_orange_diamond:
  • Graph - An elegant data-driven framework for CoreData in Swift. :large_orange_diamond:
  • CoreDataDandy - A feature-light wrapper around Core Data that simplifies common database operations. :large_orange_diamond:

Database

  • Realm - The alternative to CoreData and SQLite: Simple, modern and fast.
  • YapDatabase - YapDatabase is an extensible database for iOS & Mac.
  • Couchbase Mobile - Couchbase document store for mobile with cloud sync.
  • FMDB - A Cocoa / Objective-C wrapper around SQLite.
  • Akaibu-NSUserDefaults - a Swifty Key-value store for archiving NSObject in only one line of code. Class properties are automatically mapped and archived under the hood.
  • FCModel - An alternative to Core Data for people who like having direct SQL access.
  • Zephyr - Effortlessly sync NSUserDefaults over iCloud :large_orange_diamond:
  • Prephirences - Prephirences is a Swift library that provides useful protocols and convenience methods to manage application preferences, configurations and app-state. :large_orange_diamond:
  • Storez - Safe, statically-typed, store-agnostic key-value storage (with namespace support). :large_orange_diamond:
  • SwiftyUserDefaults - Statically-typed NSUserDefaults. :large_orange_diamond:
  • swiftydb - Making SQLite databases a blast :large_orange_diamond:
  • SugarRecord - Data persistence management library written in Swift 2.0 :large_orange_diamond:
  • SQLite.swift - A type-safe, Swift-language layer over SQLite3. :large_orange_diamond:
  • GRDB.swift - A versatile SQLite toolkit for Swift :large_orange_diamond:

Date & Time

  • Every.swift - Wrapper for NSTimer :large_orange_diamond:
  • Timepiece - Intuitive NSDate extensions :large_orange_diamond:[e]
  • SwiftDate - Easy NSDate Management in Swift 2.0 :large_orange_diamond:
  • SwiftMoment - A time and calendar manipulation library written in Swift 2 :large_orange_diamond:
  • DateTools - Dates and times made easy in Objective-C
  • Punctual.swift - Swift dates, more fun. :large_orange_diamond:
  • SwiftyTimer - Swifty API for NSTimer :large_orange_diamond:[e]
  • AFDateHelper - Convenience extension for NSDate in Swift :large_orange_diamond:[e]
  • Tempo - Date and time manager for iOS/OSX written in Swift :large_orange_diamond:

Graphics

  • Graphicz - Light-weight, operator-overloading-free complements to CoreGraphics! :large_orange_diamond:
  • PKCoreTechniques - The code for my CoreGraphics+CoreAnimation talk, held during the 2012 iOS Game Design Seminar at the Technical University Munich.
  • MPWDrawingContext - An Objective-C wrapper for CoreGraphics CGContext
  • DePict - A simple, declarative, functional drawing framework, in Swift! :large_orange_diamond:

Encryption

  • AESCrypt-ObjC - A simple and opinionated AES encrypt / decrypt Objective-C class that just works.
  • IDZSwiftCommonCrypto - A wrapper for Apple's Common Crypto library written in Swift. :large_orange_diamond:

Hardware

Bluetooth
  • Discovery - A very simple library to discover and retrieve data from nearby devices (even if the peer app works at background).
  • LGBluetooth - Simple, block-based, lightweight library over CoreBluetooth. Will clean up your Core Bluetooth related code.
  • PeerKit An open-source Swift framework for building event-driven, zero-config Multipeer Connectivity apps. :large_orange_diamond:
  • simple-share - Easy Proximity-based Bluetooth LE Sharing for iOS.
  • BluetoothKit - Easily communicate between iOS/OSX devices using BLE. :large_orange_diamond:
  • CocoaMultipeer - This repository is a peer to peer framework for OS X, iOS and watchOS 2 that presents a similar interface to the MultipeerConnectivity framework (which is iOS only) that lets you connect any 2 devices from any platform. :large_orange_diamond:
  • Bluetonium - Bluetooth mapping in Swift :large_orange_diamond:
  • BlueCap - iOS Bluetooth LE framework :large_orange_diamond:
Camera
  • TGCameraViewController - Custom camera with AVFoundation. Beautiful, light and easy to integrate with iOS projects.
  • PBJVision - iOS camera engine, features touch-to-record video, slow motion video, and photo capture.
  • Cool-iOS-Camera - A fully customisable and modern camera implementation for iOS made with AVFoundation.
  • SCRecorder - Camera engine with Vine-like tap to record, animatable filters, slow motion, segments editing.
  • ALCameraViewController - A camera view controller with custom image picker and image cropping. Written in Swift. :large_orange_diamond:
  • ImagePicker - Reinventing the way ImagePicker works. :large_orange_diamond:
  • CameraManager - Simple Swift class to provide all the configurations you need to create custom camera view in your app. :large_orange_diamond:
Location
  • IngeoSDK - Always-On Location monitoring framework for iOS.
  • LocationManager - Provides a block-based asynchronous API to request the current location, either once or continuously.
  • LocationKit - Advanced location SDK - highly accurate location data with very low battery drain and contextual location information
iBeacon
  • Proxitee - Allows developers to create proximity aware applications utilizing iBeacons & geo fences.
  • OWUProximityManager - iBeacons + CoreBluetooth.
  • Vicinity - Vicinity replicates iBeacons (by analyzing RSSI) and supports broadcasting and detecting low-energy bluetooth devices in the background.
  • BeaconEmitter - Turn your Mac as an iBeacon.
  • MOCA Proximity - Paid proximity marketing platform that lets you add amazing proximity experiences to your app.
Other Hardware
  • MotionKit - Get the data from Accelerometer, Gyroscope and Magnetometer in only Two or a few lines of code. CoreMotion now made insanely simple.
  • DarkLightning -Simply the fastest way to transmit data between iOS and OSX

EventBus

  • Caravel - A Swift event bus for UIWebView and JS :large_orange_diamond:
  • SwiftEventBus - A publish/subscribe event bus optimized for iOS8. :large_orange_diamond:
  • PromiseKit - Promises for iOS and OS X.
  • Bolts - Bolts is a collection of low-level libraries designed to make developing mobile apps easier, including tasks (promises) and app links (deep links).
  • SwiftTask - Promise + progress + pause + cancel + retry for Swift. :large_orange_diamond:

Files

  • FileKit - Simple and expressive file management in Swift. :large_orange_diamond:
  • Zip - Swift framework for zipping and unzipping files. :large_orange_diamond:

Functional Programming

  • Forbind - Functional chaining and promises in Swift. :large_orange_diamond:
  • Funky - Functional programming tools and experiments in Swift. :large_orange_diamond:
  • LlamaKit - Collection of must-have functional Swift tools. :large_orange_diamond:
  • Oriole - A functional utility belt implemented as Swift 2.0 protocol extensions. :large_orange_diamond:[e]
  • Prelude - Swift µframework of simple functional programming tools. :large_orange_diamond:
  • Swiftx - Functional data types and functions for any project. :large_orange_diamond:
  • Swiftz - Functional programming in Swift. :large_orange_diamond:
  • OptionalExtensions - Swift µframework with extensions for the Optional Type. :large_orange_diamond:[e]
  • Hookah - Hookah is a functional library for Swift. It's inspired by LoDash, Underscore project. :large_orange_diamond:
  • Argo - Functional JSON parsing library for Swift :large_orange_diamond:

JSON

  • JSONKit - Objective-C JSON.
  • TouchJSON - A humane JSON Objective-C un-framework.
  • JSON-Framework - This framework implements a strict JSON parser and generator in Objective-C.
  • Mantle - Model framework for Cocoa and Cocoa Touch.
  • Groot - Convert JSON dictionaries and arrays to and from Core Data managed objects.
  • KZPropertyMapper - Data mapping and validation with minimal amount of code.
  • JSONModel - Magical Data Modelling Framework for JSON. Create rapidly powerful, atomic and smart data model classes.
  • SwiftyJSON - The better way to deal with JSON data in Swift. :large_orange_diamond:
  • FastEasyMapping - Serialize & deserialize JSON fast.
  • OCMapper - Objective-C & Swift library to easily map NSDictionary to model objects. :large_orange_diamond:
  • ObjectMapper - A framework written in Swift that makes it easy for you to convert your Model objects (Classes and Structs) to and from JSON. :large_orange_diamond:
  • JASON - JSON parsing with outstanding performances and convenient operators. :large_orange_diamond:
  • Gloss - A shiny JSON parsing library in Swift. :large_orange_diamond:
  • Cereal - Swift object serialization :large_orange_diamond:
  • SwiftyJSONAccelerator - Generate Swift model files from JSON using either SwiftyJSON or ObjectMapper. Supports NSCoding and provides method for JSON string representation of the model. :large_orange_diamond:
  • JSONCodable - Hassle-free JSON encoding and decoding in Swift :large_orange_diamond:
  • Coolie - Coolie helps you to create models (& their constructors) from JSON file. :large_orange_diamond:
  • Tailor - A super fast & convenient object mapper tailored for your needs. :large_orange_diamond:
  • alexander - An extremely simple JSON helper written in Swift. :large_orange_diamond:
  • Freddy - A reusable framework for parsing JSON in Swift. :large_orange_diamond:
  • EVReflection - Reflection based JSON encoding and decoding. Including support for NSDictionary, NSCoding, Printable, Hashable and Equatable :large_orange_diamond:

Layout

  • ios-flexboxkit - A simple UIKit extension to wrap Flexbox layouts.
  • Masonry - Harness the power of AutoLayout NSLayoutConstraints with a simplified, chainable and expressive syntax.
  • FLKAutoLayout - UIView category which makes it easy to create layout constraints in code.
  • Façade - Programmatic view layout for the rest of us - an autolayout alternative.
  • PureLayout - The ultimate API for iOS & OS X Auto Layout — impressively simple, immensely powerful. Objective-C and Swift compatible.
  • SnapKit - A Swift Autolayout DSL for iOS & OS X. :large_orange_diamond:
  • Cartography - A declarative Auto Layout DSL for Swift :large_orange_diamond:
  • AutoLayoutPlus - A bit of steroids for AutoLayout, powered by Swift. :large_orange_diamond:
  • Neon - A powerful Swift programmatic UI layout framework. :large_orange_diamond:
  • MisterFusion - A Swift DSL for AutoLayout. It is the extremely clear, but concise syntax, in addition, can be used in both Swift and Objective-C.
  • SwiftBox - Flexbox in Swift, using Facebook's css-layout. :large_orange_diamond:
  • ManualLayout - Easy to use and flexible library for manually laying out views and layers for iOS and tvOS. Supports AsyncDisplayKit. :large_orange_diamond:[e]
  • Stevia - Elegant view layout for iOS. :large_orange_diamond:
  • Manuscript - AutoLayoutKit in pure Swift. :large_orange_diamond:

Logging

  • CleanroomLogger - A configurable and extensible Swift-based logging API that is simple, lightweight and performant. :large_orange_diamond:
  • CocoaLumberjack - A fast & simple, yet powerful & flexible logging framework for Mac and iOS.
  • NSLogger - a high perfomance logging utility which displays traces emitted by client applications running on Mac OS X, iOS and Android.
  • Aardvark - A performant logging framework that makes it dead simple to create actionable bug reports on iOS.
  • BlockTypeDescription - Show type signatures when logging blocks.
  • QorumLogs — Swift Logging Utility for Xcode & Google Docs. :large_orange_diamond:
  • Log - A logging tool with built-in themes, formatters, and a nice API to define your owns. :large_orange_diamond:
  • Rainbow - Delightful console output for Swift developers. :large_orange_diamond:
  • KZLinkedConsole - Clickable links in your Xcode console, so you never wonder which class logged the message. http://merowing.info :large_orange_diamond:
  • SwiftyBeaver - Colorful, lightweight & fast logging in Swift 2 :large_orange_diamond:
  • SwiftyTextTable - A lightweight tool for generating text tables. :large_orange_diamond:

Maps

  • Route-me - Open source map library for iOS.
  • NAMapKit - Allows you to use custom maps in iphone applications and attempts to mimics some of the behaviour of the MapKit framework.
  • Mapbox GL - An OpenGL renderer for Mapbox Vector Tiles with SDK bindings for iOS.
  • CMMapLauncher - iOS library that makes it quick and easy to show directions in various mapping applications.
  • ALPlacesViewController - A place picker and location search using Google's places api webserice :large_orange_diamond:

Media

Audio
  • AudioBus - Add Next Generation Live App-to-App Audio Routing
  • AudioKit - A powerful toolkit for synthesizing, processing, and analyzing sounds.
  • EZAudio - An iOS/OSX audio visualization framework built upon Core Audio useful for anyone doing real-time, low-latency audio processing and visualizations.
  • novocaine - Painless high-performance audio on iOS and Mac OS X.
  • QHSpeechSynthesizerQueue - Queue management system for AVSpeechSynthesizer (iOS Text to Speech).
  • StreamingKit - A fast and extensible gapless AudioPlayer/AudioStreamer for OSX and iOS.
  • sound-fader-ios - A sound fader for AVAudioPlayer written in Swift. :large_orange_diamond:
  • Chirp - The easiest way to prepare, play, and remove sounds in your Swift app! :large_orange_diamond:
  • Beethoven - An audio processing Swift library for pitch detection of musical signals. :large_orange_diamond:
  • Jukebox - Player for streaming local and remote audio files. Written in Swift. :large_orange_diamond:
  • AudioPlayerSwift - AudioPlayer is a simple class for playing audio (basic and advanced usage) in iOS, OS X and tvOS apps :large_orange_diamond:
  • AudioPlayer - AudioPlayer is syntax and feature sugar over AVPlayer. It plays your audio files (local & remote). :large_orange_diamond:
  • TuningFork - A Simple Tuner for iOS :large_orange_diamond::black_circle:
  • MusicKit - A framework for composing and transforming music in Swift :large_orange_diamond:
Image
  • GPU Image - An open source iOS framework for GPU-based image and video processing.
  • UIImage DSP - IOS UIImage processing functions using the vDSP/Accelerate framework for speed.
  • QR Code Scanner - QR Code implementation.
  • AsyncImageView - Simple extension of UIImageView for loading and displaying images asynchronously without lock up the UI.
  • SDWebImage - Asynchronous image downloader with cache support with an UIImageView category.
  • DFImageManager - Modern framework for fetching images from various sources. Zero config yet immense customization and extensibility. Uses NSURLSession.
  • MapleBacon - An image download and caching library for iOS written in Swift. :large_orange_diamond:
  • NYTPhotoViewer - Slideshow and image viewer.
  • IDMPhotoBrowser - Photo Browser / Viewer.
  • JTSImageViewController - Interactive iOS image viewer.
  • Concorde - Download and decode progressive JPEGs.
  • TOCropViewController - A view controller that allows users to crop UIImage objects.
  • YXTMotionView - A custom image view that implements device motion scrolling.
  • PINRemoteImage - A thread safe, performant, feature rich image fetcher.
  • SABlurImageView - Easily Adding Animated Blur/Unblur Effects To An Image. :large_orange_diamond:
  • FastImageCache - iOS library for quickly displaying images while scrolling.
  • BKAsciiImage - A library to render UIImage as ASCII art
  • AlamofireImage - An image component library for Alamofire. :large_orange_diamond:
  • Nuke - Advanced framework for managing images :large_orange_diamond:
  • FlagKit - Beautiful flag icons for usage in apps and on the web. :large_orange_diamond:
  • YYWebImage - Asynchronous image loading framework (supports WebP, APNG, GIF).
  • RSKImageCropper - An image cropper for iOS like in the Contacts app with support for landscape orientation.
  • Silo - Image loading framework with loaders. :large_orange_diamond:
  • Ody - Ody is an easy to use random image generator built with Swift, Perfect for placeholders. :large_orange_diamond:
  • Banana - Image slider with very simple interface. :large_orange_diamond:
  • JDSwiftAvatarProgress - Easy customizable avatar image asynchronously with progress bar animated :large_orange_diamond:
  • Kingfisher - A lightweight and pure Swift implemented library for downloading and caching image from the web. :large_orange_diamond:
  • EBPhotoPages - A photo gallery for iOS with a modern feature set. Similar features as the Facebook photo browser.
  • UIImageView-BetterFace-Swift - The Swift version of https://github.com/croath/UIImageView-BetterFace :large_orange_diamond:
  • KFSwiftImageLoader - An extremely high-performance, lightweight, and energy-efficient pure Swift async web image loader with memory and disk caching for iOS and  Watch. :large_orange_diamond:
  • Toucan - Fabulous Image Processing in Swift :large_orange_diamond:
  • ImageLoaderSwift - A lightweight and fast image loader for iOS written in Swift. :large_orange_diamond:
  • ImageScout - A Swift implementation of fastimage. Supports PNG, GIF, and JPEG. :large_orange_diamond:
  • Fusuma - Instagram-like photo browser and a camera feature with a few line of code in Swift. :large_orange_diamond:
GIF
  • YLGIFImage - Async GIF image decoder and Image viewer supporting play GIF images. It just use very less memory.
  • FLAnimatedImage - Performant animated GIF engine for iOS
  • gifu - Highly performant animated GIF support for iOS in Swift :large_orange_diamond:
  • AnimatedGIFImageSerialization - Complete Animated GIF Support for iOS, with Functions, NSJSONSerialization-style Class, and (Optional) UIImage Swizzling
  • XAnimatedImage - XAnimatedImage is a performant animated GIF engine for iOS written in Swift based on FLAnimatedImage :large_orange_diamond:
  • SwiftGif - :sparkles: A small UIImage extension with gif support :large_orange_diamond:
  • APNGKit - High performance and delightful way to play with APNG format in iOS. :large_orange_diamond:
Video
  • VIMVideoPlayer - A simple wrapper around the AVPlayer and AVPlayerLayer classes.
  • MobilePlayer - A powerful and completely customizable media player for iOS.
  • XCDYouTubeKit - YouTube video player for iOS, tvOS and OS X
  • AVAnimator - An open source iOS native library that makes it easy to implement non-trivial video/audio enabled apps.
  • 360 VR Player - A open source, ad-free, native and universal 360 degree panorama video player for iOS.
  • Periscope VideoViewController - Video view controller with Periscope fast rewind control :large_orange_diamond:
  • SSVideoPlayer - A video player that support both local and network resource.
  • MHVideoPhotoGallery - A Photo and Video Gallery
PDF
  • Reader - PDF Reader Core for iOS.
  • UIView 2 PDF - PDF generator using UIViews or UIViews with an associated XIB
  • FolioReaderKit - A Swift ePub reader and parser framework for iOS. :large_orange_diamond:

Messaging

Also see push notifications

  • LayerKit - iOS SDK for Layer, the easiest way to add in-app messaging (text, photos, videos, data) to any mobile or web application.
  • Twilio - Power modern communications. Build the next generation of voice and SMS applications.
  • Plivo - SMS API, Voice API, & Global Carrier Provider.
  • XMPPFramework - An XMPP Framework in Objective-C for Mac and iOS.
  • Chatto - A lightweight framework to build chat applications, made in Swift :large_orange_diamond:

Machine Learning

  • Swift-AI - Highly optimized Artificial Intelligence and Machine Learning library written in Swift. :large_orange_diamond:
  • Swift-Brain - Artificial Intelligence/Machine Learning data structures and Swift algorithms for future iOS development. Bayes theorem, Neural Networks, and more AI. :large_orange_diamond:

Networking

  • AFNetworking - A delightful iOS and OS X networking framework.
  • RestKit - RestKit is an Objective-C framework for iOS that aims to make interacting with RESTful web services simple, fast and fun.
  • FSNetworking - Foursquare iOS networking library.
  • ASIHTTPRequest - Easy to use CFNetwork wrapper for HTTP requests, Objective-C, Mac OS X and iPhone.
  • Overcoat - Small but powerful library that makes creating REST clients simple and fun.
  • ROADFramework - Attributed-oriented approach for interacting with web services. The framework has built-in json and xml serialization for requests and responses and can be easily extensible.
  • MBNetworkMonitor - A modern replacement for Apple's Reachability class that uses CoreTelephony to report more information about the user's network connection.
  • Alamofire - Alamofire is an HTTP networking library written in Swift, from the creator of AFNetworking. :large_orange_diamond:
  • Transporter - A tiny library makes uploading and downloading easier. :large_orange_diamond:
  • CDZPinger - Easy-to-use ICMP Ping.
  • NSRails - Map client-side objects/classes to remote rest api objects/orm
  • NKMultipeer - A testable abstraction over multipeer connectivity. :large_orange_diamond:
  • CocoaAsyncSocket - Asynchronous socket networking library for Mac and iOS.
  • Siesta - Elegant abstraction for RESTful resources that untangles stateful messes. An alternative to callback- and delegate-based networking. :large_orange_diamond:
  • Reachability.swift - Replacement for Apple's Reachability re-written in Swift with closures :large_orange_diamond:
  • NetworkEye - a iOS network debug library, It can monitor HTTP requests within the App and displays information related to the request.
  • Netfox - A lightweight, one line setup, iOS network debugging library! :large_orange_diamond:
  • OctopusKit - A simplicity but graceful solution for invoke RESTful web service APIs.
  • Moya - Network abstraction layer written in Swift. :large_orange_diamond:
  • TWRDownloadManager - A modern download manager based on NSURLSession to deal with asynchronous downloading, management and persistence of multiple files.
  • HappyDns - A Dns library, support custom dns server, dnspod httpdns. Only support A record.
  • Bridge - A simple extensible typed networking library. Intercept and process/alter requests and responses easily. :large_orange_diamond:
  • TRON - Lightweight network abstraction layer, written on top of Alamofire and SwiftyJSON :large_orange_diamond:
  • EVCloudKitDao - Simplified access to Apple's CloudKit :large_orange_diamond:

Push Notifications

  • Orbiter - Push Notification Registration for iOS.
  • PEM - Automatically generate push notification profiles for your server.
  • Knuff - The debug application for Apple Push Notification Service (APNS).

Push Notification Providers

Most of these are paid services, some have free tiers.

Passbook

  • passbook - Passbook gem let's you create pkpass for passbook iOS 6+.
  • Dubai - Generate and Preview Passbook Passes.
  • Passkit - Design, Create and validate Passbook Passes.

Permissions

  • PermissionScope - Intelligent iOS permissions UI and unified API (Supports Location, Notifications, Camera, Contacts, Calendar, Photos, Microphone, BT, Activity Monitoring, HealthKit and CloudKit). :large_orange_diamond:
  • Proposer - Make permission request easier (Supports Camera, Photos, Microphone, Contacts, Location). :large_orange_diamond:
  • ICanHas - Simplifies iOS user permission requests (Supports location, push notifications, camera, contacts, calendar, photos). :large_orange_diamond:
  • VWWPermissionKit - A visual permission manager for iOS.
  • ISHPermissionKit - A unified way for iOS apps to request user permissions.
  • JLPermissions - An iOS pre-permissions utility that lets developers ask users on their own dialog for calendar, contacts, location, photos, reminders, twitter, push notifications and more, before making the system-based permission request.
  • ClusterPrePermissions - Reusable pre-permissions utility that lets developers ask users for access in their own dialog, before making the system-based request.

Regex

  • Regex - A Swift µframework providing an NSRegularExpression-backed Regex type :large_orange_diamond:
  • SwiftRegex - Perl-like regex =~ operator for Swift :large_orange_diamond:
  • PySwiftyRegex - Easily deal with Regex in Swift in a Pythonic way :large_orange_diamond:

Security

  • UICKeyChainStore - UICKeyChainStore is a simple wrapper for Keychain on iOS.
  • cocoapods-keys - A key value store for storing environment and application keys.
  • Valet - Securely store data in the iOS or OS X Keychain without knowing a thing about how the Keychain works.
  • libextobjc - A Cocoa library to extend the Objective-C programming language.
  • Locksmith - A powerful, protocol-oriented library for working with the keychain in Swift. :large_orange_diamond:
  • simple-touch - Very simple swift wrapper for Biometric Authentication Services (Touch ID) on iOS.
  • Obfuscator-iOS - String Obfuscation for app's executable file
  • KeychainAccess - Simple Swift wrapper for Keychain that works on iOS and OS X :large_orange_diamond:[e]

Text

  • Twitter Text Obj - An Objective-C implementation of Twitter's text processing library.
  • Nimbus - Nimbus is a toolkit for experienced iOS software designers.
  • NSStringEmojize - A category on NSString to convert Emoji Cheat Sheet codes to their equivalent Unicode characters.
  • MMMarkdown - An Objective-C static library for converting Markdown to HTML.
  • DTCoreText - Methods to allow using HTML code with CoreText.
  • DTRichTextEditor - A rich-text editor for iOS.
  • NBEmojiSearchView - A searchable emoji dropdown view that can be integrated with a text control
  • ios-fontawesome - NSString+FontAwesome.
  • Pluralize.swift - Great Swift String Pluralize Extension :large_orange_diamond:[e]
  • RichEditorView - RichEditorView is a simple, modular, drop-in UIView subclass for Rich Text Editing. :large_orange_diamond:
  • Money - Swift value types for working with money & currency :large_orange_diamond:
  • PhoneNumberKit - A Swift framework for parsing, formatting and validating international phone numbers. Inspired by Google's libphonenumber. :large_orange_diamond:
  • YYText - Powerful text framework for iOS to display and edit rich text.
  • FontAwesome.swift - Use FontAwesome in your Swift projects. :large_orange_diamond:
  • Format - A Swift Formatter Kit. :large_orange_diamond:
  • Tribute - Programmatic creation of NSAttributedString doesn't have to be a pain :large_orange_diamond:
  • EmojiKit - Effortless emoji-querying in Swift :large_orange_diamond:
  • Roman - Seamless Roman numeral conversion in Swift. :large_orange_diamond:
  • ZSSRichTextEditor - A beautiful rich text WYSIWYG editor for iOS with a syntax highlighted source view :large_orange_diamond:
  • pangu.Objective-C - Paranoid text spacing in Objective-C.
  • SwiftString - A comprehensive, lightweight string extension for Swift :large_orange_diamond:[e]
  • Marklight - Markdown syntax highlighter for iOS :large_orange_diamond:
  • SwiftFontName - OS font complements library. Localized font supported :large_orange_diamond:

Walkthrough / Intro / Tutorial

  • Onboard - Easily create a beautiful and engaging onboarding experience with only a few lines of code.
  • EAIntroView - Highly customizable drop-in solution for introduction views.
  • MYBlurIntroductionView - A super-charged version of MYIntroductionView for building custom app introductions and tutorials.
  • BWWalkthrough - A class to build custom walkthroughs for your iOS App. :large_orange_diamond:
  • GHWalkThrough - A UICollectionView backed drop-in component for introduction views.
  • ICETutorial - A nice tutorial like the one introduced in the Path 3.X App.
  • JazzHands - Jazz Hands is a simple keyframe-based animation framework for UIKit. Animations can be controlled via gestures, scroll views, KVO, or ReactiveCocoa.
  • RazzleDazzle - A simple keyframe-based animation framework for iOS, written in Swift. Perfect for scrolling app intros. :large_orange_diamond:
  • Instructions - Easily add customizable coach marks into you iOS project. :large_orange_diamond:
  • SwiftyWalkthrough - The easiest way to create a great walkthrough experience in your apps, powered by Swift. :large_orange_diamond:
  • Gecco - Spotlight view for iOS. :large_orange_diamond:
  • VideoSplashKit - Video based UIViewController :large_orange_diamond:
  • Presentation - Presentation helps you to make tutorials, release notes and animated pages. :large_orange_diamond:

URL Scheme

  • WAAppRouting - iOS routing done right. Handles both URL recognition and controller displaying with parsed parameters. All in one line, controller stack preserved automatically!
  • DeepLinkKit - A splendid route-matching, block-based way to handle your deep links.
  • IntentKit - An easier way to handle third-party URL schemes in iOS apps.
  • JLRoutes - URL routing library for iOS with a simple block-based API.
  • IKRouter - URLScheme router than supports auto creation of UIViewControllers for associated url parameters to allow creation of navigation stacks :large_orange_diamond:
  • Compass - Compass helps you setup a central navigation system for your application :large_orange_diamond:
  • Appz - Easily launch and deeplink into external applications, falling back to web if not installed. :large_orange_diamond:

UI

  • ActionSheetPicker-3.0 - Quickly reproduce the dropdown UIPickerView / ActionSheet functionality on iOS.
  • FlatUIKit - A collection of awesome flat UI components for iOS.
  • BetweenKit - A robust drag-and-drop framework for iOS.
  • JSQMessagesViewController - An elegant messages UI library for iOS.
  • MGSwipeTableCell - UITableViewCell subclass that allows to display swippable buttons with a variety of transitions.
  • MDCSwipeToChoose - Swipe to "like" or "dislike" any view, just like Tinder.app. Build a flashcard app, a photo viewer, and more, in minutes, not hours!
  • ParallaxTableViewHeader - Parallax scrolling effect on UITableView header view when a tableView is scrolled.
  • JLToast - Toast for iOS with very simple interface. :large_orange_diamond:
  • BLKFlexibleHeightBar - Create condensing header bars like those seen in the Facebook, Square Cash, and Safari iOS apps.
  • SDevIconFonts - Fontawesome, Iconic, Ionicons, Octicon porting for swift. :large_orange_diamond:
  • WCFastCell - Fast cells for Tables/Collections scrolling (without animations).
  • Motif - A lightweight and customizable JSON stylesheet framework for iOS.
  • AsyncDisplayKit - AsyncDisplayKit is an iOS framework that keeps even the most complex user interfaces smooth and responsive.
  • AMTagListView - UIScrollView subclass that allows to add a list of highly customizable tags.
  • MotionBlur - MotionBlur allows you to add motion blur effect to iOS animations.
  • GaugeKit - Customizable gauges. Easy reproduce Apple's style gauges. :large_orange_diamond:
  • SVWebViewController - A drop-in inline browser for your iOS app.
  • SwiftWebVC - A Swift implementation of SVWebViewController - a drop-in inline browser for your iOS app. :large_orange_diamond:
  • MVMaterialView - Subclass of UIControls and UIButton to mimic Ripple effect of Material Design concept.
  • Atlas - A library of native iOS messaging user interface components for Layer.
  • TisprCardStack - Library that allows to have cards UI. :large_orange_diamond:
  • YXTPageView - A PageView, which supporting scrolling to transition between a UIView and a UITableView.
  • SAHistoryNavigationViewController - SAHistoryNavigationViewController realizes iOS task manager like UI in UINavigationContoller,3D Touch Compatible. :large_orange_diamond:
  • SAInboxViewController - UIViewController subclass inspired by "Inbox by google" animated transitioning. :large_orange_diamond:
  • TLYShyNavBar - Unlike all those arrogant UINavigationBar, this one is shy and humble! Easily create auto-scrolling navigation bars!
  • MZFormSheetPresentationController - MZFormSheetPresentationController provides an alternative to the native iOS UIModalPresentationFormSheet, adding support for iPhone and additional opportunities to setup controller size and feel form sheet.
  • AnimatedTransitionGallery - Collection of iOS 7 custom animated transitions using UIViewControllerAnimatedTransitioning protocol.
  • iCarousel - A simple, highly customisable, data-driven 3D carousel for iOS and Mac OS.
  • FontAwesomeKit - Icon font library for iOS. Currently supports Font-Awesome, Foundation icons, Zocial, and ionicons.
  • Cocoa Controls - Open source UI components for iOS and OS X.
  • RAReorderableLayout - A UICollectionView layout whitch can move item with drag and drop.
  • HoneycombView - HoneycombView is the iOS UIView for displaying like Honyecomb layout written by swift. :large_orange_diamond:
  • tapkulibrary - tap + haiku = tapku, a well crafted open source iOS framework.
  • KCHorizontalDial - A horizontal scroll dial like Instagram. :large_orange_diamond:
  • DAExpandAnimation - A custom modal transition that presents a controller with an expanding effect while sliding out the presenter remnants. :large_orange_diamond:
  • ScrollPager - A scroll pager similar to the one in Flipboard :large_orange_diamond:
  • ComponentKit - A React-Inspired View Framework for iOS, by Facebook.
  • PMTween - An elegant and flexible tweening library for iOS.
  • WobbleView - WobbleView is an implementation of a recently popular wobble effect for any view in your app. It can be used to easily add dynamics to user interactions and transitions. :large_orange_diamond:
  • CBZSplashView - Twitter style Splash Screen View. Grows to reveal the Initial view behind.
  • RKNotificationHub - Make any UIView a full fledged notification center.
  • EatFit - Eat fit is a component for attractive data representation inspired by Google Fit
  • CollapsableTable - Collapsable table view sections with custom section header views. :large_orange_diamond:
  • PickerView - A customizable alternative to UIPickerView in Swift. :large_orange_diamond:
  • InteractivePlayerView - Custom iOS music player view :large_orange_diamond:
  • phone-number-picker - A simple and easy to use view controller enabling you to enter a phone number with a country code similar to WhatsApp written in Swift :large_orange_diamond:
  • DLWBouncyView - BouncyView is an implementation of a recently popular bouncy effect for any view.
  • EXTView - Extended UIView for Interface Builder by using IB_DESIGNABLE and IBInspectable.
  • [JTMaterialSwitch](https://github.com/JunichiT

Related Repositories

awesome-ios-plugins

awesome-ios-plugins

An awesome list of awesome iOS plugins ...

awesome-ios-plugins

awesome-ios-plugins

An awesome list of awesome iOS plugins ...


Top Contributors

lfarah dkhamsing vsouza victorgama naeemshaikh90 miguelarauj1o nschucky ReadmeCritic yoha bre7 skywinder aashishtamsya patrickreynolds shoheiyokoyama kciter mcudich abdullahselek Daltron goktugyil shams-ahmed Aymenworks marty-suzuki PhilippeBoisney dcordero nvzqz sanketfirodiya vadymmarkov darkcl iceman201 AnatoliyGatt