Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SnapKit/SnapKit
A Swift Autolayout DSL for iOS & OS X
https://github.com/SnapKit/SnapKit
auto autolayout cocoapods constraints dsl layout snapkit swift ui xcode
Last synced: 3 days ago
JSON representation
A Swift Autolayout DSL for iOS & OS X
- Host: GitHub
- URL: https://github.com/SnapKit/SnapKit
- Owner: SnapKit
- License: mit
- Created: 2014-06-05T21:13:40.000Z (over 10 years ago)
- Default Branch: develop
- Last Pushed: 2024-07-07T13:58:39.000Z (5 months ago)
- Last Synced: 2024-10-29T20:33:35.350Z (about 1 month ago)
- Topics: auto, autolayout, cocoapods, constraints, dsl, layout, snapkit, swift, ui, xcode
- Language: Swift
- Homepage: https://snapkit.github.io/SnapKit/
- Size: 2.76 MB
- Stars: 19,974
- Watchers: 388
- Forks: 1,976
- Open Issues: 52
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Support: Supporting Files/Info.plist
Awesome Lists containing this project
- awesome-ios - SnapKit - A Swift Autolayout DSL for iOS & macOS. (Layout / Other Hardware)
- awesome-swift - SnapKit - Autolayout DSL for iOS & OS X. (Libs / Layout)
- awesome-swift - SnapKit - Autolayout DSL for iOS & OS X. (Libs / Layout)
- awesome-macos-libraries - SnapKit - A Swift Autolayout DSL. Language: Swift. (Layout)
- awesome-swift - SnapKit - Auto Layout DSL for iOS and macOS. (Frameworks)
- awesome-ios-star - SnapKit - A Swift Autolayout DSL for iOS & macOS. (Layout / Other Hardware)
- awesome-github-star - SnapKit
- awesome-ios-1 - SnapKit / SnapKit
- fucking-awesome-swift - SnapKit - Autolayout DSL for iOS & OS X. (Libs / Layout)
- awesome-swift-cn - SnapKit - A Swift Autolayout DSL for iOS & OS X. (Libs / Layout)
- StarryDivineSky - SnapKit/SnapKit
- stars - SnapKit/SnapKit - A Swift Autolayout DSL for iOS & OS X (Swift)
- awesome - SnapKit - A Swift Autolayout DSL for iOS & OS X (xcode)
- awesome-swift - SnapKit - A Swift Autolayout DSL for iOS & OS X ` π a month ago` (Layout [π](#readme))
- awesome - SnapKit - A Swift Autolayout DSL for iOS & OS X ([http://snapkit.io](http://snapkit.io)). (iOS / Masonry-SnapKit)
- awesome - SnapKit - A Swift Autolayout DSL for iOS & OS X ([http://snapkit.io](http://snapkit.io)). (iOS / Masonry-SnapKit)
README
SnapKit is a DSL to make Auto Layout easy on both iOS and OS X.
[![Build Status](https://travis-ci.org/SnapKit/SnapKit.svg)](https://travis-ci.org/SnapKit/SnapKit)
[![Platform](https://img.shields.io/cocoapods/p/SnapKit.svg?style=flat)](https://github.com/SnapKit/SnapKit)
[![Cocoapods Compatible](https://img.shields.io/cocoapods/v/SnapKit.svg)](https://cocoapods.org/pods/SnapKit)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)#### β οΈ **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](#requirements)
- [Migration Guides](#migration-guides)
- [Communication](#communication)
- [Installation](#installation)
- [Usage](#usage)
- [Credits](#credits)
- [License](#license)## Requirements
- iOS 12.0+ / Mac OS X 10.13+ / 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](http://stackoverflow.com/questions/tagged/snapkit). (Tag 'snapkit')
- If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/snapkit).
- 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](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command:
```bash
$ 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`:
```ruby
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '12.0'
use_frameworks!target '' do
pod 'SnapKit', '~> 5.7.0'
end
```Then, run the following command:
```bash
$ pod install
```### Carthage
[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with [Homebrew](http://brew.sh/) using the following command:
```bash
$ brew update
$ brew install carthage
```To integrate SnapKit into your Xcode project using Carthage, specify it in your `Cartfile`:
```ogdl
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](https://swift.org/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`:
```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
```swift
import SnapKitclass 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
- [Documentation](https://snapkit.github.io/SnapKit/docs/)
- [F.A.Q.](https://snapkit.github.io/SnapKit/faq/)## Credits
- Robert Payne ([@robertjpayne](https://twitter.com/robertjpayne))
- Many other contributors## License
SnapKit is released under the MIT license. See LICENSE for details.