iOS
repo: vsouza/awesome-ios
category: Platforms
related: Swift · React Native · Android · Flutter
Contributing and Collaborating
Please see CONTRIBUTING and CODE-OF-CONDUCT for details.
Contents
- Analytics
- App Routing
- Apple TV
- App Store
- Architecture Patterns
- ARKit
- Authentication
- Blockchain
- Books
- Cache
- Charts
- Code Injection
- Code Quality
- Color
- Command Line
- Concurrency
- Core Data
- Courses
- Database
- Data Structures / Algorithms
- Date & Time
- Debugging
- Dependency Injection
- Dependency / Package Manager
- Deployment / Distribution
- EventBus
- Files
- Functional Programming
- Games
- GCD
- Gesture
- Graphics
- Hardware
- Layout
- Localization
- Logging
- Machine Learning
- Maps
- Math
- Media
- Messaging
- Networking
- Newsletters
- Notifications
- Objective-C Runtime
- Optimization
- [Other Awesome Lists](#other-awesome-lists)
- Parsing
- Passbook
- Payments
- Permissions
- Podcasts
- Project setup
- Prototyping
- Rapid Development
- Reactive Programming
- Reference
- Reflection
- Regex
- SDK
- Security
- Server
- Style Guides
- Testing
- Text
- UI
- Activity Indicator
- Alert & Action Sheet
- Animation
- Transition
- Badge
- Button
- Calendar
- Cards
- Form & Settings
- Keyboard
- Label
- Login
- Menu
- Navigation Bar
- PickerView
- Popup
- Progress View
- Pull to Refresh
- Rating Stars
- ScrollView
- Segmented Control
- Slider
- Splash View
- Status Bar
- Stepper
- Switch
- Tab Bar
- Table View / Collection View
- Tag
- TextField & TextView
- UIPageControl
- Web View
- Utility
- User Consent
- VR
- Walkthrough / Intro / Tutorial
- Websites
- Websocket
- Tools
- Tutorials and Keynotes
- UI Templates
- Xcode
Analytics
Analytics platforms, SDK's, error tracking and real-time answers about your app
- Aptabase - Open Source, Privacy-First and Simple Analytics for Swift Apps.
- Answers by Fabric - Answers gives you real-time insight into people’s experience in your app.
- Bugsnag - Error tracking with a free tier. Error reports include data on device, release, user, and allows arbitrary data.
- Countly - Open source, mobile & web analytics, crash reports and push notifications platform for iOS & Android.
- devtodev - Comprehensive analytics service that improves your project and saves time for product development.
- Embrace - Mobile observability, built on OpenTelemetry, to provide user-focused, reliable apps.
- Emerge Tools - Prevent app size & performance regressions on every pull request, get automated insights on how to improve.
- Instabug - In-app feedback, Bug and Crash reporting, Fix Bugs Faster through user-steps, video recordings, screen annotation, network requests logging.
- Matomo - The MatomoTracker is an iOS, tvOS and macOS SDK for sending app analytics to a Matomo server.
- Mixpanel - Advanced analytics platform.
- MOCA Analytics - Paid cross-platform analytics backend.
- Segment - The hassle-free way to integrate analytics into any iOS application.
- Sentry - Sentry provides self-hosted and cloud-based error monitoring that helps all software teams discover, triage, and prioritize errors in real-time.
- Shake - In-app feedback and bug reporting tool. Fix app bugs up to 50x faster with detailed device data, repro steps, video recording, black box data, network requests and custom logging.
App Routing
Elegant URL routing, navigation frameworks, deep links and more
- ApplicationCoordinator - Coordinator is an object that handles navigation flow and shares flow’s handling for the next coordinator after switching on the next chain.
- Appz - Easily launch and deeplink into external applications, falling back to web if not installed.
- Composable Navigator - An open source library for building deep-linkable SwiftUI applications with composition, testing and ergonomics in mind
- Crossroad - Crossroad is an URL router focused on handling Custom URL Schemes. Using this, you can route multiple URL schemes and fetch arguments and parameters easily.
- DeepLinkKit - A splendid route-matching, block-based way to handle your deep links.
- JLRoutes - URL routing library for iOS with a simple block-based API.
- Linker - Lightweight way to handle internal and external deeplinks for iOS.
- LiteRoute - Easy transition between VIPER modules, implemented on pure Swift.
- Marshroute - Marshroute is an iOS Library for making your Routers simple but extremely powerful.
- RouteComposer - Library that helps to handle view controllers composition, routing and deeplinking tasks.
- Router - Simple Navigation for iOS.
- RxFlow - Navigation framework for iOS applications based on a Reactive Flow Coordinator pattern.
- SwiftCurrent - A library for managing complex workflows.
- SwiftRouter - A URL Router for iOS.
- URLNavigator - Elegant URL Routing for Swift
- WAAppRouting - iOS routing done right. Handles both URL recognition and controller displaying with parsed parameters. All in one line, controller stack preserved automatically!
- ZIKRouter - An interface-oriented router for discovering modules and injecting dependencies with protocol in OC & Swift, iOS & macOS. Handles route in a type safe way.
App Store
Apple Guidelines and version notification libraries
- Apple Review Guidelines - Highlighted some of the most common issues that cause apps to get rejected.
- Free App Store Optimization Tool - Lets you track your App Store visibility in terms of keywords and competitors.
- Siren - Notify users when a new version of your app is available and prompt them to upgrade.
Apple TV
tvOS view controllers, wrappers, template managers and video players.
- FocusTvButton - Light wrapper of UIButton that allows extra customization for tvOS
- ParallaxView - iOS controls and extensions that add parallax effect to your application.
- Swift-GA-Tracker-for-Apple-tvOS - Google Analytics tracker for Apple tvOS provides an easy integration of Google Analytics’ measurement protocol for Apple TV.
- TvOSCustomizableTableViewCell - Light wrapper of UITableViewCell that allows extra customization for tvOS.
- TvOSMoreButton - A basic tvOS button which truncates long text with '... More'.
- TvOSPinKeyboard - PIN keyboard for tvOS.
- TvOSScribble - Handwriting numbers recognizer for Siri Remote.
- TvOSSlider - TvOSSlider is an implementation of UISlider for tvOS.
- TvOSTextViewer - Light and scrollable view controller for tvOS to present blocks of text
- XCDYouTubeKit - YouTube video player for iOS, tvOS and macOS.
Architecture Patterns
Clean architecture, Viper, MVVM, Reactive... choose your weapon.
- Clean Architecture for SwiftUI + Combine - A demo project showcasing the production setup of the SwiftUI app with Clean Architecture.
- CleanArchitectureRxSwift - Example of Clean Architecture of iOS app using RxSwift.
- ios-architecture - A collection of iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs and many others.
- iOS-Viper-Architecture - This repository contains a detailed sample app that implements VIPER architecture in iOS using libraries and frameworks like Alamofire, AlamofireImage, PKHUD, CoreData etc.
- Reactant - Reactant is a reactive architecture for iOS.
- Spin - A universal implementation of a Feedback Loop system for RxSwift, ReactiveSwift and Combine
- SwiftyVIPER - Makes implementing VIPER architecture much easier and cleaner.
- Tempura - A holistic approach to iOS development, inspired by Redux and MVVM.
- The Composable Architecture - The Composable Architecture is a library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
- VIPER Module Generator - A Clean VIPER Modules Generator with comments and predfined functions.
- Viperit - Viper Framework for iOS. Develop an app following VIPER architecture in an easy way. Written and tested in Swift.
ARKit
Library and tools to help you build unparalleled augmented reality experiences
- ARHeadsetKit - High-level framework for using $5 Google Cardboard to replicate Microsoft Hololens.
- ARKit-CoreLocation - Combines the high accuracy of AR with the scale of GPS data.
- ARKit Emperor - The Emperor give you the most practical ARKit samples ever.
- ARKit Virtual Objects - Placing Virtual Objects in Augmented Reality.
- ARVideoKit - Record and capture ARKit videos, photos, Live Photos, and GIFs.
- Placenote - A library that makes ARKit sessions persistent to a location using advanced computer vision.
- SmileToUnlock - This library uses ARKit Face Tracking in order to catch a user's smile.
Authentication
Oauth and Oauth2 libraries, social logins and captcha tools.
- Heimdallr.swift - Easy to use OAuth 2 library for iOS, written in Swift.
- InstagramSimpleOAuth - A quick and simple way to authenticate an Instagram user in your iPhone or iPad app.
- LinkedInSignIn - Simple view controller to login and retrieve access token from LinkedIn.
- OAuth2 - OAuth2 framework for macOS and iOS, written in Swift.
- OAuthSwift - Swift based OAuth library for iOS
- ReCaptcha - (In)visible ReCaptcha for iOS.
- SwiftyOAuth - A simple OAuth library for iOS with a built-in set of providers.
Blockchain
Tool for smart contract interactions. Bitcoin protocol implementations and Frameworks for interacting with cryptocurrencies.
- BitcoinKit - Bitcoin protocol toolkit for Swift, BitcoinKit implements Bitcoin protocol in Swift. It is an implementation of the Bitcoin SPV protocol written in swift.
- CoinpaprikaAPI - Coinpaprika API client with free & frequently updated market data from the world of crypto: coin prices, volumes, market caps, ATHs, return rates and more.
- EthereumKit - EthereumKit is a free, open-source Swift framework for easily interacting with the Ethereum.
- EtherWalletKit - Ethereum Wallet Toolkit for iOS - You can implement Ethereum wallet without a server and blockchain knowledge.
- Web3.swift - Web3 library for interacting with the Ethereum blockchain.
- web3swift - Elegant Web3js functionality in Swift. Native ABI parsing and smart contract interactions.
Books
Most recommended books
- [Advanced Swift by Chris Eidhof, Ole Begemann, and Airspeed Velocity](https://www.objc.io/books/advanced-swift/)
- Anyone Can Create an App by Wendy L. Wise
- Classic Computer Science Problems in Swift
- Cocoa Design Patterns
- Core Data by Florian Kugler and Daniel Eggert
- [Functional Swift by Chris Eidhof, Florian Kugler, and Wouter Swierstra](https://www.objc.io/books/functional-swift/)
- [Hello Swift! by Tanmay Bakshi with Lynn Beighley](https://www.manning.com/books/hello-swift)
- [iOS Development with Swift by Craig Grummitt](https://www.manning.com/books/ios-development-with-swift)
- iOS Programming: The Big Nerd Ranch Guide by Christian Keur, Aaron Hillegass
- Programming in Objective-C by Stephen G. Kochan
- Swift in Depth
- The Complete Friday Q & A: Volume 1
- [The Swift Programming Language by Apple](https://books.apple.com/us/book/swift-programming-language/id881256329)
Cache
Thread safe, offline and high performance cache libs and frameworks.
- Awesome Cache - Delightful on-disk cache (written in Swift).
- Cache - Nothing but Cache.
- Cache - Swift caching library.
- Cachyr - A small key-value data cache for iOS, macOS and tvOS, written in Swift.
- Carlos - A simple but flexible cache.
- Disk - Delightful framework for iOS to easily persist structs, images, and data.
- HanekeSwift - A lightweight generic cache for iOS written in Swift with extra love for images.
- Johnny - Melodic Caching for Swift.
- mattress - iOS Offline Caching for Web Content.
- MemoryCache - MemoryCache is type-safe memory cache.
- PINCache - Fast, non-deadlocking parallel object cache for iOS and macOS.
- RocketData - A caching and consistency solution for immutable models.
- SPTPersistentCache - Everyone tries to implement a cache at some point in their iOS app’s lifecycle, and this is ours. By Spotify.
- Track - Track is a thread safe cache write by Swift. Composed of DiskCache and MemoryCache which support LRU.
- UITableView Cache - UITableView cell cache that cures scroll-lags on a cell instantiating.
- YYCache - High performance cache framework for iOS.
Charts
Explore beautiful, easy-to-use, and customizable iOS charting libraries, perfect for creating dynamic and stunning data visualizations.
- ANDLineChartView - ANDLineChartView is easy to use view-based class for displaying animated line chart.
- Charts - A powerful chart/graph framework, the iOS equivalent to MPAndroidChart.
- core-plot - A 2D plotting lib which is highly customizable and capable of drawing many types of plots.
- CoreCharts - CoreCharts is a simple powerful yet Charts library for apple products.
- CSPieChart - iOS PieChart Opensource. This is very easy to use and customizable.
- DDSpiderChart - Easy to use and customizable Spider (Radar) Chart library for iOS written in Swift.
- Dr-Charts - Dr-Charts is a highly customisable, easy to use and interactive chart/graph framework in Objective-C.
- EChart - iOS/iPhone/iPad Chart, Graph. Event handling and animation supported.
- EatFit - Eat fit is a component for attractive data representation inspired by Google Fit.
- FlowerChart - Flower-shaped chart with custom appearance animation, fully vector.
- FSInteractiveMap - A charting library to visualize and interact with a vector map on iOS. It's like Geochart but for iOS.
- FSLineChart - A line chart library for iOS.
- Graphs - Light weight charts view generator for iOS.
- JBChartView - iOS-based charting library for both line and bar graphs.
- JYRadarChart - An iOS open source Radar Chart implementation.
- MagicPie - Awesome layer-based pie chart. Fantastically fast and fully customizable. Amazing animations available with MagicPie.
- PNChart - A simple and beautiful chart lib used in Piner and CoinsMan for iOS.
- PieCharts - Easy to use and highly customizable pie charts library for iOS.
- Scrollable-GraphView - An adaptive scrollable graph view for iOS to visualise simple discrete datasets. Written in Swift.
- SMDiagramViewSwift - Meet cute and very flexibility library for iOS application for different data view in one circle diagram.
- Swift LineChart - Line Chart library for iOS written in Swift.
- SwiftChart - Line and area chart library for iOS.
- TEAChart - Simple and intuitive iOS chart library. Contribution graph, clock chart, and bar chart.
- TKRadarChart - A customizable radar chart in Swift.
- TWRCharts - An iOS wrapper for ChartJS. Easily build animated charts by leveraging the power of native Obj-C code.
- XJYChart - A Beautiful chart for iOS. Support animation, click, slide, area highlight.
Code Injection
Decrease development time with these tools
- Inject - Hot Reloading for Swift applications!
- injectionforxcode - Code injection including Swift.
- Vaccine - Vaccine is a framework that aims to make your apps immune to recompile-decease.
Code Quality
Quality always matters. Code checkers, memory vigilants, syntax sugars and more.
- Aardvark - Aardvark is a library that makes it dead simple to create actionable bug reports.
- Bootstrap - iOS project bootstrap aimed at high quality coding.
- Bugsee - In-app bug and crash reporting with video, logs, network traffic and traces.
- FBRetainCycleDetector - iOS library to help detecting retain cycles in runtime.
- HeapInspector-for-iOS - Find memory issues & leaks in your iOS app without instruments.
- KZAsserts - Asserts on roids, test all your assumptions with ease.
- MLeaksFinder - Find memory leaks in your iOS app at develop time.
- PSTModernizer - Makes it easier to support older versions of iOS by fixing things and adding missing methods.
- spacecommander - Commit fully-formatted Objective-C code as a team without even trying.
- SwiftCop - SwiftCop is a validation library fully written in Swift and inspired by the clarity of Ruby On Rails Active Record validations.
- SwiftFormat - A code library and command-line formatting tool for reformatting Swift code.
- Tailor - Cross-platform static analyzer for Swift that helps you to write cleaner code and avoid bugs.
- WeakableSelf - A Swift micro-framework to encapsulate
[weak self]andguardstatements within closures.
Linter
Static code analyzers to enforce style and conventions.
- AnyLint - Lint anything by combining the power of Swift & regular expressions.
- IBLinter - A linter tool for Interface Builder.
- OCLint - Static code analysis tool for improving quality and reducing defects.
- Swiftlint - A tool to enforce Swift style and conventions.
Color
Hex color extensions, theming, color pickers and other awesome color tools.
- BCColor - A lightweight but powerful color kit (Swift).
- ChromaColorPicker - An intuitive iOS color picker built in Swift.
- Colours - A beautiful set of predefined colors and a set of color methods to make your iOS/macOS development life easier.
- CostumeKit - Base types for theming an app.
- CSS3ColorsSwift - A UIColor extension with CSS3 Colors name.
- DynamicColor - Yet another extension to manipulate colors easily in Swift.
- FlatUIColors - Flat UI color palette helpers written in Swift.
- Gestalt - An unintrusive & light-weight iOS app-theming library with support for animated theme switching.
- Hue - Hue is the all-in-one coloring utility that you'll ever need.
- Lorikeet - Aesthetic color-scheme generation written in Swift.
- PFColorHash - Generate color based on the given string.
- PrettyColors - Styles and colors text in the Terminal with ANSI escape codes. Conforms to ECMA Standard 48.
- RandomColorSwift - An attractive color generator for Swift. Ported from
randomColor.js. - SheetyColors - An action sheet styled color picker for iOS.
- SwiftHEXColors - HEX color handling as an extension for UIColor.
- UIColor-Hex-Swift - Convenience method for creating autoreleased color using RGBA hex string.
Command Line
Smart, beautiful and elegant tools to help you create command line applications.
- Ashen - A framework for writing terminal applications in Swift.
- ColorizeSwift - Terminal string styling for Swift.
- CommandCougar - An elegant pure Swift library for building command line applications.
- Commander - Compose beautiful command line interfaces in Swift.
- Crayon - Terminal string styling with expressive API and 256/TrueColor support.
- Guaka - The smartest and most beautiful (POSIX compliant) command line framework for Swift.
- Linenoise - A pure Swift replacement for readline
- ModuleInterface - Command Line Tool that generates the Module's Interface from a Swift project.
- nef - Command line tool to ease the creation of documentation in the form of Swift Playgrounds.
- Progress - Add beautiful progress bars to your loops.
- SourceDocs - Command Line Tool that generates Markdown documentation from inline source code comments.
- Swift Argument Parser - Straightforward, type-safe argument parsing for Swift
- SwiftCLI - A powerful framework for developing CLIs in Swift
- Swiftline - Swiftline is a set of tools to help you create command line applications.
- SwiftShell - A Swift framework for shell scripting and running shell commands.
- SwiftyTextTable - A lightweight library for generating text tables.
Concurrency
Job schedulers, Coroutines, Asynchronous and Type safe threads libs and frameworks written in Swift
- Aojet - An actor model library for swift.
- AsyncNinja - A complete set of concurrency and reactive programming primitives.
- AsyncQueue - A library of queues that enable sending ordered tasks from synchronous to asynchronous contexts.
- Brisk - A Swift DSL that allows concise and effective concurrency manipulation.
- Concurrent - Functional Concurrency Primitives.
- Flow - Operation Oriented Programming in Swift.
- Flow-iOS - Make your logic flow and data flow clean and human readable.
- GroupWork - Easy concurrent, asynchronous tasks in Swift.
- Kommander - Kommander is a Swift library to manage the task execution in different threads. Through the definition a simple but powerful concept, Kommand.
- Overdrive - Fast async task based Swift framework with focus on type safety, concurrency and multi threading.
- Queuer - A queue manager, built on top of OperationQueue and Dispatch (aka GCD).
- StickyLocking - A general purpose embedded hierarchical lock manager used to build highly concurrent applications of all types.
- SwiftCoroutine - Swift coroutines library for iOS and macOS.
- SwiftQueue - Job Scheduler with Concurrent run, failure/retry, persistence, repeat, delay and more.
- Threadly - Type-safe thread-local storage in Swift.
- Venice - CSP (Coroutines, Channels, Select) for Swift.
Core Data
Core data Frameworks, wrappers, generators and boilerplates.
- AERecord - Super awesome Core Data wrapper in Swift.
- AlecrimCoreData - A powerful and simple Core Data wrapper framework written in Swift.
- Cadmium - A complete swift framework that wraps CoreData and helps facilitate best practices.
- CloudCore - Robust CloudKit synchronization: offline editing, relationships, shared and public databases, field-level deltas, and more.
- Core Data Query Interface A type-safe, fluent query framework for Core Data.
- CoreDataDandy - A feature-light wrapper around Core Data that simplifies common database operations.
- CoreDataStack - The Big Nerd Ranch Core Data Stack.
- CoreStore - Powerful Core Data framework for Incremental Migrations, Fetching, Observering, etc.
- DataKernel - Simple CoreData wrapper to ease operations.
- DATAStack - 100% Swift Simple Boilerplate Free Core Data Stack. NSPersistentContainer.
- Ensembles - A synchronization framework for Core Data.
- Graph - An elegant data-driven framework for CoreData in Swift.
- JSQCoreDataKit - A swifter Core Data stack.
- JustPersist - JustPersist is the easiest and safest way to do persistence on iOS with Core Data support out of the box.
- MagicalRecord - Super Awesome Easy Fetching for Core Data.
- Mogenerator - Automatic Core Data code generation.
- PredicateFlow - Write amazing, strong-typed and easy-to-read NSPredicate, allowing you to write flowable NSPredicate, without guessing attribution names, predicate operation or writing wrong arguments type.
- PrediKit - An NSPredicate DSL for iOS, macOS, tvOS, & watchOS. Inspired by SnapKit and lovingly written in Swift.
- Skopelos - 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.
- Sync - Modern Swift JSON synchronization to Core Data.
Courses
Getting Started
Courses, tutorials, guides and bootcamps
- 100 Days of SwiftUI - Free collection of videos and tutorials updated for iOS 15 and Swift 5.5.
- Apple - Object-Oriented Programming with Objective-C
truncated — full list on GitHub