Swiftpack.co -  dogo/SketchKit as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
dogo/SketchKit
A lightweight auto-layout DSL library for iOS & tvOS.
.package(url: "https://github.com/dogo/SketchKit.git", from: "1.4.0")

Build Status codecov Cocoapods compatible SPM compatible Carthage compatible License

SketchKit is a lightweight, powerful and pure-Swift auto layout library, you can set up your constraints with a simple and intuitive code without any stringly typing.

In short, it allows you to replace this:

newView.translatesAutoresizingMaskIntoConstraints = false

addConstraint(NSLayoutConstraint(
              item: newView,
              attribute: NSLayoutConstraint.Attribute.centerX,
              relatedBy: NSLayoutConstraint.Relation.equal,
              toItem: view,
              attribute: NSLayoutConstraint.Attribute.centerX,
              multiplier: 1,
              constant: 0))

or

newView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true

with this

// It's NOT necessary: newView.translatesAutoresizingMaskIntoConstraints = false
newView.layout.applyConstraint { view in
    view.centerXAnchor(equalTo: self.view.centerXAnchor)
    view.centerYAnchor(equalTo: self.view.centerYAnchor)
}

Requirements

  • iOS 9.0+ / tvOS 9.0+
  • Swift 3.2+

Installation

CocoaPods

To integrate SketchKit into your Xcode project using CocoaPods, specify it in your Podfile:

target '<Your Target Name>' do
  pod 'SketchKit'
end

Then, run the following command:

$ pod install

Swift Package Manager (SPM)

To add SketchKit as a dependency, you have to add it to the dependencies of your Package.swift file and refer to that dependency in your target.

import PackageDescription
let package = Package(
    name: "<Your Product Name>",
    dependencies: [
       .package(url: "https://github.com/dogo/SketchKit", .upToNextMajor(from: "1.0.0"))
    ],
    targets: [
        .target(
            name: "<Your Target Name>",
            dependencies: ["SketchKit"]),
    ]
)

After adding the dependency, you can fetch the library with:

$ swift package resolve

Carthage

github "dogo/SketchKit"

Usage

Quick Start

import SketchKit

final class MyViewController: UIViewController {

    let myView: UIView = {
        let view = UIView(frame: .zero)
        view.color = .red
        return view
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.addSubview(myView)

        myView.layout.applyConstraint { view in
            view.topAnchor(equalTo: self.view.topAnchor)
            view.leadingAnchor(equalTo: self.view.leadingAnchor)
            view.bottomAnchor(equalTo: self.view.bottomAnchor)
            view.trailingAnchor(equalTo: self.view.trailingAnchor)
        }
    }
}

Documentation

The project documentation can be found (here)

Credits

  • Nicholas Babo (@NickBabo) thank you for the SketchKit logo,

License

SketchKit is released under the MIT license. See LICENSE for details.

GitHub

link
Stars: 41
Last commit: 1 week ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Release Notes

Overcome Laziness
17 weeks ago

Centralize anchor logic inside Constrainable protocol Rename SketchKitViewDSL to SketchKitDSL, using a more generic name/context

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API