2024년 어린이 날은 하루종일 봄비가 내렸습니다.
내리는 빗소리를 들으며 그동안 미루어둔 SnapKit을 설치합니다.
해보니 금방이네요~ ᵔࡇᵔ
+ 라이브러리와 프레임워크의 차이점도 복습합니다.
[iOS] Framework와 Library 차이점 (Framework Vs. Library)
라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도성이 누구에게 / 어디에게 있는가에 있습니다. 즉, 애플리케이션의 Flow(흐름)을 누가 쥐고 있느냐에 달려있다고 생각하면 됩니다. 프
maggie-chae.tistory.com
SPM이란?
Swift Package Manager의 줄임말로 Xcode에서 라이브러리를 쉽게 import 하기 위해 apple에서 자체적으로 개발했다. 기존에 코코아팟, 카르타고 등을 활용했으나 이제 대부분의 라이브러리가 SPM을 지원하기 때문에 이를 활용한다.
CocoaPods VS SPM
CocoaPods와 Swift Package Manager(SPM)는 두 가지 다른 라이브러리 관리 툴로, 각각 장단점이 있습니다.
medium.com
| 라이브러리 Import 하기
https://github.com/SnapKit/SnapKit.git ← 경로 복사
프로젝트의 Package Dependencies에 진입해 + 버튼 누르기
우상단에 복사한 url을 붙여넣고 Add Package 누르기
SnapKit-Dynamic의 타겟은 None으로 바꾸기.
안그러면 오류 발생❗️
SnapKit 공식문서 살펴보기
Requirements
Requirements iOS 8.0+ / Mac OS X 10.11+ / tvOS 9.0+ Xcode 9.0+ Swift 4.0+ Communication If you need help, use Stack Overflow. (Tag ‘snapkit’) If you’d like to ask a general question, use Stack Overflow. If you found a bug, open an issue. If you have
snapkit.github.io
SnapKit 기존 방식과 비교하기
equalToSuperview
SnapKit에서 자주 사용되는 방법
해당 뷰의 ‘부모 뷰’을 통해 제약조건을 설정한다.
부모 뷰의 이름을 직접 적지 않아도 파악이 가능하기 때문에 더 깔끔하고 직관적인 코드를 작성할 수 있다.
SnapKit은 다양한 축약 문법을 제공. 몇가지 예시를 아래에 첨부합니다.
nameLabel.snp.makeConstraints { // 여러 앵커를 한번에 연결
$0.top.leading.equalToSuperview().offset(30)
$0.trailing.bottom.equalToSuperview().offset(-30)
}
nameLabel.snp.makeConstraints { // (위, 아래) (리딩, 트레일링)을 한번에 표현하는 이름도 존재
$0.verticalEdges.equalToSuperview().offset(30)
$0.horizontalEdges.equalToSuperview().offset(30)
}
Inset, Offset 이해하기
이전에 배웠던 뷰의 방향을 그대로 활용하는 것이 Offset
bottom, trailing등 -처리를 포함해서 안쪽을 향하도록 하는것이 Inset
'iOS 앱 개발자 프로젝트 > iOS 심화' 카테고리의 다른 글
[iOS] bookStore app project (3) (4) | 2024.05.08 |
---|---|
[iOS] bookStore app project (2) (2) | 2024.05.07 |
[iOS] bookStore app project (1) (2) | 2024.05.04 |
[iOS] video playback app (0) | 2024.05.01 |
[iOS] codebase UI (0) | 2024.04.30 |