SnapKit alternatives and similar libraries
Based on the "Auto Layout" category.
Alternatively, view SnapKit alternatives based on common mentions on social networks and blogs.
-
PureLayout
The ultimate API for iOS & OS X Auto Layout — impressively simple, immensely powerful. Objective-C and Swift compatible. -
MisterFusion
MisterFusion is Swift DSL for AutoLayout. It is the extremely clear, but concise syntax, in addition, can be used in both Swift and Objective-C. Support Safe Area and Size Class. -
QuickLayout
Written in pure Swift, QuickLayout offers a simple and easy way to manage Auto Layout in code. -
FrameLayoutKit
A super fast and easy-to-use layout library for iOS. FrameLayoutKit supports complex layouts, including chaining and nesting layout with simple and intuitive operand syntax.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of SnapKit or a related project?
README
SnapKit is a DSL to make Auto Layout easy on both iOS and OS X.
⚠️ To use with Swift 4.x please ensure you are using >= 4.0.0 ⚠️
⚠️ To use with Swift 5.x please ensure you are using >= 5.0.0 ⚠️
Contents
Requirements
- iOS 10.0+ / Mac OS X 10.12+ / tvOS 10.0+
- Xcode 10.0+
- Swift 4.0+
Migration Guides
- [SnapKit 3.0 Migration Guide](Documentation/SnapKit%203.0%20Migration%20Guide.md)
Communication
- If you need help, use Stack Overflow. (Tag 'snapkit')
- If you'd like to ask a general question, use Stack Overflow.
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.
Installation
CocoaPods
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
CocoaPods 1.1.0+ is required to build SnapKit 4.0.0+.
To integrate SnapKit into your Xcode project using CocoaPods, specify it in your Podfile
:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'SnapKit', '~> 5.6.0'
end
Then, run the following command:
$ pod install
Carthage
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate SnapKit into your Xcode project using Carthage, specify it in your Cartfile
:
github "SnapKit/SnapKit" ~> 5.0.0
Run carthage update
to build the framework and drag the built SnapKit.framework
into your Xcode project.
Swift Package Manager
Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
Xcode 11+ is required to build SnapKit using Swift Package Manager.
To integrate SnapKit into your Xcode project using Swift Package Manager, add it to the dependencies value of your Package.swift
:
dependencies: [
.package(url: "https://github.com/SnapKit/SnapKit.git", .upToNextMajor(from: "5.0.1"))
]
Manually
If you prefer not to use either of the aforementioned dependency managers, you can integrate SnapKit into your project manually.
Usage
Quick Start
import SnapKit
class MyViewController: UIViewController {
lazy var box = UIView()
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(box)
box.backgroundColor = .green
box.snp.makeConstraints { (make) -> Void in
make.width.height.equalTo(50)
make.center.equalTo(self.view)
}
}
}
Playground
You can try SnapKit in Playground.
Note:
To try SnapKit in playground, open
SnapKit.xcworkspace
and build SnapKit.framework for any simulator first.
Resources
Credits
- Robert Payne (@robertjpayne)
- Many other contributors
License
SnapKit is released under the MIT license. See LICENSE for details.
*Note that all licence references and agreements mentioned in the SnapKit README section above
are relevant to that project's source code only.