Swift
Apple's compiled programming language that is secure, modern, programmer-friendly, and fast.
Contents
- Localization
- Accessibility
- AI
- Algorithm
- Analytics
- Animation
- API
- App Routing
- App Store
- Audio
- Augmented Reality
- Authentication
- Bots
- Cache
- Chart
- Chat
- Colors
- Command Line
- Concurrency
- CBOR
- Core Data
- CSV
- Firebase
- GraphQL
- JSON
- Key Value Store
- MongoDB
- Multi Database
- ORM
- Other Data
- Realm
- SQL drivers
- SQLite
- TOML
- XML
- YAML
- ZIP
- Date
- Dependency Injection
- Device
- Documentation
- Embedded Systems
- Events
- Files
- Fonts
- Game Engine
- Games
- Gesture
- Bluetooth
- Camera
- Barcode
- Haptic Feedback
- iBeacon
- Images
- Keyboard
- Kit
- Layout
- Auto Layout
- Location
- Logging
- Maps
- Math
- Network
- HTML
- Messaging Protocol
- SOAP
- Socket
- Webserver
- OCR
- Quality
- Scripting
- Security
- Cryptography
- Keychain
- Streaming
- Styling
- SVG
- System
- Testing
- Mock
- Text
- Thread
- Alert
- Blur
- Button
- Calendar
- Cards
- Form
- Utility
- Validation
- Phone Numbers
- Version Manager
Guides
Style Guides
Third party Guides
Boilerplates
iOS project template with fastlane lanes, Travis CI jobs and GitHub integrations of Codecov, HoundCI for SwiftLint and Danger.
Editor Support
Google Colaboratory
Other Awesome Lists
List of the questions that helps you to prepare for the interview.
A curated list of awesome applications, softwares, tools and shiny things for macOS.
Dependency Managers
Patterns
Example of Clean Architecture of iOS app using RxSwift.
️ GoodReactor is a Redux-inspired Reactor framework for communication between the View Model, View Controller, and Coordinator.
A Simple architecture that decouples state changes from SwiftUI's View
Provides a versatile Feedback Loop implementation working with RxSwift, ReactiveSwift and Combine.
Stateful UIVIewController composition — the MVC cure for Massive View Controllers.
A Reactive Data-Binding and Dependency Injection Library for SwiftUI x Concurrency.
Misc
Level up your Codable structs through property wrappers. The goal of these property wrappers is to avoid implementing a custom init(from decoder: Decoder) throws and suffer through boilerplate.
A Collection of PropertyWrappers to make custom Serialization of Codable Types easy.
Generalized approach to managing shared data in Swift applications to support Local-first apps.
A command line tool for exporting resources and generating code from your Figma files.
@MemberwiseInit is a Swift Macro that can more often provide your intended init, while following the same safe-by-default semantics of Swift’s memberwise initializers.
Create XCFrameworks with ease! A Command Line Tool to create XCFramework for multiple platforms at one shot! iOS, Mac Catalyst, tvOS, macOS, and watchOS.
A command line tool for generating a REST API from a Swagger spec based off Stencil templates.
Easily generate cross platform framework projects from the command line.
An open source command line tool to create, maintain and interact with your Xcode projects at scale.
Libs
Localization
A tool to auto-generate enums for all your Localizable.strings keys (with appropriate associated values if those strings contains printf-format placeholders like %@).
Incrementally update/translate your Strings files from Code and Storyboards/XIBs.
Delivers all new translations from Crowdin project to the application immediately.
Localize your views directly in Interface Builder with IBLocalizable.
Localization of an application with ability to change language "on the fly" and support for plural forms in any language.
Realtime dynamic localization of your app with remote management so you can manage maintain and deploy translations without resubmitting app.
Accessibility
AI
Algorithm
Analytics
Animation
A library to take the power of UIView.animateWithDuration(_:, animations:...) to a whole new level.
Design and prototype UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable.
Interpolation framework for creating interactive gesture-driven animations.
Poi makes you use card UI like tinder UI .You can use it like tableview method.
A library to help you to make tutorials, release notes and animated pages.
Simple Interface Core Animation. Run type-safe animation sequencially or parallelly.
API
Scheduled generated GitHub's REST API as Swift code from OpenAPI specification.
Framework to Generate Random Users - An Unofficial SDK for randomuser.me.
App Routing
Declarative state- and URL-based router. Complex automatic View Controllers hierarchy transitions. Time-tested server-side conventions.
RxFlow is a navigation framework for iOS applications based on a Reactive Flow Coordinator pattern.
App Store
Lightweight library to easily handle auto-renewable subscriptions with no backend required.
A tiny library to request review on the AppStore via SKStoreReviewController.
Audio
Powerful audio synthesis, processing and analysis, without the steep learning curve.
AudioPlayer is a simple class for playing audio (basic and advanced usage) in iOS, OS X and tvOS apps.
SDK for real-time on-device audio intelligence on iOS/macOS (diarization, identification, VAD, separation, embeddings, ASR), with CoreML models converted directly from PyTorch to leverage Apple Neural Engine performance.
Persistence AVPlayer to resume playback after bad network connection even in background mode.
Soundable allows you to play sounds, single and in sequence, in a very easy way.
Simple audio player for iOS that streams and performs realtime audio manipulations with AVAudioEngine.
Augmented Reality
Authentication
Bots
Cache
Chart
Adaptive scrollable graph view for iOS to visualise simple discrete datasets.
A simple line and area charting library for iOS. Supports multiple series, partially filled series and touch events.
Chat
SwiftUI Chat UI framework with fully customizable message cells, input view, and a built-in media picker
A simple and easily customizable InputAccessoryView for making powerful input bars with autocomplete and attachments.
Colors
Command Line
A framework for writing terminal applications in Swift. Based on The Elm Architecture.
A set of command line tools that lets you have compile time verification of your documentation written as Xcode Playground.
Concurrency
A number of preset loading indicators created with SwiftUI.
Helpful component for creating a controller aimed to manage any calculated parameter.
Scrollable UINavigationBar that follows the scrolling of a UIScrollView.
A custom stretchable header view for UIScrollView or any its subclasses with UIActivityIndicatorView support for content reloading.
Make any UIView a full fledged animated notification center. It is a way to quickly add a notification badge icon to a UIView.
A better way to present a SFSafariViewController or start a ASWebAuthenticationSession in SwiftUI.
Powerful Bottom Sheet component with content based size, interactive dismissal and navigation controller support.
Generates and manages contextual cards displayed at the bottom of the screen.
A customizable SwiftUI component for selecting a range of values using a circular slider.
UI Component. This is a copy swipe-panel from app: Apple Maps, Stocks
A simple, customizable view for efficiently collecting country information in iOS apps.
A library to recreate the iOS 10 Apple Music now playing transition.
Protocol oriented, type safe, scalable design system foundation framework for iOS.
Displays a notification on top of a UITabBarItem or any UIView anchor view to reveal additional information.
A child view controller framework that makes setting up your parent controllers as easy as pie.
A slider widget with a popup bubble displaying the precise value selected.
UITextView that supports auto growing, placeholder and length limit.
A library, which adds the ability to hide navigation bar when view controller is pushed via hidesNavigationBarWhenPushed flag.
A library of widgets and helpers to build instant-search features on iOS.
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.
A UITextView subclass that adds support for multiline placeholder.
Declarative, configurable & highly reusable UI development as making Lego bricks.
A command-line tool that automatically generates a Plist of all your dependencies.
An easy way to add a shimmering effect to any view with just one line of code. It is useful as an unobtrusive loading indicator.
A simple modal resource that uses a UIScrollView to allow the user to close the modal by dragging it down.
Express your creativity with Material, an animation and graphics framework for Google's Material Design and Apple's Flat UI.
Simple iOS photo and video browser with optional grid view, captions and selections.
UISegmentedControl remake that supports selecting multiple segments, vertical stacking, combining text and images.
UISlider clone with multiple thumbs and values, range highlight, optional snap intervals, optional value labels, either vertical or horizontal.
Provides an alternative to the native iOS UIModalPresentationFormSheet, adding support for iPhone and additional opportunities to setup controller size and feel form sheet.
The next in the generations of 'growing textviews' optimized for iOS 7 and above.
OverlayContainer makes it easier to develop overlay based interfaces, such as the one presented in the Apple Maps or Stocks apps.
A SwiftUI Library for creating resizable partitions for View Content.
A library to present popovers. Simple, modern, and highly customizable. Not boring!
You can dismiss modal viewcontroller by pulling scrollview or navigationbar.
A UICollectionView-based token field which provides intrinsic content height.
An elegant way to show users that something is happening and also prepare them to which contents he is waiting.
Simple PhotoBrowser/Viewer inspired by facebook, twitter photo browsers.
Full configurable spreadsheet view user interfaces for iOS applications.
Placeholder views based on content, loading, error or empty states.
Step-by-step progress view with labels and shapes. A good replacement for UIActivityIndicatorView and UIProgressView.
Really sweet and easy bottom pullable sheet implementation. You can find a similar implementation in applications like Apple Maps, Find My, Stocks, etc.
Skia based 2d graphics SwiftUI rendering library, based on Rust to implement software rasterization to perform rendering
High performance and lightweight UIView, UIImage, UIImageView, UIlabel, UIButton and more.
Lightweight, fast and customizable Drawer View implementation identical to Apple Maps, Stocks and etc.
Automatically caches the object that is confirmed the Open Graph Protocol, and displays it as URL embedded card.
Ethereum Wallet Toolkit for iOS - You can implement Ethereum wallet without a server and blockchain knowledge.
FlagAndCountryCode provides phone codes and flags for every country. Works on UIKit and SwiftUI
GoodExtensions is a collection of useful and frequently used extensions.
GoodUIKit is an extensions library filled with reusable UI snippets for faster and more efficient development.
Highlight whatever you want! Highlighter will magically find UI objects such as UILabel, UITextView, UITexTfield, UIButton in your UITableViewCell or other Class.
Surface retain cycle / memory issues right as you develop your application.
The simplest way to display the librarie's licences used in your application.
A library for isolated developing UI components and automatically snapshots of them.
Generate a privacy policy for your Swift iOS app from its code.
Tool to get strong typed, autocompleted resources like images, cells and segues.
Core Data
Robust CloudKit synchronization: offline editing, relationships, shared and public databases, and more.
DataKernel is a minimalistic wrapper around Core Data stack to ease persistence operations. No external dependencies.
Easiest and safest way to do persistence on iOS with Core Data support out of the box.
CSV
Firebase
JSON
An Alamofire extension which converts JSON response data into objects using ObjectMapper.
JSON parsing framework that makes parsing simple, reliable and composable.
Reflection based JSON encoding and decoding. Including support for NSDictionary, NSCoding, Printable, Hashable and Equatable.
Lightning fast JSON deserialization and value conversion library for iOS & OS X.
Key Value Store
Strongly-typed UserDefaults with support for Codable and key observation.
Manage application preferences, NSUserDefaults, iCloud, Keychain and more.
MongoDB
Multi Database
ORM
Other Data
A performant cache for logging systems. CacheAdvance persists log events 30x faster than SQLite.
Simplified access to CloudKit with support for subscriptions and local caching.
Realm
SQL drivers
SQLite
XML
YAML
ZIP
Date
Dependency Injection
Device
Documentation
Events
A lightweight implementation of an observable sequence that you can subscribe to.
NoticeObserveKit is type-safe NotificationCenter wrapper that associates notice type with info type.
Helping you own NSNotificationCenter by providing a simple, customizable adapter.
Open source implementation of Apple's Combine framework for processing values over time.
ReactiveCocoa (RAC) is a Cocoa framework inspired by Functional Reactive Programming. It provides APIs for composing and transforming streams of values over time.
A framework for reactive and unidirectional application architecture.
React-like declarative API for building native UI components with easy to use one-way data binding.
Publish–subscribe design pattern implementation framework, with ability to publish events by topic.
Files
Fonts
Game Engine
SpriteKit and GameplayKit based engine for making 2d games, with practical examples and tutorials.
Games
Gesture
Bluetooth
Camera
Massively increase camera performance and ease of use in your next project.
SwiftUI customizable media picker - supports camera and gallery with albums
Barcode
Haptic Feedback
Images
Image slide-show viewer with multiple predefined transition styles, and with ability to create new transitions with ease.
An iPhone/iPad photo gallery viewer, useful for viewing a large (or small!) number of photos.
A library that displays spherical or cylindrical panoramas with touch or motion based controls.
A fully customizable photo viewer ViewController to display single photo or collection of photos, inspired by Facebook photo viewer.
A modern, simple and zero-dependency photo picker with an elegant and customizable image editor.
GPUImage 2 is a BSD-licensed framework for GPU-accelerated video and image processing.
GPUImage 3 is a BSD-licensed framework for GPU-accelerated video and image processing using Metal.
Metal API for GPU accelerated Graphics and Video and Camera filter framework.
Detect and crop faces, barcodes and texts in image with iOS 11 Vision API.
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.
A iOS library for adding effects, drawings, text, stickers, and making GIFs from existing media or the camera.
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.
Advanced framework for loading, caching, processing, displaying and preheating images.
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.
Library that converts SVG images to UIImage, NSImage and generates CoreGraphics source code.
A single pass SVG parser with multiple interface options (String, NS/UIBezierPath, CAShapeLayer, and NS/UIView).
Keyboard
An elegant solution for keeping any UIView visible when the keyboard is being shown. No UIScrollView required.
Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView.
Codeless manager to hide keyboard by tapping on views for iOS.
Add user-customizable global keyboard shortcuts to your macOS app. Includes a Cocoa and SwiftUI component.
Kit
Layout
- Powerful autolayout framework, that can manage UIView(NSView), CALayer, not rendered views and etc. Provides placeholders.
Nice and clean interface to the highly optimized Facebook yoga Flexbox implementation.
This framework supports complex layouts, including chaining and nesting layout with simple and intuitive operand & DSL syntax.
Fast Views layouting without auto layout. No magic, pure code, full control and blazing fast. Concise syntax, intuitive, readable & chainable. [iOS/macOS/tvOS]
Auto Layout
A linear constraint solving library using the same algorithm as AutoLayout.
Declarative autolayout based on NSLayoutAnchor, swifty reimagination of VFL, alternative to UIStackView.
A concise but flexible DSL for creating Auto Layout constraints and adding subviews.
Fast path to layout using Visual Format Language (VFL) with extended syntax.
Location
Logging
Configurable and extensible high-level logging API that is simple, lightweight and performant.
Lightweight logging library focused on reporting timings for operations.
A flexible logging library that supports multiple transports and platforms.
Dead Simple: logging the way it's meant to be! Runs on iOS, macOS, and Linux.
Maps
FlyoverKit enables you to present stunning 360° flyover views on your MKMapView with zero effort while maintaining full configuration possibilities.
Math
Network
Powerful Codable API requests builder and manager for iOS. Based on Alamofire.
Makes Internet connectivity detection more robust by detecting Wi-Fi networks without Internet access.
A wrapper for the MultipeerConnectivity framework for automatic offline data transmission between devices.
Write clean, concise and declarative network code relying on URLSession, with the power of RxSwift. Inspired by Retrofit.
A non-intrusive framework for intercepting any outgoing requests and incoming responses between your app and server for debugging purposes.
A zero-dependency networking solution for building modern and secure iOS, watchOS, macOS and tvOS applications.
Background downloads, relaunch recovery, resumable transfers, and task management for iOS apps.
HTML
Messaging Protocol
SOAP
Socket
Webserver
Quality
A tool for Swift code modification intermediating between code generation and formatting.
A validation library which inspired by the clarity of Ruby On Rails Active Record validations.
Scripting
Security
Cryptography
Interface to the Sodium library for common crypto operations for iOS and OS X.
Keychain
GoodPersistence simplifies caching data in keychain and UserDefaults. Using a property wrappers.
Helper functions for saving text in Keychain securely for iOS, OS X, tvOS and watchOS.
Streaming
Styling
System
Testing
An headless browser to access and manipulate webpages using javascript allowing to run functional tests.
A framework for easily testing Push Notifications, Universal Links and Routing in XCUITests.
UI testing library for interact with network requests, stub CLLocationManager and UNUserNotificationCenter, and fine grain scrolling in table/collection/scroll views
A testing library that automatically generates random data for testing program properties.
Mock
A framework that leverages the type system to let you easily create mocked instances of your data types.
Mock Alamofire and URLSession requests without touching your code implementation
Text
Easiest way to create an attributed UITextView with support for multiple links, hashtags and mentions.
Markdown rendering library for iOS with support for tables, LaTeX, Mermaid, and code highlighting.
Parser combinator framework that supports source location tracking, backtracking prevention, and rich error messages.
PredicateFlow is a builder that allows you to write amazing, strong-typed and easy-to-read NSPredicate.
Very easy to use Regular Expressions library with rich functionality. Features both operator =~ and method based APIs. Unit tests covered.
Swifty regular expressions, fully tested & documented, and with correct Unicode handling.
RichEditorView is a simple, modular, drop-in UIView subclass for Rich Text Editing.
Extensions that make it a breeze to work with attributed strings.
A TextView that provides easy to use tagging feature for Mention or Hashtag.
A standalone, flexible API that provides a full featured rich text editor for iOS applications.
Thread
Alert
Advanced usage of UIAlertController with TextField, DatePicker, PickerView, TableView and CollectionView.
An async waiting toast with basic toast. Inspired by facebook posting toast.
Popups, popovers, sheets, alerts, toasts, banners, (...) presentation made simple.
The easiest way to display highly customizable in app notification banners in iOS.
PMAlertController is a great and customizable substitute to UIAlertController.
A simple, customizable popup dialog. Replaces UIAlertController alert style.
Native popup from Apple Music & Feedback in AppStore. Contains Done & Heart presets.
Display Apple system-like self-hiding status alerts without interrupting user flow.
Button
Customizable download button with progress and transition animations. It is based on Apple's App Store download button.
Easy-to-use button with rich animation inspired by instagram stories.
A fully customisable subclass of the native UIControl which allows you to create beautiful buttons without writing any line of code.
A UIButton subclass that implements tap-to-toggle button text (like the camera flash and timer buttons).
Revamped Download Button. It's kinda a reverse engineering of Netflix's app download button.
Calendar
Calendar Component, It features both vertical and horizontal layout (and scrolling) and the display of native calendar events.
A declarative, performant, iOS calendar UI component that supports use cases ranging from simple date pickers all the way up to fully-featured calendar apps.
Cards
Form
Utility
SpriteKit API reproducing UIView's spring animations with SKAction.
GitHub Action for building and testing Swift packages across all platforms.
Used to programmatically control the mouse & keyboard. A library for manipulating macOS with Swift.
It makes a preview from an url, grabbing all information such as title, relevant texts and images.
A command-line tool and Swift Package to generate UML class from your Swift source code. Also available as Xcode Source Editor Extension.
Validation
Phone Numbers
UI Components
HUD
Label
UILabel drop-in replacement supporting Hashtags (#), Mentions (@) and URLs (http://).
TConvert text with HTML tags, links, hashtags, mentions into NSAttributedString. Make them clickable with UILabel drop-in replacement.
Simple countdown UILabel with morphing animation, and some useful function.
Menu
CircleMenu is a simple, elegant UI menu with a circular layout and material design animations.
Interactive view transition to display menus with flowing and bouncing effects.
A paging view controller with a highly customizable menu, built on UICollectionView.
Simple side menu control for iOS inspired by Facebook. Right and Left sides. No coding required.
Pagination
Payment
Permissions
Scroll Bars
StackView
Switch
Tab
RAMAnimatedTabBarController is a module for adding animation to tab bar items.
Container view controller to display a set of ViewControllers in a horizontal scroll view.
A highly customizable TabBarController component, which is inherited from UITabBarController.
Template
TextField
A set of textfields that can be used for One-time passwords, SMS codes, PIN codes, etc.
DTTextField is a custom textfield with floating placeholder and error label.
FloatingLabelTextFieldSwiftUI is a small and lightweight SwiftUI framework written in completely SwiftUI (not using UIViewRepresentable) that allows to create beautiful and customisable floating label textfield!
A custom TextField with a switchable icon which shows or hides the password and enforces good password policies.
A beautiful and flexible text field control implementation of "Float Label Pattern".
Declarative building and fast rendering attributed string library.
Transition
A simple way to create custom interactive UIViewController transitions.
ImageTransition is a library for smooth animation of images during transitions.
Jelly provides custom view controller transitions with just a few lines of code.
A Splash view that animates and reveals its content, inspired by the Twitter splash.
UICollectionView
Easy way to integrate pagination with dummy views in CollectionView, make Instagram Discover withing minutes.
A framework that is meant to make your life easier when working with collection view flow layouts.
A lightweight UICollectionViewLayout that pages and centers it's cells.
UICollectionViewCell with checkbox when it isSelected and empty circle when not - like Photos.app 'Select' mode.
A UICollectionViewLayout subclass displays its items as rows of items similar to the App Store Feature tab without a nested UITableView/UICollectionView hack.
Dragging and Dropping data across multiple UICollectionViews.
Elegant Screen Slide Library. It is extremely helpful for making Banner View、Product Show、Welcome/Guide Pages、Screen/ViewController Sliders.
Gliding Collection is a smooth, flowing, customizable decision for a UICollectionView Controller.
UITableView and UICollectionView provider to simplify basic scenarios of showing the data.
Beautiful alternative to the standard UICollectionView flow layout.
UICollectionView layout for Tags with Left, Center & Right alignments.
UITableView
Elegant and easy way to integrate pagination with placeholder views.
A library to support collapsible sections in a table view.
A library for backporting UITableView/UICollectionViewDiffableDataSource.
Protocol-oriented UITableView management, powered by generics and associated types.
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.
Nice library to show placeholders and Empty States for any UITableView/UICollectionView in your project.
UITableView extension that enables the insertion of cells the from bottom of a table view.
Simple single-selection or multiple-selection checklist, based on UITableView.
Nested hierarchy of expandable/collapsible cells to easily build elegant discussion threads.