Skip to content

Haccoon/awesome-swift

 
 

Repository files navigation

Awesome Swift

iOS App Awesome Linux Projects Updated
Download on the App Store Awesome 🐧 933 January 10, 2019

Contents

Guides

An awesome list of Swift related guides.

Newsletter

back to top

Official Guides

back to top

Style Guides

back to top

  • Google - This style guide is based on Apple’s excellent Swift standard library style and also incorporates feedback from usage across multiple Swift projects within Google.
  • 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

  • xcprofiler - Command line utility to profile compilation time.

Converters

  • Swiftify - Objective-C to Swift online code converter and Xcode extension.
  • Zolang 🐧 - A DSL for generating code in multiple programming languages

Other Awesome Lists

Check out apps on these projects:

  • Awesome iOS Interview - List of the questions that helps you to prepare for the interview.
  • awesome-macOS - A curated list of awesome applications, softwares, tools and shiny things for macOS.
  • example-ios-apps - An amazing list for people who are beginners and learning ios development and for ios developers who need any example app or feature.
  • 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.
  • Model2App - Turn your Swift data model into a working CRUD app.
  • 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.
  • Tuist - An open source command line tool to create, maintain and interact with your Xcode projects at scale.
  • XcodeGen - Tool for generating Xcode projects from a YAML file and your project directory.
  • xcodeproj - A library to read, update and write Xcode projects and workspaces.

Libs

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

Accessibility

back to top

  • Capable - Track accessibility features to improve your app for people with certain disabilities.

AI

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

  • CoreML-Models - A collection of unique Core ML Models.
  • MLKit - A simple machine learning framework.

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.
  • ChainPageCollectionView - Fancy two-level collection view layout and animation.
  • Comets - Comets: Animating Particles in Swift.
  • DKChainableAnimationKit - Easy to read and write chainable animations.
  • 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.
  • Kinieta - An simple Animation Engine for iOS with an Intuitive API and Readable Code.
  • Pastel - Gradient animation effect like Instagram.
  • Poi - Poi makes you use card UI like tinder UI .You can use it like tableview method.
  • Presentation - A library to help you to make tutorials, release notes and animated pages.
  • Pulsator - Pulse animation for iOS.
  • Sica - Simple Interface Core Animation. Run type-safe animation sequencially or parallelly.
  • Spring - A library to simplify iOS animations.
  • SpriteKitEasingSwift - Better Easing for SpriteKit.
  • spruce-ios - Choreograph animations on the screen.
  • Stellar - A Physical animation library.
  • SwiftyAnimate - Composable animations.
  • TheAnimation - Type-safe CAAnimation wrapper. It makes preventing to set wrong type values.
  • ViewAnimator - Brings your UI to life with just one line.
  • YapAnimator - Your fast and friendly physics-based animation system.

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.
  • Crossroad - 🚍 Crossroad is an URL router focused on handling Custom URL Schemes.
  • LightRoute - Routing between VIPER modules.
  • 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

  • InAppPurchase - A Simple, Lightweight and Safe framework for In App Purchase.
  • merchantkit - A modern In-App Purchases management framework for iOS.
  • 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.
  • voice-overlay-ios - An overlay that gets your user’s voice permission and input as text in a customizable UI.

Augmented Reality

back to top

  • 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.
  • Poly - Unofficial Google Poly SDK – explore the world of 3D.

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.
  • LinkedInSignIn - Simple view controller to log in and retrieve an access token from LinkedIn.
  • 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.

Bots

Libs to build bot back to top

  • Telegram Bot SDK 🐧 - Unofficial SDK.
  • Telegrammer 🐧 - Open-source framework for Telegram Bots developers. It was built on top of Apple/SwiftNIO which help to demonstrate excellent performance.

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.

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.
  • InputBarAccessoryView - A simple and easily customizable InputAccessoryView for making powerful input bars with autocomplete and attachments.
  • MessageKit - A community-driven replacement for JSQMessagesViewController.
  • MessengerKit - A UI framework for building messenger interfaces.

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.
  • DynamicColor - An extension to manipulate colors easily.
  • FlatUIColors - Flat UI color palette.
  • Gradients - A curated collection of splendid 180+ gradients.
  • 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.
  • 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.
  • 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.

Concurrency

Easier ways to work with concurrency. back to top

  • AsyncNinja - A complete set of concurrency and reactive programming primitives.
  • Futures 🐧 - Lightweight promises for iOS, macOS, tvOS, watchOS, and server-side.
  • GroupWork 🐧 - Easy concurrent, asynchronous tasks.
  • Hydra - Promises & Await - Write better async code.
  • Kommander - Manage the task execution in different threads through Kommands.
  • Queuer 🐧 - A queue manager, built on top of OperationQueue and Dispatch (aka GCD).
  • 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.
  • 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.
  • Records - In just a few minutes, setup a fully functioning CoreData implementation that embraces the static, type-safe nature of Swift.
  • 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.

JSON

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

  • AlamofireObjectMapper - An Alamofire extension which converts JSON response data into objects using ObjectMapper.
  • Alembic - Functional JSON parsing, mapping to objects, and serialize to JSON.
  • Argo - JSON parsing library.
  • Arrow - Elegant JSON Parsing.
  • 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.
  • JSONCodable - Hassle-free JSON encoding and decoding.
  • 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.
  • ObjectMapper - JSON object mapper.
  • PMJSON - Pure Swift JSON encoding/decoding library.
  • SwiftyJSON - A lib for JSON with error handling.
  • SwiftyJSONAccelerator - OSX app to generate models for JSON.
  • Unbox - The easy to use JSON decoder.

Key Value Store

back to top

  • Default - Modern interface to UserDefaults + Codable support.
  • Defaults - Strongly-typed UserDefaults with support for Codable and key observation.
  • 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.
  • UserDefaultsStore - Why not use UserDefaults to store Codable objects 😉.
  • Zephyr - Effortlessly synchronize NSUserDefaults over iCloud.

MongoDB

back to top

  • MongoKitten 🐧 - MongoDB Connector.
  • Perfect-MongoDB 🐧 - A stand-alone wrapper around the mongo-c client library, enabling access to MongoDB servers.

Multi Database

Data management layers that involve multiple sources. back to top

  • ModelAssistant - Elegant library to manage the interactions between view and model
  • PersistenceKit - Store and retrieve Codable objects to various persistence layers, in a couple lines of code!
  • Shallows - Your lightweight persistence toolbox.
  • StorageKit - Your Data Storage Troubleshooter 🛠.

ORM

back to top

  • fluent 🐧 - Simple ActiveRecord implementation.
  • Perfect-CRUD 🐧 - CRUD is an object-relational mapping (ORM) system using Codable protocol.

Other Data

Other ways to persist data back to top

  • CSVParser 🐧 - Fast parser for CSV.
  • Disk - Delightful framework for iOS to easily persist structs, images, and data.
  • 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.
  • CheatyXML - A powerful framework designed to manage XML easily.
  • SwiftyXML - The most swifty way to deal with XML.
  • SWXMLHash - Simple XML parsing.

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.
  • NVDate - Date extension library.
  • 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.
  • Deli - Deli is an easy-to-use Dependency Injection(DI).
  • Dip - A simple Dependency Injection Container.
  • DITranquillity - Dependency injection framework with tranquility.
  • Pure - Pure DI in Swift
  • Swinject - A dependency injection framework.
  • Typhoon - Dependency injection toolkit.
  • Weaver - A declarative, easy-to-use and safe Dependency Injection framework.

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.

Email

back to top

Embedded Systems

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

  • 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

  • Bond - Binding framework.
  • BrightFutures - Promise and future lib.
  • EasyFutures - 🔗Futures & Promises. Easy to use. Highly combinable.
  • EmitterKit - Implementation of event emitters and listeners.
  • 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.
  • PMKVObserver - Modern thread-safe and type-safe key-value observing for Swift and Objective-C.
  • 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.
  • ReactorKit - A framework for reactive and unidirectional application architecture.
  • ReSwift - Unidirectional Data Flow.
  • RxReduce - Reactive implementation of the state container pattern (like Redux). It is based on the simple concepts of state immutability and unidirectionnal data flow.
  • RxSwift - Microsoft Reactive Extensions (Rx) for Swift and iOS/OSX platform.
  • 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.
  • Tomorrowland - Lightweight Promises for Swift & Obj-C.
  • TopicEventBus - Publish–subscribe design pattern implementation framework, with ability to publish events by topic.
  • 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.

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.
  • 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.
  • 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.
  • PeekPop - Framework for backwards-compatible Peek and Pop.
  • 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).

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

  • BlueCap - Wrapper around CoreBluetooth and much more.
  • Bluejay - A simple framework for building reliable Bluetooth LE apps.
  • 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.

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.
  • ATGMediaBrowser - Image slide-show viewer with multiple predefined transition styles, and with ability to create new transitions with ease.
  • AXPhotoViewer - An iPhone/iPad photo gallery viewer, useful for viewing a large (or small!) number of photos.
  • BlockiesSwift - Unique blocky identicons/profile picture generator.
  • 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.
  • FlexibleImage - A simple way to play with images.
  • FMPhotoPicker - A modern, simple and zero-dependency photo picker with an elegant and customizable image editor
  • 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.
  • GPUImage 3 - GPUImage 3 is a BSD-licensed Swift framework for GPU-accelerated video and image processing using Metal.
  • HanekeSwift - A lightweight generic cache for iOS with extra love for images.
  • ImageDetect - Detect and crop faces, barcodes and texts in image with iOS 11 Vision API.
  • 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.
  • 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.
  • 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.
  • 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.
  • Pixel - An image editor and engine using CoreImage.
  • Rough - Rough lets you draw in a sketchy, hand-drawn-like, style.
  • 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.
  • 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.
  • 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.
  • 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 Swift Views layouting without auto layout. No magic, pure code, full control and blazing fast. Concise syntax, intuitive, readable & chainable. [iOS/macOS/tvOS]
  • Static - A simple static table views for iOS.
  • Stevia - Elegant view layout for iOS.

Auto Layout

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

  • 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.
  • DeviceLayout - AutoLayout can be set differently for each device.
  • EasyPeasy - Auto Layout made easy.
  • 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.
  • NorthLayout - Fast path to layout using Visual Format Language (VFL) with extended syntax.
  • PureLayout - The ultimate API for iOS & OS X Auto Layout.
  • SnapKit - Autolayout DSL for iOS & OS X.
  • 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.
  • 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.
  • HeliumLogger 🐧 - IBM's lightweight logging framework.
  • 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.
  • TraceLog 🐧 - Dead Simple: logging the way it's meant to be! Runs on iOS, macOS, and Linux.
  • 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.
  • MapViewPlus - Use any custom view as custom callout view for MKMapView with cool animations. Use any image as annotation view.

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.
  • SigmaSwiftStatistics - A collection of functions for statistical calculation.
  • 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

  • Alamofire 🐧 - Elegant networking.
  • APIKit - Library for building type-safe web API client.
  • Ciao - Publish and discover services using mDNS (Bonjour, Zeroconf).
  • CodyFire - Powerful Codable API requests builder and manager for iOS. Based on Alamofire.
  • Conduit - Robust networking for web APIs.
  • Dots - Lightweight Concurrent Networking Framework.
  • 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.
  • MultiPeer - A wrapper for the MultipeerConnectivity framework for automatic offline data transmission between devices.
  • 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 Framework.
  • Pitaya 🐧 - HTTP / HTTPS networking library just incidentally execute on machines.
  • PMHTTP - Swift/Obj-C HTTP framework with a focus on REST and JSON.
  • Postal - Framework providing simple access to common email providers.
  • 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.
  • TRON - Lightweight network abstraction layer, written on top of Alamofire.
  • Wormholy - iOS network debugging, like a wizard 🧙‍.

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

  • BlueSocket - IBM's cross platform low level socket framework.
  • BlueSSLService - SSL/TLS add-in for IBM's low level socket framework.
  • DNWebSocket - Object-Oriented, Autobahn tested WebSocket Library (RFC 6455) for Swift-compatible Platforms.
  • RxWebSocket - Reactive WebSockets.
  • Socket.IO 🐧 - Socket.IO client for iOS/OS X.
  • sockets 🐧 - TCP, UDP; Client, Server; Linux, OS X.
  • Starscream - Websockets for iOS and OSX.
  • SwiftDSSocket - Asynchronous socket framework built atop DispatchSource.
  • SwiftSocket - Simple TCP socket library.
  • SwiftWebSocket - A high performance WebSocket client library .

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.
  • Curassow 🐧 - HTTP server using the pre-fork worker model.
  • Embassy 🐧 - Super lightweight async HTTP server library.
  • Kitura 🐧 - IBM's web framework and server for web services.
  • 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.
  • Vapor 🐧 - Elegant web framework that works on iOS, OS X, and Ubuntu.
  • Zewo 🐧 - Server-Side Swift.

OCR

back to top

  • SwiftOCR - Neural Network based OCR lib.

Optimization

back to top

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.
  • Swift for Scripting - A hand-curated collection of useful and informative scripting material.

SDK

back to top

Security

back to top

Cryptography

Deal with cryptography method easily back to top

  • BlueCryptor - IBM's Cross Platform Crypto library.
  • BlueRSA - IBM's Cross Platform RSA Crypto library.
  • CryptoSwift 🐧 - Crypto related functions and helpers.
  • IDZSwiftCommonCrypto - A wrapper for Apple's Common Crypto library.
  • JOSESwift - A framework for the JOSE standards JWS, JWE, and JWK.
  • 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.
  • Swift-Sodium - Interface to the Sodium library for common crypto operations for iOS and OS X.
  • Themis - Multilanguage framework for making typical encryption schemes easy to use: data at rest, authenticated data exchange, transport protection, authentication, and so on.

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

  • HaishinKit - Camera and Microphone streaming library via RTMP, HLS for iOS, macOS, tvOS.
  • 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

  • BlueSignals - IBM's Cross Platform OS signal handling library.
  • LaunchAtLogin - Easily add 'Launch at Login' functionality to your sandboxed macOS app.
  • SMCKit - Apple SMC library.
  • SystemKit - OS X system library.

Testing

A collection of testing frameworks. back to top

  • 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.
  • Sizes - Test your app on different device and font sizes
  • SnapshotTest - Snapshot testing tool for iOS and tvOS.
  • 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.
  • XCTest - The XCTest Project, A Swift core library for providing unit test support.

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.

Text

A collection of text projects. back to top

  • 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.
  • Croc - A lightweight Emoji parsing and querying library.
  • edhita - Fully open source text editor for iOS.
  • Format - Formatting kit for numbers, addresses and colors.
  • MarkdownKit - A simple and customizable Markdown Parser.
  • MarkdownView - iOS Markdown view.
  • MarkyMark - Converts Markdown into native views or attributed strings.
  • 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.
  • 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.
  • Sprinter - A library for formatting strings.
  • SwiftRichString - Elegant & Painless Attributed Strings Management Library.
  • 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.
  • Each - Each is a NSTimer bridge library.
  • EKI - Make Grand Central Dispatch easy and fun to use (queue, task, group, timer and semaphore).
  • GCDTimer - A well-tested GCD timer.
  • Schedule 🐧 - A missing lightweight task scheduler with an incredibly human-friendly syntax.
  • 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.
  • AMScrollingNavbar - Scrollable UINavigationBar that follows the scrolling of a UIScrollView.
  • Arale - A custom stretchable header view for UIScrollView or any its subclasses with UIActivityIndicatorView support for content reloading.
  • BreakOutToRefresh - A playable pull to refresh view using SpriteKit.
  • BulletinBoard - Generates and manages contextual cards displayed at the bottom of the screen.
  • CircularProgress - Circular progress indicator for your macOS app.
  • ClassicKit - A collection of classic-style UI components.
  • 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.
  • DockProgress - Show progress in your macOS app's Dock icon.
  • 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.
  • EstMusicIndicator - Music play indicator like iTunes.
  • Family - A child view controller framework that makes setting up your parent controllers as easy as pie.
  • FAQView - An easy to use FAQ view for iOS.
  • Fashion - Fashion accessories and beauty tools to share and reuse UI styles.
  • 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.
  • GMStepper - A stepper with a sliding label in the middle.
  • 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.
  • HidesNavigationBarWhenPushed - A library, which adds the ability to hide navigation bar when view controller is pushed via hidesNavigationBarWhenPushed flag.
  • HorizontalDial - A horizontal scroll dial like Instagram.
  • IGColorPicker - A customizable color picker for iOS.
  • ImagePicker - A nicely designed and super easy to use ImagePicker.
  • 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.
  • Material Components for iOS - Modular and customizable Material Design UI components for iOS
  • MaterialKit - Material design components.
  • MediaBrowser - Simple iOS photo and video browser with optional grid view, captions and selections.
  • MediumScrollFullScreen - Medium scroll style menubar.
  • 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.
  • OverlayContainer - OverlayContainer makes it easier to develop overlay based interfaces, such as the one presented in the Apple Maps or Stocks apps.
  • PanelKit - A UI framework that enables panels on iOS.
  • PPAssetsActionController - Highly customizable Action Sheet Controller with assets preview.
  • Preferences - Add a preferences window to your macOS app in minutes.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Alerts Pickers - Advanced usage of UIAlertController with TextField, DatePicker, PickerView, TableView and CollectionView.
  • ALRT - An easier constructor for UIAlertController. Present an alert from anywhere.
  • CDAlertView - Highly customizable alert/notification/success/error/alarm popup.
  • CFNotify - A customizable framework to create draggable alert views.
  • EZAlertController - Easy UIAlertController.
  • GSMessage - A simple style messages/notifications for iOS 7+.
  • Hokusai - A library for a cool bouncy action sheet.
  • Kamagari - Simple UIAlertController builder class.
  • KRAlertController - A beautiful alert controller for your iOS.
  • NotificationBanner - The easiest way to display highly customizable in app notification banners in iOS.
  • PMAlertController - PMAlertController is a great and customizable substitute to UIAlertController.
  • PopupDialog - A simple, customizable popup dialog. Replaces UIAlertController alert style.
  • SCLAlertView - Animated Alert view.
  • Sheet - Actionsheet with navigation features such as the Flipboard App.
  • 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.
  • SwiftEntryKit - A simple and versatile pop-up presenter.
  • 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

  • AHDownloadButton - Customizable download button with progress and transition animations. It is based on Apple's App Store download button.
  • DOFavoriteButton - Cute Animated Button.
  • ExpandableButton - Customizable and easy to use expandable button.
  • Floaty - Floating Action Button for iOS.
  • LGButton - A fully customisable subclass of the native UIControl which allows you to create beautiful buttons without writing any line of code.
  • LTHRadioButton - A radio button with a pretty animation.
  • MultiToggleButton - A UIButton subclass that implements tap-to-toggle button text (like the camera flash and timer buttons).
  • NFDownloadButton - Revamped Download Button. It's kinda a reverse engineering of Netflix's app download button.
  • PMSuperButton - A powerful UIButton with super powers, customizable from Storyboard.
  • SwiftShareBubbles - Animated social share buttons control for iOS.
  • TransitionButton - UIButton subclass for loading and transition animation.

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.

Cards

back to top

  • CardParts - A reactive, card-based UI framework built on UIKit for iOS developers.
  • VerticalCardSwiper - A marriage between the Shazam Discover UI and Tinder, built with UICollectionView.

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://).
  • AnimatedMaskLabel - A nice gradient animated label that make easy to add a shimmering effect to any view.
  • 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.
  • 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

  • AKSwiftSlideMenu - Slide Menu (Drawer).
  • CircleMenu - CircleMenu is a simple, elegant UI menu with a circular layout and material design animations.
  • ENSwiftSideMenu - Sliding side menu.
  • FanMenu - Menu with a circular layout based on Macaw.
  • FlowingMenu - Interactive view transition to display menus with flowing and bouncing effects.
  • GuillotineMenu - Guillotine style menu.
  • HHFloatingView - An easy to use and setup floating view for your app.
  • InteractiveSideMenu - Customizable iOS Interactive Side Menu.
  • KWDrawerController - Drawer view controller that easy to use.
  • MediumMenu - A menu based on Medium iOS app.
  • MenuItemKit - UIMenuItem with image and block (closure) support.
  • Pagemenu - Pagination enabled view controller.
  • PagingKit - PagingKit provides customizable menu UI.
  • PagingMenuController - Paging view controller with customizable menu.
  • Panels - Panels is a framework to easily add sliding panels to your application.
  • Parchment - A paging view controller with a highly customizable menu, built on UICollectionView.
  • PopMenu - 😎 A cool and customizable popup style action sheet for iOS.
  • SideMenu - Simple side menu control for iOS inspired by Facebook. Right and Left sides. No coding required.
  • SlideMenuControllerSwift - iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app.
  • SwipeMenuViewController - Swipable tab and menu View and ViewController.
  • XLPagerTabStrip - Android PagerTabStrip for iOS.
  • YNDropDownMenu - Adorable iOS drop down menu.

Pagination

back to top

  • CHIPageControl - A set of cool animated page controls to replace boring UIPageControl.
  • FlexiblePageControl - A flexible UIPageControl like Instagram.
  • Pageboy - A simple, highly informative page view controller.
  • PageController - Infinite paging controller.
  • 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.
  • RequestPermission - Simple permission request with beautiful UI.

StackView

back to top

Switch

back to top

  • MJMaterialSwitch - A Customizable Switch UI for iOS, Inspired from Google's Material Design.
  • paper-switch - RAMPaperSwitch is a Swift material design UI module which paints over the parent view when the switch is turned on.
  • Switch - A switch control with full Interface Builder support.

Tab

back to top

  • Adaptive Tab Bar - Adaptive tab bar.
  • Animated Tab Bar - RAMAnimatedTabBarController is a Swift module for adding animation to tab bar items.
  • ColorMatchTabs - Interesting way to display tabs.
  • DTPagerController - Container view controller to display a set of ViewControllers in a horizontal scroll view.
  • ESTabBarController - A highly customizable TabBarController component, which is inherited from UITabBarController.
  • HHTabBarView - A lightweight customized tab bar view.
  • Tabman - A powerful paging view controller with indicator bar.
  • TabPageViewController - Paging view controller and scroll tab view.

Template

back to top

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".
  • StyledTextKit - Declarative building and fast rendering attributed string library.
  • 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

  • BubbleTransition - Bubble transition in an easy way.
  • Cards XI - Awesome iOS 11 AppStore's Card Views.
  • EasyTransitions - A simple way to create custom interactive UIViewController transitions.
  • Hero - Elegant transition library for iOS.
  • ImageTransition - ImageTransition is a library for smooth animation of images during transitions.
  • Jelly - Jelly provides custom view controller transitions with just a few lines of code.
  • 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.
  • StarWars.iOS - Transition animation to crumble view-controller into tiny pieces.
  • Transition - Easy interactive interruptible custom ViewController transitions.

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.
  • Gliding Collection - Gliding Collection is a smooth, flowing, customizable decision for a UICollectionView Controller.
  • GravitySlider - Beautiful alternative to the standard UICollectionView flow layout.
  • RAReorderableLayout - A UICollectionView layout which can move an item with drag and drop.
  • ShelfView-iOS - iOS custom view to display books on shelf.
  • SimpleSource - Easy and type-safe iOS table and collection views.
  • SwiftSpreadsheet - Fully customizable spreadsheet CollectionViewLayout.
  • TagCellLayout - UICollectionView layout for Tags with Left, Center & Right alignments.
  • UICollectionViewSplitLayout - UICollectionViewSplitLayout makes collection view more responsive.
  • VegaScroll - Lightweight animation flowlayout for UICollectionView completely written in Swift.

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.
  • HGPlaceholders - Nice library to show placeholders and Empty States for any UITableView/UICollectionView in your project.
  • OKTableViewLiaison - Framework to help you better manage UITableViews
  • ParallaxHeader - Simple way to add parallax header to UIScrollView/UITableView.
  • Persei - Animated top menu for UITableView / UICollectionView / UIScrollView.
  • PullToRefreshSwift - PullToRefresh library.
  • QuickTableViewController - A simple way to create a UITableView for settings.
  • 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.
  • SwiftyComments - Nested hierarchy of expandable/collapsible cells to easily build elegant discussion threads.
  • 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.
  • OnboardKit - Customisable user onboarding for your iOS app.
  • PaperOnboarding - PaperOnboarding is a material design UI slider.
  • 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

  • AlexaSkillsKit - Develop custom Alexa Skills.
  • ApplyStyleKit - Elegantly, Apply style to UIKit using Method Chain.
  • 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.
  • Curry - Function currying.
  • DeepDiff - Fast diff library.
  • Delegated - Closure-based delegation without memory leaks.
  • DifferenceKit - 💻 A fast and flexible O(n) difference algorithm framework for Swift collection.
  • Differific - A fast and convenient diffing framework.
  • Dollar - Similar to Lo-Dash or Underscore in Javascript.
  • EtherWalletKit - Ethereum Wallet Toolkit for iOS - You can implement Ethereum wallet without a server and blockchain knowledge.
  • EZSwiftExtensions - How standard types and classes were supposed to work.
  • FluentQuery 🐧 - Powerful and easy to use Swift Query Builder.
  • 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.
  • Lumos - An easy-to-use API for Objective-C runtime functions.
  • 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.
  • protobuf-swift - ProtocolBuffers.
  • Prototope - Library of lightweight interfaces for prototyping, bridged to JS.
  • R.swift - Tool to get strong typed, autocompleted resources like images, cells and segues.
  • RandomKit 🐧 - Random data generation.
  • 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.
  • 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-protobuf 🐧 - A plugin and runtime library for using Google's Protocol Buffer.
  • SwifterSwift - A handy collection of more than 500 native Swift 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.
  • SwiftTweaks - Tweak your iOS app without recompiling.
  • Swiftx - Functional data types and functions for any project.
  • SwiftyUtils - All the reusable code that we need in each project.
  • Swiftz - Functional programming.
  • Then - Super sweet syntactic sugar for initializers.
  • TSAO - Type-Safe Associated Objects in Swift.
  • URLQueryItemEncoder - An Encoder for encoding any Encodable value into an array of URLQueryItem.
  • UTIKit - an UTI (Uniform Type Identifier) wrapper.
  • Vaccine - Make your apps immune to recompile-decease.
  • WeakableSelf - A micro-framework to encapsulate [weak self] and guard statements within closures.
  • WhatsNew - Showcase new features after an app update similar to Pages, Numbers and Keynote.
  • WhatsNewKit - Showcase your awesome new app features.
  • XestiMonitors - An extensible monitoring framework.
  • ZamzamKit - A collection of micro utilities and extensions for Standard Library, Foundation and UIKit.

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.
  • Input Mask - Pattern-based user input formatter, parser and validator for iOS.
  • RxValidator - Simple, Extensible, Flexible Validation Checker.
  • 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.

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.
  • Cabbage - A video composition framework build on top of AVFoundation.
  • Kitsunebi - Overlay alpha channel video animation player view using OpenGLES.
  • 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.
  • SwiftFFmpeg - A Swift wrapper for the FFmpeg C API.
  • 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%