SnapKit 시작하기

dp221125·2020년 5월 18일
0

SnapKit

목록 보기
1/1

안녕하세요.
오늘은 스냅킷을 사용하는 방법을 한 번 알아보겠습니다.

스냅킷 GITHUB에 들어가시면 아래처럼 설명되어 있습니다.

SnapKit은 iOS 및 OS X에서 Auto Layout을 쉽게 하기 위한 DSL(Domain-specific Language)입니다.

DSL이란 생소한 개념이 등장합니다.
DSL은 특정 범주를 타겟하고 있는 언어를 가리킨다고 생각하시면 됩니다.
반대 개념은 GPL(General Purpose Language)가 있습니다.

자 그럼 시작해보도록하겠습니다.
먼저 프로젝트를 생성 후 아래 항목에 들어가서 SnapKit을 추가해줍니다.

File -> Swift Packages -> Add Package Dependency

이제 정말로 모든 준비가 끝났습니다. 시작하겠습니다.

먼저 ViewController.swift 상단에 아래와 같이 작성해줍니다.

import SnapKit

그 뒤에 viewDidLoad에서 작성해보겠습니다.
일단 100*100 크기의 빨간색 뷰를 만들어보겠습니다.
스냅킷으로 작성하기 이전 코드를 비교해보기 위해 Anchor로 작성해보겠습니다.

let redView = UIView()
redView.backgroundColor = .systemRed
self.view.addSubview(redView)
redView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
    redView.centerXAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.centerXAnchor),
    redView.centerYAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.centerYAnchor),
    redView.widthAnchor.constraint(equalToConstant: 100),
    redView.heightAnchor.constraint(equalTo: redView.widthAnchor)
])

이렇게 작성하면 Anchor로 100 * 100 크기의 빨간색 뷰를 만들 수 있습니다.
크게 어렵지 않습니다.
이번엔 스냅킷으로 한 번 작성해보겠습니다.
위에 생성 부분은 동일하니 밑에 레이아웃 부분만 보겠습니다.

redView.snp.makeConstraints { (make) in
    make.centerX.equalTo(self.view.safeAreaLayoutGuide.snp.centerX)
    make.centerY.equalTo(self.view.safeAreaLayoutGuide.snp.centerY)
    make.width.equalTo(100)
    make.height.equalTo(redView.snp.width)
}

일단 코드가 조금 깔끔해지면서 읽기 쉬워진 것 같지만
이렇게 간단한 화면에선 크게 체감이 되지 않습니다.

물론 화면이 더 복잡해지면 그 조금은 엄청난 차이를 야기할 것 같지만 아직은 와닿지 않습니다.

다음 시간에 조금 더 복잡한 화면으로 조금 더 디테일하게 알아보겠습니다.

0개의 댓글