seong_hye, the developer

Swift)SnapKit에 대해 알아보기 본문

IOS/UIKit

Swift)SnapKit에 대해 알아보기

seong_hye 2022. 10. 24.

📘 SnapKit

iOS 앱 개발에서 사용하는 Auto Layout을 코드로 쉽게 작성할 수 있게 해주는

Swift 전용 DSL(도메인 특화 언어) 라이브러리

 

SnapKit = NsLayoutConstraint를 간결하고 읽기 쉬운 코드로 작성할 수 있도록 도와주는 Swift 라이브러리


 

🔹 사용 방법

 

- XCode > File > Add Packages Dependencies...

URL : https://github.com/SnapKit/SnapKit

 

 

- CocoaPods로 패키지 다운로드
pod 'SnapKit'


🔹 예제

import SnapKit

let box = UIView()
vew.addSubview(box)

box.snp.makeConstraints { make in
	make.top.equalToSuperview().offset(20)
    make.left.right.equalToSuperview().inset(16)
    make.height.equalTo(100)
}

- snp: SnapKit이 추가한 프로퍼티 (뷰에 접근 가능)

- make: SnapKit의 constraint 빌더

- equalToSuperview(): self.superview를 의미

 

✅ 정중앙 + 크기 설정

box.snp.makeConstraints { make in
	make.center.equalToSuperview()
    make.width.height.equalTo(150)
}

 

✅ 다른 뷰 기준으로 정렬

box.snp.makeConstraints { make in
	make.top.equalTo(imageView.snp.bottom).offset(8)
    make.left.equalTo(imageVIew.snp.left)
}

🔹 주요 메서드

메서드 설명
equalTo(...) 같은 위치로 정렬
offset(...) 기준점에서의 거리
inset(...) 좌우 또는 상하 여백
size.equalTo(...) 고정 크기 설정
edges.equalTo(...) 4면(anchor) 동시에 설정

🔹 SwiftUI 에서는?

❗️SnapKit은 SwiftUI에서는 사용하지 않음❗️

SwiftUI는 SnapKit이 없이 자체적인 선언형 레이아웃 시스템을 갖추고 있음

 

✅ SwiftUI에서 SnapKit이 필요 없는 이유

SnapKit은 UiKit의 Auto Layout을 간단히 하기 위한 라이브러리

SwiftUI는 UIKit보다 훨씬 간결하고 SnapKit이 제공하는 장점을 이미 내장하고 있음


🔹 사용하는 이유?

- Auto Layout 코드보다 간결하고 직관적임

- 코드 구조가 명확함

- 클로저 기반으로 오타 없이 컴파일 단계에서 체크 가능

- 업데이트 / 재설정 등 편리함


🔹 SnapKit vs NSLayoutConstraint

항목 SnapKit NSLayoutConstraint
문법 간결, 체이닝 장황, 반복
실수 방지 높음 (DSL 구조) 낮은(수동 anchor 설정)
Swift 친화도 최고 UIKit 스타일
유지보수 쉬움 복잡함

 

'IOS > UIKit' 카테고리의 다른 글

UIKit) UICollectionvView - layout vs flowlayout  (0) 2022.11.06
UIKit) View Life Cycle  (0) 2022.10.26
UIKit) AppDelegate & SceneDelegate 알아보기  (0) 2022.10.19
Swift) 문법 정리 - 생성자  (0) 2022.08.02
Swift) 코드 스니펫(Code Snippet)  (0) 2022.07.26
Comments