본문 바로가기

iOS

[iOS] SnapKit

Snapkit

이번 프로젝트에서 SnapKit 을 사용하게 되어 이를 직접 사용하기 이전에 SnapKit 이 무엇인지 먼저 공부하며 본 문서를 작성한다.


SnapKit이란?

image

cf) SnapKit Official Repository

iOS 앱을 개발할 때에는 다양한 해상도를 유연하게 지원하기 위하여 Auto Layout이라는 기능을 제공한다.


Auto Layout이란?

AutoLayout 이란, 기존의 Frame-Based Layout 과는 달리 ViewView사이의 관계를 이용하여 해당 객체의 위치와 크기를 자동으로 결정하는 Layout System이다.

SnapKit이란 iOSOS XAuto Layout 기능을 코드로 손쉽게 적용하도록 도와주는 기능을 제공하는 라이브러리이다.

즉, 가독성을 잃지 않으면서 최소한의 코드만으로 자동 레이아웃을 코드에 작성하는 것 을 단순화한 레이아웃 라이브러리이다.


SnapKit 사용법


외부 라이브러리를 프로젝트에서 사용하기 위해서는 CocoaPods와 같은 dependency manager를 이용한다.

본 문서에서는 설치방법은 다루지 않는다.

간단한 예제로 SnapKit에서 제공하는 예시를 진행해보도록 한다.

코드는 아래와 같다.

import UIKit
import SnapKit

class ViewController: UIViewController {

    var box = UIView()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.addSubview(box) {
            box.backgroundColor = .green
            box.snp.makeConstrints { (make ) in
                make.width.height.eqaulTo(100)
                make.center.equalTo(self.view)
            }
        }
    }
}

위 코드를 보면 알 수 있듯, 코드가 매우 직관적이다.

box 라는 UIView 객체를 만들고 이를 viewSubView로 더한다.

이후 box 뷰에 대한 UI를 설정한다.

배경색은 초록색으로 설정한 뒤, 제약을 추가한다.

make.width.height.equalTo(100) : 박스의 너비와 높이는 100으로 설정한다.
make.center.equalTo(self.view) : 박스의 중앙은 현재 뷰의 중앙으로 설정한다.

코드를 실행해보도록 한다.

image

대략 예상했던 것과 동일하게 나왔다.

'iOS' 카테고리의 다른 글

[iOS] iOS13 이후 버전에서의 Navigation Controller 설정  (0) 2020.05.15
[iOS] App LifeCycle  (0) 2020.05.15
[iOS] ViewController _ Lifecycle  (0) 2020.05.07
[iOS] Codable  (0) 2020.04.23
[iOS] 네비게이션 인터페이스와 모달  (0) 2020.04.20