|
|
@@ -3,9 +3,130 @@
|
|
|
SnapKit is a DSL to make Auto Layout easy on both iOS and OS X.
|
|
|
|
|
|
[](https://travis-ci.org/SnapKit/SnapKit)
|
|
|
-[](https://img.shields.io/cocoapods/v/SnapKit.svg)
|
|
|
+[](https://github.com/SnapKit/SnapKit)
|
|
|
+[](https://cocoapods.org/pods/SnapKit)
|
|
|
[](https://github.com/Carthage/Carthage)
|
|
|
|
|
|
+- [Requirements](#requirements)
|
|
|
+- [Migration Guides](#migration-guides)
|
|
|
+- [Communication](#communication)
|
|
|
+- [Installation](#installation)
|
|
|
+- [Usage](#usage)
|
|
|
+- [Credits](#credits)
|
|
|
+- [License](#license)
|
|
|
+
|
|
|
+## Requirements
|
|
|
+
|
|
|
+- iOS 9.0+ / Mac OS X 10.11+ / tvOS 9.0+
|
|
|
+- Xcode 8.0+
|
|
|
+- Swift 3.0+
|
|
|
+
|
|
|
+## Migration Guides
|
|
|
+
|
|
|
+- [SnapKit 3.0 Migration Guide](https://github.com/SnapKit/SnapKit/blob/master/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, '10.0'
|
|
|
+use_frameworks!
|
|
|
+
|
|
|
+target '<Your Target Name>' do
|
|
|
+ pod 'SnapKit', '~> 3.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" ~> 3.0
|
|
|
+```
|
|
|
+
|
|
|
+Run `carthage update` to build the framework and drag the built `SnapKit.framework` into your Xcode project.
|
|
|
+
|
|
|
+### Manually
|
|
|
+
|
|
|
+If you prefer not to use either of the aforementioned dependency managers, you can integrate SnapKit into your project manually.
|
|
|
+
|
|
|
+#### Embedded Framework
|
|
|
+
|
|
|
+- Open up Terminal, `cd` into your top-level project directory, and run the following command "if" your project is not initialized as a git repository:
|
|
|
+
|
|
|
+```bash
|
|
|
+$ git init
|
|
|
+```
|
|
|
+
|
|
|
+- Add SnapKit as a git [submodule](http://git-scm.com/docs/git-submodule) by running the following command:
|
|
|
+
|
|
|
+```bash
|
|
|
+$ git submodule add https://github.com/SnapKit/SnapKit.git
|
|
|
+```
|
|
|
+
|
|
|
+- Open the new `SnapKit` folder, and drag the `SnapKit.xcodeproj` into the Project Navigator of your application's Xcode project.
|
|
|
+
|
|
|
+ > It should appear nested underneath your application's blue project icon. Whether it is above or below all the other Xcode groups does not matter.
|
|
|
+
|
|
|
+- Select the `SnapKit.xcodeproj` in the Project Navigator and verify the deployment target matches that of your application target.
|
|
|
+- Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the "Targets" heading in the sidebar.
|
|
|
+- In the tab bar at the top of that window, open the "General" panel.
|
|
|
+- Click on the `+` button under the "Embedded Binaries" section.
|
|
|
+- You will see two different `SnapKit.xcodeproj` folders each with two different versions of the `SnapKit.framework` nested inside a `Products` folder.
|
|
|
+
|
|
|
+ > It does not matter which `Products` folder you choose from, but it does matter whether you choose the top or bottom `SnapKit.framework`.
|
|
|
+
|
|
|
+- Select the top `SnapKit.framework` for iOS and the bottom one for OS X.
|
|
|
+
|
|
|
+ > You can verify which one you selected by inspecting the build log for your project. The build target for `SnapKit` will be listed as `SnapKit`.
|
|
|
+
|
|
|
+- And that's it!
|
|
|
+
|
|
|
+> The `SnapKit.framework` is automagically added as a target dependency, linked framework and embedded framework in a copy files build phase which is all you need to build on the simulator and a device.
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## Usage
|
|
|
+
|
|
|
+### Quick Start
|
|
|
+
|
|
|
```swift
|
|
|
import SnapKit
|
|
|
|
|
|
@@ -26,11 +147,15 @@ class MyViewController: UIViewController {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-## Resources
|
|
|
+### Resources
|
|
|
+
|
|
|
+- [Documentation](http://snapkit.io/docs/)
|
|
|
+- [F.A.Q.](http://snapkit.io/faq/)
|
|
|
+
|
|
|
+## Credits
|
|
|
|
|
|
-* [Documentation](http://snapkit.io/docs/)
|
|
|
-* [F.A.Q.](http://snapkit.io/faq/)
|
|
|
+- Robert Payne ([@robertjpayne](https://twitter.com/robertjpayne))
|
|
|
|
|
|
## License
|
|
|
|
|
|
-MIT license. See the `LICENSE` file for details.
|
|
|
+SnapKit is released under the MIT license. See LICENSE for details.
|