Skip to content

A collaborative list of awesome Swift libraries and resources. Feel free to contribute!

License

Notifications You must be signed in to change notification settings

zhiying-fan/awesome-swift

 
 

Repository files navigation

Awesome Swift

iOS App Awesome Linux Projects Updated
Download on the App Store Awesome 🐧 1090 July 14, 2022

Contents

Guides

An awesome list of Swift related guides.

Newsletter

back to top

  • Swift Developments - A weekly curated newsletter containing for people interested in designing and developing their own iOS, watchOS and Apple TV apps.
  • Swift Weekly Brief - A multi author curated newsletter.

Official Guides

back to top

Style Guides

back to top

  • Airbnb ★1,640 - 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 ★1,354 - LinkedIn's Official Style Guide.
  • Raywenderlich ★12,247 - Raywenderlich guide, a must read.

Third party Guides

back to top

Boilerplates

REPL

Editor Support

Support for your favorite editors.

Emacs

back to top

Google Colaboratory

back to top

Vim

back to top

Benchmark

Converters

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

Other Awesome Lists

Check out apps on these projects:

Dependency Managers

Dependency manager software for Swift.

Patterns

Misc

Miscellaneous Swift related projects

  • Beak ★564 - A command line interface for your Swift scripts.
  • CodableWrappers ★346 - A Collection of PropertyWrappers to make custom Serialization of Codable Types easy.
  • Fugen ★62 - A command line tool for exporting resources and generating code from your Figma files.
  • Model2App ★127 - Turn your data model into a working CRUD app.
  • Surmagic ★247 - 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 ★525 🐧 - A command line tool for generating a REST API from a Swagger spec based off Stencil templates.
  • Swiftbrew ★139 - Homebrew for Swift packages.
  • SwiftGen ★8,037 - A suite of tools to auto-generate code for various assets of your project.
  • SwiftKit ★813 - Start your next Open-Source Swift Framework 📦.
  • SwiftPlate ★1,756 - Easily generate cross platform framework projects from the command line.
  • Toybox ★129 - Xcode Playground management made easy.
  • Tuist ★2,818 - An open source command line tool to create, maintain and interact with your Xcode projects at scale.
  • xcbeautify ★589 - Little beautifier tool for xcodebuild.
  • XcodeGen ★5,546 - Tool for generating Xcode projects from a YAML file and your project directory.
  • xcodeproj ★1,636 - 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 ★219 - 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 ★5,396 - A collection of unique Core ML Models.
  • DL4S ★75 - Automatic differentiation, fast tensor operations and dynamic neural networks from CNNs and RNNs to transformers.

Algorithm

back to top

Analytics

Analytics related libraries to easily track your app usage back to top

Animation

Libs to help with animation back to top

API

Quick libs to get access to third party API services back to top

App Routing

Internal app routing systems. back to top

  • Appz ★1,134 - Launch external apps and deeplink with ease.
  • Crossroad ★390 - 🚍 Crossroad is an URL router focused on handling Custom URL Schemes.
  • LightRoute ★95 - Routing between VIPER modules.
  • Linker ★133 - Lightweight way to handle internal and external deeplinks for iOS.
  • MonarchRouter ★37 - Declarative state- and URL-based router. Complex automatic View Controllers hierarchy transitions. Time-tested server-side conventions.
  • RxFlow ★1,688 - RxFlow is a navigation framework for iOS applications based on a Reactive Flow Coordinator pattern.
  • SwiftCurrent ★278 - Manage complex workflows wherever Swift can be built. It comes with built-in support for UIKit, Storyboards, and SwiftUI.
  • SwiftRouter ★272 - A URL Router for iOS.
  • URLNavigator ★2,886 - Elegant URL Routing.

App Store

Libs to help with apple app store, in app purchases and receipt validation. back to top

Audio

Libs to work with audio back to top

Augmented Reality

back to top

Authentication

Easy way to manage auth in your apps. back to top

Bots

Libs to build bot back to top

  • Telegram Bot SDK ★337 🐧 - Unofficial SDK.
  • Telegrammer ★273 🐧 - 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

Chart

back to top

Chat

Libs to get access to build chat app back to top

Colors

Interesting snippets related to color management and utility. back to top

Command Line

Create command line applications. back to top

Concurrency

Easier ways to work with concurrency. back to top

  • async+ ★100 🐧 - A chainable interface for Swift 5.5's async/await.
  • AsyncNinja ★155 - A complete set of concurrency and reactive programming primitives.
  • Futures ★59 🐧 - Lightweight promises for iOS, macOS, tvOS, watchOS, and server-side.
  • GroupWork ★43 🐧 - Easy concurrent, asynchronous tasks.
  • Hydra ★1,972 - Promises & Await - Write better async code.
  • Kommander ★173 - Manage the task execution in different threads through Kommands.
  • Queuer ★1,012 🐧 - A queue manager, built on top of OperationQueue and Dispatch (aka GCD).
  • SwiftCoroutine ★790 🐧 - Coroutines for iOS, macOS and Linux.
  • Throttler ★67 - Throttle massive number of asynchronous inputs in a single drop of one line API.
  • Venice ★1,497 🐧 - Communicating sequential processes (CSP), Linux ready.

Currency

back to top

Data Management

back to top

CBOR

Concise Binary Object Representation. back to top

  • CBORCoding ★21 🐧 - 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

CSV

Helpful libraries to parse from and serialize to comma-separated value representations. back to top

Firebase

back to top

  • Ballcap ★229 - Ballcap is a database schema design framework for Cloud Firestore.

GraphQL

back to top

JSON

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

Key Value Store

back to top

MongoDB

back to top

Multi Database

Data management layers that involve multiple sources. back to top

ORM

back to top

Other Data

Other ways to persist data back to top

Realm

back to top

  • Realm ★15,421 - Realm is a mobile database: a replacement for Core Data & SQLite.
  • Realm+JSON ★671 - A concise Mantle-like way of working with Realm and JSON.
  • RealmWrapper ★68 - Safe and easy wrappers for RealmSwift.
  • Unrealm ★511 - Unrealm enables you to easily store Swift native Classes, Structs and Enums into Realm.

SQL drivers

back to top

SQLite

Are you interested in storing your app data using SQLite? Here are some interesting resources. back to top

TOML

Tom's Obvious, Minimal Language. back to top

XML

If you prefer to manage XML data formatted entries, here are some helpful libs back to top

YAML

back to top

ZIP

back to top

Date

Handle data formatting easily. back to top

Dependency Injection

Dependency injection libs back to top

  • Cleanse ★1,700 - A Lightweight Dependency Injection Framework by Square.
  • Corridor ★58 - A Coreader-like Dependency Injection μFramework.
  • Deli ★132 - Deli is an easy-to-use Dependency Injection(DI).
  • DIKit ★94 - Dependency Injection Framework for Swift, inspired by KOIN.
  • Dip ★945 - A simple Dependency Injection Container.
  • DITranquillity - Dependency injection framework with tranquility.
  • Locatable ★116 - A micro-framework that leverages Property Wrappers to implement the Service Locator pattern.
  • Pure ★352 - A way to do a dependency injection without a DI container.
  • Swinject ★5,350 - A dependency injection framework.
  • Typhoon ★2,715 - Dependency injection toolkit.
  • Weaver ★658 - A declarative, easy-to-use and safe Dependency Injection framework.

Device

A collection of libs to recognize your device. back to top

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

Peripherals

Interact with specific external peripherals. back to top

Events

Alternatives to NSNotificationCenter, Key-Value-Observation, or delegation. back to top

Files

back to top

Fonts

A collection of font related snippets. back to top

Game Engine

back to top

  • glide engine ★408 - SpriteKit and GameplayKit based engine for making 2d games, with practical examples and tutorials.
  • Raylib for Swift ★49 🐧 - 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

Games

back to top

Gesture

back to top

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

Camera

Awesome camera libs back to top

Barcode

Barcode, QR-code, other code readers back to top

Haptic Feedback

Libraries that involve the use of Haptic Feedback back to top

iBeacon

Interested in using iBeacon in your Swift project? Here some interesting resources. back to top

Sensors

Manage your device sensors in a faster and easier way back to top

Images

An interesting list of image related libs.. back to top

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 ★1,427 - An elegant solution for keeping any UIView visible when the keyboard is being shown. No UIScrollView required.
  • IQKeyboardManager ★15,673 - Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView.
  • ISEmojiView ★433 - Emoji Keyboard for iOS
  • KeyboardHideManager ★56 - Codeless manager to hide keyboard by tapping on views for iOS.
  • KeyboardShortcuts ★971 - Add user-customizable global keyboard shortcuts to your macOS app. Includes a Cocoa and SwiftUI component.
  • Ribbon ★290 - 🎀 A simple cross-platform toolbar/custom input accessory view library for iOS & macOS.
  • Typist ★1,060 - 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 ★988 🐧 - A collection of useful classes, structs and extensions to develop Apps faster.
  • C4iOS ★973 - Harnesses the power of native iOS programming with a simplified API.

Layout

Libs to help you with layout. back to top

  • BrickKit ★611 - Create complex and responsive layouts in a simple way.
  • CGLayout ★45 🐧 - Powerful autolayout framework, that can manage UIView(NSView), CALayer, not rendered views and etc. Provides placeholders.
  • FlexLayout ★1,655 - Nice and clean interface to the highly optimized Facebook yoga Flexbox implementation.
  • Grid ★1,112 - The most powerful Grid container missed in SwiftUI.
  • LayoutKit ★3,172 - LayoutKit is a fast view layout library for iOS, macOS, and tvOS.
  • LayoutLess ★431 - Write less UI Code.
  • Neon ★4,586 - A powerful programmatic UI layout framework.
  • PinLayout ★2,006 - 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 ★240 - A scroll view with a sticky header which shrinks as you scroll. Written with SwiftUI.
  • Static ★1,252 - A simple static table views for iOS.
  • Stevia ★3,260 - Elegant view layout for iOS.

Auto Layout

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

Localization

Frameworks that helps with localizing your app back to top

  • BartyCrouch ★1,220 - Incrementally update/translate your Strings files from Code and Storyboards/XIBs.
  • CrowdinSDK ★94 - Delivers all new translations from Crowdin project to the application immediately.
  • IBLocalizable ★464 - Localize your views directly in Interface Builder with IBLocalizable.
  • L10n-swift ★273 - Localization of an application with ability to change language "on the fly" and support for plural forms in any language.
  • LocalizationKit ★1,223 - Realtime dynamic localization of your app with remote management so you can manage maintain and deploy translations without resubmitting app.
  • Localize ★275 - Localize apps using e.g. regular expressions in Localizable.strings.
  • Localize-Swift ★2,831 - Localize apps using e.g. regular expressions in Localizable.strings.
  • Locheck ★68 - Validate .strings and .stringsdict files for errors
  • NoOptionalInterpolation ★48 - Get rid of "Optional(...)" and "nil" in string interpolation. Easy pluralization.
  • 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 ★19 - Super lightweight library that helps you to localize strings, even directly in storyboards.

Location

back to top

Logging

Utilities for writing to and reading from the device log back to top

Maps

back to top

  • Cluster ★1,199 - Easy Map Annotation Clustering.
  • FlyoverKit ★684 - FlyoverKit enables you to present stunning 360° flyover views on your MKMapView with zero effort while maintaining full configuration possibilities.
  • GEOSwift ★1,346 - Make it easier to work with geographic models and calculate intersections, overlapping, projections etc.
  • LocoKit ★1,431 - A location and activity recording framework for iOS.
  • MapViewPlus ★159 - Use any custom view as custom callout view for MKMapView with cool animations. Use any image as annotation view.

Math

back to top

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

HTML

Need to manipulate contents from html easily? back to top

Messaging Protocol

back to top

SOAP

back to top

  • SOAPEngine ★476 - Generic SOAP client to access SOAP Web Services using iOS, Mac OS X, and Apple TV.

Socket

back to top

Webserver

Would you like host a webserver in your device? Here you can find how to do it. back to top

OCR

back to top

Optimization

back to top

PDF

back to top

Quality

back to top

  • AnyLint ★115 🐧 - Lint anything by combining the power of Swift & regular expressions.
  • IBLinter ★941 - A linter tool for Interface Builder.
  • swift-mod ★86 - A tool for Swift code modification intermediating between code generation and formatting.
  • SwiftCop ★544 - A validation library which inspired by the clarity of Ruby On Rails Active Record validations.
  • SwiftFormat ★5,891 - A code library and command-line formatting tool for reformatting Swift code.
  • SwiftLint ★16,318 - A tool to enforce coding conventions.
  • Swimat ★1,557 - Xcode plugin to format code.
  • Tailor ★1,391 🐧 - Cross-platform static analyzer that helps you to write cleaner code and avoid bugs.

Scripting

back to top

SDK

back to top

Security

back to top

Cryptography

Deal with cryptography method easily back to top

Keychain

back to top

Streaming

back to top

  • HaishinKit ★2,340 - Camera and Microphone streaming library via RTMP, HLS for iOS, macOS, tvOS.
  • Live ★2,423 - Demonstrate how to build a live broadcast app.

Styling

back to top

SVG

back to top

System

back to top

Testing

A collection of testing frameworks. back to top

  • DVR ★650 - A simple network testing framework.
  • Erik ★502 - An headless browser to access and manipulate webpages using javascript allowing to run functional tests.
  • Fakery ★1,610 - Fake data generator.
  • Mussel ★60 - A framework for easily testing Push Notifications, Universal Links and Routing in XCUITests.
  • Nimble ★4,490 - A matcher framework.
  • OHHTTPStubs ★4,900 - A testing library designed to stub your network requests easily.
  • PinpointKit ★1,138 - Lets your testers and users send feedback with annotated screenshots and logs using a simple gesture.
  • Quick ★9,480 🐧 - Quick is a behavior-driven development framework.
  • Sizes ★1,221 - Test your app on different device and font sizes.
  • SnapshotTest ★43 - Snapshot testing tool for iOS and tvOS.
  • Spectre ★391 🐧 - BDD Framework.
  • SwiftCheck ★1,380 - A testing library that automatically generates random data for testing program properties.
  • UI Testing Cheat Sheet ★2,083 - Answers to common "How do I test this with UI Testing?" questions with a working example app.
  • XCTest ★984 - The XCTest Project, A Swift core library for providing unit test support.

Mock

back to top

  • AutoMockable ★39 - A framework that leverages the type system to let you easily create mocked instances of your data types.
  • Cuckoo ★1,509 - First boilerplate-free mocking framework.
  • Mocker ★840 - Mock Alamofire and URLSession requests without touching your code implementation
  • Mockingbird ★178 - Simplify software testing, by easily mocking any system using HTTP/HTTPS, allowing a team to test and develop against a service that is not complete, unstable or just to reproduce planned cases.
  • Mockingjay ★1,462 - An elegant library for stubbing HTTP requests with ease.
  • Mockit ★116 - A simple mocking framework, inspired by the famous Mockito for Java.
  • MockSwift ★75 - Mock Framework that uses the power of property wrappers.

Text

A collection of text projects. back to top

Thread

Threading, task-based or asynchronous programming, Grand Central Dispatch (GCD) wrapper back to top

UI

A collection of pre-packaged transitions & cool ui stuffs. back to top

Alert

Libs to display alert, action sheet, notification, popup. back to top

Blur

back to top

Button

back to top

Calendar

back to top

Cards

back to top

Form

back to top

HUD

back to top

Label

back to top

Menu

back to top

Pagination

back to top

  • CHIPageControl ★3,033 - A set of cool animated page controls to replace boring UIPageControl.
  • FlexiblePageControl ★708 - A flexible UIPageControl like Instagram.
  • iPages ★163 - Quickly implement swipable page views in SwiftUI 📝.
  • Pageboy ★1,735 - A simple, highly informative page view controller.
  • PageController ★400 - Infinite paging controller.
  • SlideController ★405 - It is a nice alternative for UIPageViewController built using power of generic types. Swipe between pages with an interactive title navigation control. Configure horizontal or vertical chains for unlimited pages amount.

Payment

back to top

Permissions

back to top

StackView

back to top

Switch

back to top

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

Tab

back to top

Template

back to top

TextField

back to top

Transition

back to top

3D

back to top

UICollectionView

back to top

UITableView

back to top

Walkthrough

back to top

Utility

Some interesting utilities to help you in your projects back to top

Validation

A collection of validation libs. back to top

Phone Numbers

Libs to manage phone numbers. back to top

  • NKVPhonePicker ★137 - An UITextField subclass to simplify country code's picking.
  • PhoneNumberKit ★4,570 - Framework for parsing, formatting and validating international phone numbers. Inspired by Google's libphonenumber.

Version Manager

back to top

Video

back to top

Serverless

Contributing

Please take a quick look at the contribution guidelines first. If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you to all contributors; you rock!!

About

A collaborative list of awesome Swift libraries and resources. Feel free to contribute!

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%