본문 바로가기

iOS 개발/Unsplash 클론 코딩

Unsplash - 2. SnapKit 등록

반응형

안녕하세요. Skillist 입니다.

 

이번 프로젝트는 SnapKit으로 레이아웃을 구현할거에요.

 

저는 기존에 스토리보드를 주로 사용했는데, 스토리보드작업에는 다음 문제를 경험했어요.

1. 스토리 보드를 수정하지 않고, 파일을 열기만 해도 x,y의 좌표가 변경되어 스토리보드 파일 변경이 빈번하게 일어난다.

2. 여러 브렌치에서 스토리보드 작업을 진행한 경우, merge 시 컨플릭이 발생한다.

3. 결과적으로 스토리보드에 대한 작업은 협업 문제가 발생한다.

 

그럼 SnapKit에 대한 문제는 없는건가요?  다음 문제를 경험했어요.

1. 모든 UI에 대한 선언 및 제약사항을 코드로 작성해야 하므로, 코드량이 늘어난다.

2. UI를 시각적으로 확인할 수 없어, SnapKit에 대한 코드를 보고 레이아웃을 형상화해야 한다.

3. 다른 개발자가 구현한 SnapKit 제약사항을 보고 레이아웃 예측이 어렵지 않을까?? (아직 경험이 없어서 생각만 하는 중이에요)

 

그래도 SnapKit 장점은 쉽게 알겠더라구요

1. 레이아웃에 대한 협업이 가능하다.

2. 레이아웃 및 제약사항 구성이 코드로 깔끔하다.

 

Skillist님, SwiftUI도 있는데, 왜 SnapKit 사용했어요????

1. SnapKit을 익히면서 이번 프로젝트에 적용하고 싶었어요.

2. SwiftUI에 대한 학습이 필요한데, SnapKit은 오토레이아웃 개념이 잡혀있으면 바로 적용할 수 있어 좋았어요. 러닝커브가 낮았어요.

3. 사실 스토리보드로 레이아웃을 먼저 구현하고, SnapKit으로 전환할까 했는데, 너무 번거로울것 같아, 처음부터 SnapKit 사용했어요.

 

그럼 SnapKit 알아 볼까요?

다음 Url로 들어가보세요.

https://github.com/SnapKit/SnapKit

 

GitHub - SnapKit/SnapKit: A Swift Autolayout DSL for iOS & OS X

A Swift Autolayout DSL for iOS & OS X. Contribute to SnapKit/SnapKit development by creating an account on GitHub.

github.com

추가 방법은 Git Readme에 써있네요.

- 코코아팟

- 카르타고

- 스위프트 패키지 매니저

- 손수 추가.

 

코코아팟을 주로 사용했었는데 이번엔 스위프트 패키지 매니저를 사용해볼게요.

(Xcode13에서 스위프트 매니저 추가 방법이 바뀐것 같더라구요?)

 

프로젝트 생성하여, 프로젝트의 Package Dependencies로 이동하세요. 

 

저는 SnapKit을 추가한 상태에요. 하지만 하단에 "+" 버튼 보이시죠??? 눌러주세요.

 

그럼 다음과 같이 패키지 추가 화면이 보이는데, 우측 상단에 추가하고자 하는 패키지의 git 주소를 입력하세요.

SnapKit 의 git 주소를 추가하면 되겠죠?

그리고 버전 등 적절하게 세팅해서 Add Package를 해주시면 됩니다.

그리고 사용하고자 하는 swift파일에서 import 해주시면 돼요.

 

 

SnapKit을 어떻게 사용하냐면, 깃에 다 나와있어요. 그 중에 document를 보시죠.

http://snapkit.io/docs/

 

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.io

equalTo, lessThanOrEqualTo, greterThanOrEqualTo, inset, offset, priority 등으로 제약사항 구성이 가능하여 정말 심플하고 간결해요.

아직 감이 안올 수도 있는데, 개발 하면서 같이 익혀보자구요????

 

Skillist의 Unsplash 프로젝트

https://github.com/DeveloperSkillist/UnsplashCloneCode

 

GitHub - DeveloperSkillist/UnsplashCloneCode: UnsplashCloneCode

UnsplashCloneCode. Contribute to DeveloperSkillist/UnsplashCloneCode development by creating an account on GitHub.

github.com

 

반응형