Your first time on this page? Allow me to give some explanations.
Awesome iOS
A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects
Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.
Thank you vsouza & contributors
View Topic on GitHub:
vsouza/awesome-ios
Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.
Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.
Getting Started
get started with ARKit - a little exercise for beginners
Getting Started with iPhone and iOS Development.
I Want to Write iOS Apps. Where Do I Start?
Stanford's 2017 iTunes U course.
Stanford's 2017 iTunes U course updated for iOS 11 and Swift.
Complete catalog of courses from Udacity, Pluralsight, Coursera, Edx, Treehouse and Skillshare.
Accessibility
Keep track of accessibility settings, leverage high contrast colors, and use scalable fonts to enable users with disabilities to use your app.
Alexa
Swift library to develop custom Alexa Skills
Analytics
Simplify your iOS/Mac analytics
The hassle-free way to integrate analytics into any iOS application.
Abbi iOS SDK
Matomo iOS, tvOS and macOS SDK: a Matomo tracker written in Swift
In-app feedback, Bug and Crash reporting, Fix Bugs Faster through user-steps, video recordings, screen annotation, network requests logging.
Answers gives you real-time insight into people’s experience in your app.
Open source, mobile & web analytics, crash reports and push notifications platform for iOS & Android.
Comprehensive analytics service that improves your project and saves time for product development.
Error tracking with a free tier. Error reports include data on device, release, user, and allows arbitrary data.
Helps analyze and visualize user behavior in mobile apps. Provides visual user journeys, heatmaps and crash replays.
Sentry provides self-hosted and cloud-based error monitoring that helps all software teams discover, triage, and prioritize errors in real-time.
App Routing
iOS routing done right. Handles both URL recognition and controller displaying with parsed parameters. All in one line, controller stack preserved automatically!
A splendid route-matching, block-based way to handle your deep links.
An easier way to handle third-party URL schemes in iOS apps.
URL routing library for iOS with a simple block-based API
URLScheme router than supports auto creation of UIViewControllers for associated url parameters to allow creation of navigation stacks
📱 Launch external apps, and deeplink, with ease using Swift!
⛵️ Elegant URL Routing for Swift
Marshroute is an iOS Library for making your Routers simple but extremely powerful
A URL Router for iOS, written in Swift
🛣 Simple Navigation for iOS
Coordinators Essential tutorial
RxFlow is a navigation framework for iOS applications based on a Reactive Flow Coordinator pattern
🎯 Your easiest way to handle all URLs.
📱📲 Navigate between view controllers with ease. 💫 🔜 More stable version (written in Swift 5) coming soon.
DZURLRoute是支持基于标准URL进行Native页面间跳转的Objective-C实现。方便您架构页面之间高内聚低耦合的开发模式。他的核心思想是把每一个页面当成一个资源,通过标准的URL协议(统一资源定位符)来定位到每一个可触达的页面(资源)。
Route URL schemes easily
Interface-oriented router for discovering modules, and injecting dependencies with protocol in Objective-C and Swift.
Protocol oriented, Cocoa UI abstractions based library that helps to handle view controllers composition, navigation and deep linking tasks in the iOS application. Can be used as the universal replacement for the Coordinator pattern.
LiteRoute is easy transition for your app. Written on Swift 4
Apple TV
A simple library to make authenticating tvOS apps easy via their iOS counterparts.
YouTube video player for iOS, tvOS and macOS
Swifty TVML template manager with or without client-server
Turn your TV into a dashboard displaying any webpage!
Google Analytics tracker for Apple tvOS provides an easy integration of Google Analytics’ measurement protocol for Apple TV.
tvOS controls and extensions that add parallax effect to your application.
Light and scrollable view controller for tvOS to present blocks of text
Light wrapper of UIButton that allows extra customization for tvOS
📺 tvOS '... More' Button
PIN keyboard for tvOS
Handwriting numbers recognizer for Siri Remote
Light wrapper of UITableViewCell that allows extra customization for tvOS
TvOSSlider is an implementation of UISlider for tvOS.
Architecture Patterns
Swift Interaction with VIPER Architecture
Example of Clean Architecture of iOS app using RxSwift
Viper Framework for iOS using Swift
Reactant is a reactive architecture for iOS
YARCH iOS Architecture
This repository contains a detailed sample app that implements VIPER architecture in iOS using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.
A holistic approach to iOS development, inspired by Redux and MVVM
A Swift 4.2 VIPER Module Boilerplate Generator with predefined functions and a BaseViewProtocol.
MMVMi: A Validation Model for MVC and MVVM Design Patterns in iOS Applications
A collection of iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs and many others
SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.
Spin aims to provide a versatile Feedback Loop implementation working with the three main reactive frameworks available in the Swift community (RxSwift, ReactiveSwift and Combine)
ARKit
Combines the high accuracy of AR with the scale of GPS data.
ARKit Base Project. Place virtual objects based on WWDC example project
Capture & record ARKit videos 📹, photos 🌄, Live Photos 🎇, and GIFs 🎆.
A library that allows you to generate and update environment maps in real-time using the camera feed and ARKit's tracking capabilities.
This library uses ARKit Face Tracking in order to catch user's smile.
PlacenoteSDK Sample app in native iOS using ARKit, written primarily in Swift
🦕 Unofficial Google Poly SDK in Swift – search, discover, and download 3D models and scenes
Power! Unlimited power for ARKit 2.0!
Authentication
Easy to use OAuth 2 library for iOS, written in Swift.
Simple OAuth2 library with a support of multiple services.
A simple to use, standard interface for authenticating to oauth 2.0 protected endpoints via SFSafariViewController.
OAuth2 framework for macOS and iOS, written in Swift.
Swift based OAuth library for iOS
Simple social authentication for iOS.
A swift implementation of OAuth2
A simple OAuth library for iOS with a built-in set of providers
A simple way to implement Facebook and Google login in your iOS apps.
A ViewController for Instagram authentication.
A quick and simple way to authenticate an Instagram user in your iPhone or iPad app.
A quick and simple way to authenticate a Dropbox user in your iPhone or iPad app.
A quick and simple way to authenticate a Box user in your iPhone or iPad app.
Simple way to authenticate Instagram accounts on iOS.
[In]visible ReCaptcha v2 for iOS
Simple view controller to log in and retrieve an access token from LinkedIn.
Blockchain
A pure swift Ethereum Web3 library
Elegant Web3js functionality in Swift. Native ABI parsing and smart contract interactions on Ethereum network.
EthereumKit is a free, open-source Swift framework for easily interacting with the Ethereum.
Bitcoin protocol toolkit for Swift
Ethereum Wallet Toolkit for iOS - You can implement an Ethereum wallet without a server and blockchain knowledge.
This library provides convenient way to use Coinpaprika.com API in Swift.
Full Bitcoin library for iOS, implemented on Swift. SPV wallet implementation for Bitcoin, Bitcoin Cash and Dash blockchains.
Bridging
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 used to hotfix iOS App.
An iOS/OSX bridge for sending messages between Obj-C and JavaScript in UIWebViews/WebViews
A framework for sharing code between iOS and OS X
RubyMotion is a revolutionary toolchain that lets you quickly develop and test native iOS and macOS applications for iPhone, iPad and Mac, all using the Ruby language.
Xamarin is a free, cross-platform, open-source platform that lets you quickly develop and test native iOS, watchOS and macOS applications for iPhone, iPad, Watch and Mac, all using the C# language.
Cache
Delightful on-disk cache (written in Swift)
iOS Offline Caching for Web Content
A simple but flexible cache
A lightweight generic cache for iOS written in Swift with extra love for images.
High performance cache framework for iOS.
Nothing but Cache.
A delightful iOS and OS X Networking Cache Managing Class
Everyone tries to implement a cache at some point in their iOS app’s lifecycle, and this is ours.
Track is a thread safe cache write by Swift. Composed of DiskCache and MemoryCache which support LRU.
UITableView cell cache that cures scroll-lags on cell instantiating
A caching and consistency solution for immutable models.
Fast, non-deadlocking parallel object cache for iOS, tvOS and OS X
Melodic Caching for Swift
Delightful framework for iOS to easily persist structs, images, and data
A small key-value data cache for iOS, macOS and tvOS, written in Swift.
Swift caching library
LRU, type-safe, thread-safe memory cache class in Swift
Charts
Beautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart.
A simple and beautiful chart lib used in Piner and CoinsMan for iOS
iOS Chart. Support animation, click, scroll, area highlight.
Elegant Line Graphs for iOS. (Charting library)
iOS-based charting library for both line and bar graphs.
A simple and animated Pie Chart for your iOS app.
Simple and intuitive iOS chart library. Contribution graph, clock chart, and bar chart.
iOS/iPhone/iPad Chart, Graph. Event handling and animation supported.
A line chart library for iOS
candlestick chart for ios
ANDLineChartView is easy to use view-based class for displaying animated line chart.
An iOS wrapper for ChartJS. Easily build animated charts by leveraging the power of native Obj-C code.
Easy to use and highly customizable charts library for iOS
Flower-like chart written in Swift
An adaptive scrollable graph view for iOS to visualise simple discrete datasets. Written in Swift.
Light weight charts view generater for iOS. Written in Swift.
A charting library to visualize and interact with a vector map on iOS. It's like Geochart but for iOS!
an iOS open source Radar Chart implementation
A customizable radar chart in Swift
Amazing animations available with MagicPie!
Easy to use and highly customizable pie charts library for iOS
This is pie chart that is very easy to use and customizable design.
Easy to use Spider (Radar) Chart library for iOS written in Swift.
Core Plot source code and example applications
Draw a chart with progress bar style
Diagram View for iOS
Line Chart library for iOS written in Swift
Line and area chart library for iOS
Eat fit is a component for attractive data representation inspired by Google Fit
Core Charts | Basic Scrollable Chart Library for iOS
Code Quality
iOS project bootstrap aimed at high quality coding.
Asserts on roids, test all your assumptions with ease.
Objective-C style checker
Commit fully-formatted Objective-C as a team without even trying.
Optimizing UITableViewCell For Fast Scrolling
Cross-platform static analyzer and linter for Swift.
SwiftCop is a validation library fully written in Swift and inspired by the clarity of Ruby On Rails Active Record validations.
Trackable is a simple analytics integration helper library. It’s especially designed for easy and comfortable integration with existing projects.
Find memory leaks in your iOS app at develop time.
Find memory issues & leaks in your iOS app without instruments
iOS tool that helps with profiling iOS Memory usage.
iOS library to help detecting retain cycles in runtime.
Awesome bug reporting for iOS apps
An xcconfig (Xcode configuration) file for easily turning on a boatload of warnings in your project or its targets.
Aardvark is a library that makes it dead simple to create actionable bug reports.
In-app memory usage monitoring for iOS
Type-safe observable values and collections in Swift
A command-line tool and Xcode Extension for formatting Swift code
Makes it easier to support older versions of iOS by fixing things and adding missing methods
💊 Syntactic sugar for Swift do-try-catch
A guard to help you check if you make UI changes not in main thread
Find common xib and storyboard-related problems without running your app or writing unit tests.
decoupling between modules in your iOS Project. iOS模块化过程中模块间解耦方案
Flexible bug report framework for iOS
A Swift micro-framework to easily deal with weak references to self inside closures
Simple snippet generating assertions when UIKit is used on background threads.
In-app bug and crash reporting with video, logs, network traffic and traces.
Linter
A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C
Measure Swift code metrics and get reports in Xcode, Jenkins and other CI platforms.
A tool to enforce Swift style and conventions.
A linter tool for Interface Builder
Share lint rules between projects and lint changed files with SwiftLint.
Lint anything by combining the power of Swift & regular expressions.
Color
Yet another extension to manipulate colors easily in Swift and SwiftUI
HEX color handling as an extension for UIColor.
A beautiful set of predefined colors and a set of color methods to make your iOS/OSX development life easier.
Convenience methods for creating color using RGBA hex string.
Hue is the all-in-one coloring utility that you'll ever need.
Flat UI color palette helpers written in Swift.
An attractive color generator for Swift. Ported from randomColor.js.
Generate color based on the given string.
A Lightweight But Powerful Color Kit (Swift)
Manage Colors, Integrate Night/Multiple Themes. (Unmaintained)
Styles and colors text in the Terminal with ANSI escape codes. Conforms to ECMA Standard 48.
A simple UIColor category to get color with hex code.
Base types for theming an app.
A UIColor extension with CSS3 Color names.
An intuitive iOS color picker built in Swift.
Aesthetic color-scheme generation written in Swift
An unintrusive & light-weight iOS app-theming library with support for animated theme switching.
An action sheet styled color picker for iOS.
Command Line
Swiftline is a set of tools to help you create command line applications.
Compose beautiful command line interfaces in Swift
Terminal string styling for Swift.
The smartest and most beautiful (POSIX compliant) Command line framework for Swift 🤖
[DEPRECATED] Marathon makes it easy to write, run and manage your Swift scripts 🏃
Simple & Elegant Command Line Interfaces in Swift
✏️Expressive styling on terminal string. (chalk for swift)
A Swift framework for shell scripting.
Generate Markdown documentation from source code
Swift tool to generate Module Interfaces for Swift projects.
Concurrency
Coroutines, structured concurrency and CSP for Swift on macOS and Linux.
Functional Concurrency Primitives
Operation Oriented Programming in Swift
A Swift DSL that allows concise and effective concurrency manipulation
An actor model library for swift.
⚡️ Fast async task based Swift framework with focus on type safety, concurrency and multi threading
A complete set of primitives for concurrency and reactive programming on Swift
A lightweight, pure-Swift library for manage the task execution in different threads. Through the definition a simple but powerful concept, Kommand.
Type-safe thread-local storage in Swift
Make your logic flow and data flow clean and human readable
Queuer is a queue manager, built on top of OperationQueue and Dispatch (aka GCD).
Job Scheduler for IOS with Concurrent run, failure/retry, persistence, repeat, delay and more
Easy, concurrent, asynchronous tasks in Swift.
A general purpose embedded hierarchical lock manager used to build highly concurrent applications of all types. Same type of locker used in many of the large and small DBMSs in existence today.
Swift coroutines for iOS, macOS and Linux.
Core Data
A synchronization framework for Core Data.
Core Data code generation
Super Awesome Easy Fetching for Core Data!
Unleashing the real power of Core Data with the elegance and safety of Swift
A type-safe, fluent Swift library for working with Core Data
Graph is a semantic database that is used to create data-driven applications.
A feature-light wrapper around Core Data that simplifies common database operations.
JSON to Core Data and back. Swift Core Data Sync.
Core Data made simple.
Super awesome Swift minion for Core Data (iOS, macOS, tvOS)
The Big Nerd Ranch Core Data Stack
A swifter Core Data stack
A minimalistic, thread safe, non-boilerplate and super easy to use version of Active Record on Core Data. Simply all you need for doing Core Data. Swift flavour.
A Swift framework that wraps CoreData, hides context complexity, and helps facilitate best practices.
Simple CoreData wrapper to ease operations
100% Swift Simple Boilerplate Free Core Data Stack. NSPersistentContainer
JustPersist is the easiest and safest way to do persistence on iOS with Core Data support out of the box. It also allows you to migrate to any other persistence framework with minimal effort.
An NSPredicate DSL for iOS, OSX, tvOS, & watchOS. Inspired by SnapKit and lovingly written in Swift.
Write amazing, strong-typed and easy-to-read NSPredicate.
Robust CloudKit synchronization: offline editing, relationships, shared and public databases, field-level deltas, and more.
Database
Realm is a mobile database: a replacement for Core Data & SQLite
YapDB is a collection/key/value store with a plugin architecture. It's built atop sqlite, for Swift & objective-c developers.
A Cocoa / Objective-C wrapper around SQLite
An alternative to Core Data for people who like having direct SQL access.
Effortlessly synchronize UserDefaults over iCloud.
Prephirences is a Swift library that provides useful protocols and convenience methods to manage application preferences, configurations and app-state. UserDefaults
💾 Safe, statically-typed, store-agnostic key-value storage written in Swift!
Modern Swift API for NSUserDefaults
CoreData/Realm sweet wrapper written in Swift
A type-safe, Swift-language layer over SQLite3.
A toolkit for SQLite databases, with a focus on application development
Vapor ORM (queries, models, and relations) for NoSQL and SQL databases
A collaborative list of Parse alternative backend service providers.
TypedDefaults is a utility library to type-safely use NSUserDefaults.
A library that provides the ability to import/export Realm files from a variety of data container formats.
YapDatabase extensions for use with Swift
Realm GeoQueries made easy
A MongoDB interface for Swift [Not under active development]
An Objective-C wrapper for RocksDB - A Persistent Key-Value Store for Flash and RAM Storage.
Easy direct access to your database 🎯 http://oleghnidets.github.io/OHMySQL/
Key-Value store for Swift backed by LevelDB
📕A single value proxy for NSUserDefaults, with clean API.
A stand-alone Swift wrapper around the mongo-c client library, enabling access to MongoDB servers.
A stand-alone Swift wrapper around the MySQL client library, enabling access to MySQL servers.
A Swift client for Redis.
A stand-alone Swift wrapper around the libpq client library, enabling access to PostgreSQL servers.
A stand-alone Swift wrapper around the FileMaker XML Web publishing interface, enabling access to FileMaker servers.
Nora is a Firebase abstraction layer for FirebaseDatabase and FirebaseStorage
Swift library that makes easier to serialize the user's preferences (app's settings) with system User Defaults or Property List file on disk.
WCDB is a cross-platform database framework developed by WeChat.
Your Data Storage Troubleshooter 🛠
Simple, Strongly Typed UserDefaults for iOS, macOS and tvOS
Modern interface to UserDefaults + Codable support
Sync Realm Database with CloudKit
Safe and easy wrappers for common Firebase Realtime Database functions.
🛶 Your lightweight persistence toolbox
Safe and easy way to use FileManager as Database
Safe and easy wrappers for RealmSwift
Why not use UserDefaults to store Codable objects 😉
A protocol-centric, type and queue safe key-value workflow.
Store and retrieve Codable objects to various persistence layers, in a couple lines of code!
Elegant library to manage the interactions between view and model in Swift
An efficient, small mobile key-value storage framework developed by WeChat. Works on Android, iOS, macOS, Windows, and POSIX.
Swifty and modern UserDefaults
Native MongoDB driver for Swift, written in Swift
A lightweight wrapper over UserDefaults/NSUserDefaults with an additional layer of AES-256 encryption
Unrealm is an extension on RealmCocoa, which enables Swift native types to be saved in Realm.
A Generic CoreData Manager to accept any type of objects. Fastest way for adding a Database to your project.
ObjectBox Swift - persisting your Swift objects superfast and simple
Couchbase document store for mobile with cloud sync.
Data Structures / Algorithms
Minimal edits from one collection to another
Fast sorted collections for Swift using in-memory B-trees
Examples of commonly used data structures and algorithms in Swift.
Simple diff library in pure Swift
A generic view model for both basic and complex scenarios
Algorithm is a library of tools that is used to create intelligent applications.
Convert your own struct/enum to AnyObject easily.
A functional tool-belt for Swift Language similar to Lo-Dash or Underscore.js in Javascript
Swift type modelling the success/failure of arbitrary operations.
EKAlgorithms contains some well known CS algorithms & data structures.
Monaka convert custom struct to NSData.
Swift μ-framework for efficient array diffs and datasource adapters.
A Graph Data Structure in Pure Swift
A Generic Priority Queue in Pure Swift
Super lightweight DB written in Swift.
A fast Swift diffing library.
NSCoding's counterpart for Swift structs.
Algorithms and data structures in Swift, with explanations!
A Distributed Value Store in Swift.
Unidirectional, transactional, operation-based Store implementation.
🦀Amazingly incredible extraordinary lightning fast diffing in Swift
Swift library to generate differences and patches between collections.
A Swift probability and statistics library
RandMyMod base on your own struct or class create one or a set of instance, which the variable's value in the instance is automatic randomized.
KeyPathKit is a library that provides the standard functions to manipulate data along with a call-syntax that relies on typed keypaths to make the call sites as short and clean as possible.
Differific - a fast and convenient diffing framework.
The simplest abstraction to synchronize local data with remote source. For iOS, wirtten in swift.
💻 A fast and flexible O(n) difference algorithm framework for Swift collection.
Date & Time
Intuitive date handling in Swift
🐔 Toolkit to parse, validate, manipulate, compare and display dates, time & timezones in Swift.
A time and calendar manipulation library for iOS 9+, macOS 10.11+, tvOS 9+, watchOS 2+ written in Swift 4.
Dates and times made easy in iOS
Swifty API for NSTimer
A Swift Date extension helper
A Cocoa NSFormatter subclass to convert dates to and from ISO-8601-formatted strings. Supports calendar, week, and ordinal formats.
🕐 Format your dates/times as emojis.
Elegant NTP date library in Swift
NTP library for Swift and Objective-C. Get the true time impervious to device clock changes.
This Control is a beautiful time-of-day picker heavily inspired by the iOS 10 "Bedtime" timer.
A "time ago", "time since", "relative date", or "fuzzy date" category for NSDate and iOS, Objective-C, Cocoa Touch, iPhone, iPad
Swifty Date & Time API inspired from Java 8 DateTime API.
A TimeZonePicker UIViewController similar to the iOS Settings app. Search and select from a range of cities and countries to find your most suitable time zone.
🕰 Type-safe time calculations in Swift
Building a better date/time library for Swift
A Swift micro library for generating Sunrise and Sunset times.
Better time picker for iOS.
Custom Time Picker ViewController with Selection of start and end times in Swift
📅 Swift4 Date extension library
Schedule timing task in Swift using a fluent API. (A friendly alternative to Timer)
Debugging
A swift network profiler built on top of URLSession.