Awesome Swift
Awesome |
Linux |
Projects |
Updated |
|
? |
1069 |
October 21, 2024 |
In parternship with:
Contents
- Guides
- Newsletter
- Official Guides
- Style Guides
- Third party Guides
- Boilerplates
- REPL
- Editor Support
- Emacs
- Google Colaboratory
- Vim
- Benchmark
- Converters
- Other Awesome Lists
- Dependency Managers
- Patterns
- Misc
- Libs
- Accessibility
- AI
- Algorithm
- Analytics
- Animation
- API
- App Routing
- App Store
- Audio
- Augmented Reality
- Authentication
- Bots
- Cache
- Chart
- Chat
- Colors
- Command Line
- Concurrency
- Currency
- Data Management
- 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
- Email
- Embedded Systems
- Events
- Files
- Fonts
- Game Engine
- Games
- Gesture
- Hardware
- 3D Touch
- Bluetooth
- Camera
- Haptic Feedback
- iBeacon
- Sensors
- Images
- Key Value Coding
- Keyboard
- Kit
- Layout
- Localization
- Location
- Logging
- Maps
- Math
- Natural Language Processing
- Network
- HTML
- Messaging Protocol
- SOAP
- Socket
- Webserver
- OCR
- Optimization
- PDF
- Quality
- Scripting
- SDK
- Security
- Streaming
- Styling
- SVG
- System
- Testing
- Text
- Thread
- UI
- Alert
- Blur
- Button
- Calendar
- Cards
- Form
- HUD
- Label
- Menu
- Pagination
- Payment
- Permissions
- Scroll Bars
- StackView
- Switch
- Tab
- Template
- TextField
- Transition
- 3D
- UICollectionView
- UITableView
- Walkthrough
- Utility
- Validation
- Version Manager
- Video
- Serverless
Guides
An awesome list of Swift related guides.
Newsletter
back to top
- Open Source Updates for Swift Projects - A bi-weekly newsletter to give you the latest updates on popular and unknown open source projects written or related to Swift.
Official Guides
back to top
- API Design Guidelines - Official Swift API design guidelines.
- Apple eBook - Official Apple eBook for Swift beginners.
- Getting Started - Find information about the how to use the Swift programming language.
- Introducing SwiftUI - Official SwiftUI tutorial with 4+ hours of content and interactive tutorials.
Style Guides
back to top
- Airbnb - Airbnb's Official Style Guide.
- 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
- 30 Days of Swift - A cool 30 days tutorial.
- About Swift - A playground about the Swift language.
- Awesome Swift Education - An organized list of essential Swift Language Topics.
- Conferences.digital - Watch conference videos in a native macOS app.
- Developing iOS Apps with Swift - Stanford course by Paul Hegarty.
- Hacking With Swift - Complete training course that teaches app development through 30 hands-on projects, for free.
- Ray Wenderlich Tutorials, Videos, Podcasts and books - High quality programming tutorials.
- Swift & SwiftUI Tutorials - SwiftUI learning with Ease.
- Swift Education - A community of educators sharing materials for teaching Swift and app development.
- swift-tips - A series of useful tips by Vincent Pradeilles.
- SwiftDoc - Auto-generated documentation.
- SwiftGuide CN - A Chinese written guide.
- SwiftTips - A collection of useful tips by John Sundell.
Boilerplates
- iOS project template - iOS project template with fastlane lanes, Travis CI jobs and GitHub integrations of Codecov, HoundCI for SwiftLint and Danger.
- Model-View-Presenter template - A flexible and easy template created to speed up the development of your iOS application based on the MVP pattern.
- Swift Module Template - An opinionated starting point for awesome, reusable modules.
REPL
- Online Swift Playground - Online Swift Playground.
Editor Support
Support for your favorite editors.
Emacs
back to top
- swift-mode - Emacs support, including partial flycheck error support.
Google Colaboratory
back to top
- swift-colab - Run Swift in a browser.
Vim
back to top
- swift-vim - Vim runtime files.
- vim-polyglot - Language pack for vim that includes vim-swift.
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.
- open-source-mac-os-apps - Awesome list of open source applications for macOS.
Dependency Managers
Dependency manager software for Swift.
- Accio - A SwiftPM based dependency manager for iOS & Co. with improvements over Carthage.
- 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
- App Architecture - A sample Code of the App Architecture Book.
- CleanArchitectureRxSwift - Example of Clean Architecture of iOS app using RxSwift.
- Design-Patterns-In-Swift - Design Patterns.
- GoodReactor - ⚛️ GoodReactor is a Redux-inspired Reactor framework for communication between the View Model, View Controller, and Coordinator.
- Reactant - Reactant is a reactive architecture for iOS.
- ReduxUI - Redux framework for easy use with SwiftUI.
- SimplexArchitecture - A Simple architecture that decouples state changes from SwiftUI's View
- Spin - Provides a versatile Feedback Loop implementation working with RxSwift, ReactiveSwift and Combine.
- StateViewController - Stateful UIVIewController composition — the MVC cure for Massive View Controllers.
- SwiftUI Atom Properties - A Reactive Data-Binding and Dependency Injection Library for SwiftUI x Concurrency.
- The Composable Architecture - A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
- Viperit - Viper Framework for iOS.
Misc
Miscellaneous Swift related projects
- Beak - A command line interface for your Swift scripts.
- BetterCodable - 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.
- CodableWrappers - A Collection of PropertyWrappers to make custom Serialization of Codable Types easy.
- Fugen - A command line tool for exporting resources and generating code from your Figma files.
- MemberwiseInit -
@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.
- Model2App - Turn your data model into a working CRUD app.
- Surmagic - Create XCFrameworks with ease! A Command Line Tool to create XCFramework for multiple platforms at one shot! iOS, Mac Catalyst, tvOS, macOS, and watchOS.
- SwagGen ? - A command line tool for generating a REST API from a Swagger spec based off Stencil templates.
- Swiftbrew - Homebrew for Swift packages.
- SwiftGen - A suite of tools to auto-generate code for various assets of your project.
- SwiftKit - Start your next Open-Source Swift Framework ?.
- 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.
- xc - A tool to open the Xcode project file by the specified version.
- xcbeautify - Little beautifier tool for xcodebuild.
- 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 - Keep track of accessibility settings, leverage high contrast colors, and use scalable fonts to enable users with disabilities to use your app.
AI
Libs for AI based projects (Machine Learning, Neural Networks etc). back to top
- CoreML-Models - A collection of unique Core ML Models.
- DL4S - Automatic differentiation, fast tensor operations and dynamic neural networks from CNNs and RNNs to transformers.
- OpenAI - Swift package for OpenAI public API.
Algorithm
back to top
- Algorithm - A toolset for writing algorithms and probability models.
- BTree - Fast sorted collections for Swift using in-memory B-trees.
- 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
- Aptabase - Open Source, Privacy-First and Simple Analytics for Swift Apps.
- Tracker Aggregator - Versatile analytics abstraction layer.
- Umbrella - Analytics abstraction layer.
Animation
Libs to help with animation back to top
- Advance - A powerful animation framework for iOS, tvOS, and OS X.
- AnimatedGradient - Animated linear gradient library written with SwiftUI
- ChainPageCollectionView - Fancy two-level collection view layout and animation.
- CocoaSprings - Interactive spring animations for iOS/macOS.
- Comets - Animating Particles.
- Ease - Animate everything with Ease.
- EasyAnimation - A library to take the power of UIView.animateWithDuration(_:, animations:...) to a whole new level.
- Elephant - Elegant SVG animation kit.
- 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.
- lottie-ios - An iOS library to natively render After Effects vector animations.
- 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.
- 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
- GitHubAPI - Implementation of GitHub REST API v3.
- GitHubRestAPISwiftOpenAPI - Scheduled generated GitHub's REST API as Swift code from OpenAPI specification.
- PXGoogleDirections - Google Directions API helper.
- RandomUserSwift - Framework to Generate Random Users - An Unofficial SDK for randomuser.me.
- reddift - reddit API wrapper.
- Swifter Twitter - Twitter framework.
- Swiftkube ? - Swift client for Kubernetes.
- SwiftlySalesforce - Framework for rapid development of native iOS apps that integrate with Salesforce.
- SwiftyInsta - Private and Tokenless Instagram RESTful API.
App Routing
Internal app routing systems. back to top
- Appz - Launch external apps and deeplink with ease.
- 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.
- MonarchRouter - Declarative state- and URL-based router. Complex automatic View Controllers hierarchy transitions. Time-tested server-side conventions.
- RxFlow - RxFlow is a navigation framework for iOS applications based on a Reactive Flow Coordinator pattern.
- SwiftCurrent - Manage complex workflows wherever Swift can be built. It comes with built-in support for UIKit, Storyboards, and SwiftUI.
- 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
- Apphud - Lightweight library to easily handle auto-renewable subscriptions with no backend required.
- AppReview - A tiny library to request review on the AppStore via SKStoreReviewController.
- 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.
- FDSoundActivatedRecorder - Start recording when the user speaks.
- FDWaveformView - An easy way to display an audio waveform in your app.
- ModernAVPlayer - Persistence AVPlayer to resume playback after bad network connection even in background mode.
- MusicKit - A framework for composing and transforming music.
- Soundable - Soundable allows you to play sounds, single and in sequence, in a very easy way.
- SwiftAudioPlayer - Simple audio player for iOS that streams and performs realtime audio manipulations with AVAudioEngine.
- SwiftySound - Simple library that lets you play sounds with a single line of code.
- 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
- 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-Navigation - Navigation in augmented reality with MapKit.
- ARVideoKit - Capture & record ARKit videos, photos, Live Photos, and GIFs.
Authentication
Easy way to manage auth in your apps. back to top
- Cely - A Plug-n-Play login framework.
- 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.
- 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.
- CachyKit - A Caching Library that can cache JSON, Image, Zip or AnyObject with expiry date/TTYL and force refresh.
- 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.
- MemoryCache - Type-safe memory cache.
Chart
back to top
- Charts - Beautiful charts for iOS/tvOS/OSX (port of MPAndroidChart).
- ChartView - Swift package for displaying beautiful charts effortlessly
- FLCharts - Easy to use and highly customizable charts library for iOS.
- 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.
- SwiftUICharts - A charts / plotting library for SwiftUI. Works on macOS, iOS, watchOS, and tvOS and has accessibility and Localization features built in.
- 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.
- ExyteChat - SwiftUI Chat UI framework with fully customizable message cells, input view, and a built-in media picker
- 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.
- Real-time Chat with Firebase - Functional real-time chat app with Firebase Firestore using MessageKit.
Colors
Interesting snippets related to color management and utility. back to top
- ChromaColorPicker - An intuitive and fun iOS color picker.
- ColorKit - Advanced color manipulation for iOS.
- DynamicColor - An extension to manipulate colors easily.
- Gradients - A curated collection of splendid 180+ gradients.
- 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.
- SheetyColors - An action sheet styled color picker for iOS.
- SwiftGen-Colors - A tool to auto-generate
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
- Ashen - A framework for writing terminal applications in Swift. Based on The Elm Architecture.
- Commander ? - Compose beautiful command line interfaces.
- Guaka ? - The smart and beautiful (POSIX compliant) command line framework.
- LineNoise ? - A zero-dependency replacement for readline.
- nef - A set of command line tools that lets you have compile time verification of your documentation written as Xcode Playground.
- Progress.swift ? - Add beautiful progress bars to your command line.
- Swift Argument Parser - Straightforward, type-safe argument parsing for Swift.
- SwiftCLI ? - A powerful framework that can be used to develop a CLI.
- Swiftline - A set of tools to help you create command line applications.
- SwiftShell - A library for creating command-line applications and running shell commands.
- SwiftyTextTable ? - A lightweight library to generate text tables.
Concurrency
Easier ways to work with concurrency. back to top
- async+ ? - A chainable interface for Swift 5.5's async/await.
- 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.
- Futures ? - Lightweight promises for iOS, macOS, tvOS, watchOS, and server-side.
- GroupWork ? - Easy concurrent, asynchronous tasks.
- Hydra - Promises & Await - Write better async code.
- Queuer ? - A queue manager, built on top of OperationQueue and Dispatch (aka GCD).
- SwiftCoroutine ? - Coroutines for iOS, macOS and Linux.
- Throttler - Throttle massive number of asynchronous inputs in a single drop of one line API.
- Venice ? - Communicating sequential processes (CSP), Linux ready.
Currency
back to top
Data Management
back to top
CBOR
Concise Binary Object Representation. back to top
- CBORCoding ? - Easy CBOR encoding and decoding for iOS, macOS, tvOS and watchOS.
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.
- CloudCore - Robust CloudKit synchronization: offline editing, relationships, shared and public databases, and more.
- 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.
- 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.
CSV
Helpful libraries to parse from and serialize to comma-separated value representations. back to top
- CodableCSV ? - Read and write CSV files row-by-row or through Swift's Codable interface.
- CSVParser ? - Fast parser for CSV.
Firebase
back to top
- Ballcap - Ballcap is a database schema design framework for Cloud Firestore.
GraphQL
back to top
- SociableWeaver - Build declarative GraphQL queries and mutations.
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.
- HandyJSON - A handy JSON-object serialization/deserialization library.
- Himotoki - A type-safe JSON decoding library.
- JASON - JSON parsing with outstanding performances and convenient operators.
- 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 - JSON encoding/decoding library.
- Sextant ? - High performance JSONPath queries
- SwiftyJSON - A lib for JSON with error handling.
- SwiftyJSONAccelerator - macOS app to generate Swift 5 models for JSON (with Codeable).
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.
- Prephirences - Manage application preferences, NSUserDefaults, iCloud, Keychain and more.
- SecureDefaults - A lightweight wrapper over UserDefaults & NSUserDefaults with an extra AES-256 encryption layer.
- Storez - Safe, statically-typed, store-agnostic key-value storage.
- SwiftStore - A Key-Value store backed by LevelDB.
- SwiftyUserDefaults - Cleaner, nicer syntax for NSUserDefaults.
- 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.
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
- CacheAdvance - A performant cache for logging systems. CacheAdvance persists log events 30x faster than SQLite.
- CoreXLSX - Excel spreadsheet (XLSX) format support.
- 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.
- RealmWrapper - Safe and easy wrappers for RealmSwift.
- Unrealm - Unrealm enables you to easily store Swift native Classes, Structs and Enums into Realm.
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
- GRDB.swift - A versatile SQLite toolkit.
- SQLite.swift - Framework wrapping SQLite3. Small. Simple. Safe.
- SQLiteDB - SQLite wrapper.
TOML
Tom's Obvious, Minimal Language. back to top
- TOMLDecoder - Latest TOML standard, decoded.
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.
- XMLCoder - XMLEncoder & XMLDecoder based on Codable protocols from the standard library.
- XMLMapper - A simple way to map XML to Objects.
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 date 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.
- 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).
- TypedDate - Enhancing Date handling by enabling type-level customization of date components
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).
- DIKit - Dependency Injection Framework for Swift, inspired by KOIN.
- Dip - A simple Dependency Injection Container.
- DITranquillity - Dependency injection framework with tranquility.
- Locatable - A micro-framework that leverages Property Wrappers to implement the Service Locator pattern.
- Pure - A way to do a dependency injection without a DI container.
- SafeDI - Compile-time safe dependency injection.
- 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.
- Deviice - Swift library to easily check the current device and some more info about it.
- 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.
- Combinative - UI event handling using Apple's combine framework.
- EmitterKit - Implementation of event emitters and listeners.
- FutureKit - Future/Promises Library.
- Katana - Write apps a la React and Redux.
- LightweightObservable - A lightweight implementation of an observable sequence that you can subscribe to.
- 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.
- OneWay - State management with unidirectional data flow.
- OpenCombine - Open source implementation of Apple's Combine framework for processing values over time.
- PMKVObserver - Modern thread-safe and type-safe key-value observing.
- 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.
- RxSwift - Microsoft Reactive Extensions (Rx).
- Signals - Replaces delegates and notifications.
- SwiftEventBus - A publish/subscribe event bus optimized for iOS.
- Tempura - A holistic approach to iOS development, inspired by Redux and MVVM.
- Tokamak - React-like declarative API for building native UI components with easy to use one-way data binding.
- Tomorrowland - Lightweight Promises.
- 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
- ExtendedAttributes - Manage extended attributes for files and folders.
- 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.
- Pathos ? - Efficient Unix file management.
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.
- 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.
- SwiftUI-FontIcon - Font icons for SwiftUI: font awesome, ionicons, material icons.
- SYSymbol - All the SFSymbols at your fingertips.
- UIFontComplete - Font management (System & Custom) for iOS and tvOS.
Game Engine
back to top
- glide engine - SpriteKit and GameplayKit based engine for making 2d games, with practical examples and tutorials.
- Raylib for Swift ? - A Cross-Platform Swift package for Raylib. Builds Raylib from source so no need to fiddle with libraries. Just add as a dependency in you game package and go!
2D
back to top
- ImagineEngine - Blazing fasst 2D gaming engine.
Games
back to top
- FDChessboardView - A view controller for chess boards
- Sage ? - A cross-platform chess library.
Gesture
back to top
- 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).
- Tactile - A safer and more idiomatic way to respond to gestures and control events.
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
- CameraBackground - Show camera layer as a background to any UIView.
- CameraKit-iOS - Massively increase camera performance and ease of use in your next project.
- FDTake - Easily take a photo or video or choose from library.
- Fusuma - Instagram-like photo browser and a camera feature.
- MediaPicker - SwiftUI customizable media picker - supports camera and gallery with albums
- NextLevel - Rad Media Capture.
Barcode
Barcode, QR-code, other code readers back to top
- BarcodeScanner - A simple and beautiful barcode scanner view controller.
- EFQRCode - A better way to operate quick response code.
- QRCodeReader.swift - Simple QRCode reader.
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
- SwiftLocation - Location & Beacon Monitoring.
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.
- Brightroom - An image editor and engine using CoreImage.
- 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.
- FaceCrop - Detect and center faces in your images using Apple’s Vision Framework.
- 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 framework for GPU-accelerated video and image processing.
- GPUImage 3 - GPUImage 3 is a BSD-licensed framework for GPU-accelerated video and image processing using Metal.
- HanekeSwift - A lightweight generic cache for iOS with extra love for images.
- Harbeth - Metal API for GPU accelerated Graphics and Video and Camera filter framework.
- 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.
- ImgixSwift - Easily update image urls to be fast and responsive.
- 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.
- Kanvas - A iOS library for adding effects, drawings, text, stickers, and making GIFs from existing media or the camera.
- 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.
- Rough - Rough lets you draw in a sketchy, hand-drawn-like, style.
- Sharaku - Image filtering UI library like Instagram.
- Snowflake - Work with SVG.
- SwiftDraw - Library that converts SVG images to UIImage, NSImage and generates CoreGraphics source code.
- SwiftGen-Assets - A tool to auto-generate
enums
for all your UIImages
from your Assets Catalogs.
- SwiftSVG - A single pass SVG parser with multiple interface options (String, NS/UIBezierPath, CAShapeLayer, and NS/UIView).
- SwiftWebImage - ?SwiftUI Image downloader with performant LRU mem/disk cache.
- 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.
- YPImagePicker - Instagram-like image picker & filters for iOS.
- 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.
- ISEmojiView - Emoji Keyboard for iOS
- KeyboardHideManager - Codeless manager to hide keyboard by tapping on views for iOS.
- KeyboardShortcuts - Add user-customizable global keyboard shortcuts to your macOS app. Includes a Cocoa and SwiftUI component.
- Ribbon - ? A simple cross-platform toolbar/custom input accessory view library for iOS & macOS.
- 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.
- ContactsChangeNotifier - Which contacts changed outside your app? Better CNContactStoreDidChange notification: Get real changes, without the noise.
Layout
Libs to help you with layout. back to top
- AnimatedTabBar - A tabbar with a number of preset animations.
- BrickKit - Create complex and responsive layouts in a simple way.
- CGLayout ? - Powerful autolayout framework, that can manage UIView(NSView), CALayer, not rendered views and etc. Provides placeholders.
- FlexLayout - Nice and clean interface to the highly optimized Facebook yoga Flexbox implementation.
- FrameLayoutKit - This framework supports complex layouts, including chaining and nesting layout with simple and intuitive operand & DSL syntax.
- Grid - The most powerful Grid container missed in SwiftUI.
- LayoutLess - Write less UI Code.
- Neon - A powerful programmatic UI layout framework.
- PinLayout - Fast Views layouting without auto layout. No magic, pure code, full control and blazing fast. Concise syntax, intuitive, readable & chainable. [iOS/macOS/tvOS]
- Scaling Header Scroll View - A scroll view with a sticky header which shrinks as you scroll. Written with SwiftUI.
- 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.
- EasySwiftLayout - Lightweight Swift framework for Apple's Auto-Layout.
- EZLayout - An easier and faster way to code Autolayout.
- FixFlex - Declarative autolayout based on NSLayoutAnchor, swifty reimagination of VFL, alternative to UIStackView.
- HypeUI - ? HypeUI is a implementation of Apple's SwiftUI DSL style based on UIKit
- 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.
- CrowdinSDK - Delivers all new translations from Crowdin project to the application immediately.
- 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.
- Locheck - Validate .strings and .stringsdict files for errors
- StringSwitch - Easily convert iOS .strings files to Android strings.xml format and vice versa.
- 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 %@
).
- Translatio - Super lightweight library that helps you to localize strings, even directly in storyboards.
Location
back to top
- AsyncLocationKit - Wrapper for Apple CoreLocation framework with Modern Concurrency Swift (async/await).
- STLocationRequest - An elegant and simple 3D Flyover Location Request Screen.
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.
- Duration ? - Lightweight logging library focused on reporting timings for operations.
- Gedatsu - Provide readable format about AutoLayout error console log.
- HeliumLogger ? - IBM's lightweight logging framework.
- Printer - A fancy logger for your next app.
- Puppy ? - A flexible logging library that supports multiple transports and platforms.
- 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.
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.
- Connectivity - ? Makes Internet connectivity detection more robust by detecting Wi-Fi networks without Internet access.
- Dots - Lightweight Concurrent Networking Framework.
- GoodNetworking - ? GoodNetworking simplifies HTTP networking.
- 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.
- Netfox - A lightweight, one line setup, network debugging library.
- Netswift - A type-safe, high-level networking solution.
- OAuth2 - oauth2 auth lib.
- OAuthSwift - OAuth library for iOS.
- Pitaya ? - HTTP / HTTPS networking library just incidentally execute on machines.
- PMHTTP - 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.
- ReactiveAPI - Write clean, concise and declarative network code relying on URLSession, with the power of RxSwift. Inspired by Retrofit.
- ResponseDetective - A non-intrusive framework for intercepting any outgoing requests and incoming responses between your app and server for debugging purposes.
- RxNetworks - Network API With RxSwift + Moya + HandyJSON + Plugins.
- 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.
- TermiNetwork - ? A zero-dependency networking solution for building modern and secure iOS, watchOS, macOS and tvOS applications.
- 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.
- Kanna - Another XML/HTML parser.
- SwiftSoup ? - HTML Parser, with best of DOM, CSS, and jquery.
- WKZombie - Headless browser.
Expand