[iOS Library] 1. Then

2020. 10. 8. 15:41iOS/iOS Library

첫 번째 iOS Library 포스트는 바로바로,,,!!!!!

우리 대한민국의 제가 정말 따라가고 싶은 iOS Developer 전수열님(github.com/devxoul)께서 만드신 라이브러리 Then입니다!! (국뽕이 차오른다!!!!)

그럼 바로 하나하나씩 알아보도록 할게요

 

devxoul - Overview

A lazy developer 😴 I write many code to write less code. - devxoul

github.com


1. 설치

Then은 외부 라이브러리입니다. 따라서 사용하기 전에 설치를 해주셔야 해요! 저는 CocoaPods을 이용해 설치를 해볼게요.

CocoaPods은 외부 라이브러리들을 관리하기 쉽게 도와주는 의존성 관리 도구에요. Then 이외에도 Alamofire와 Kingfisher 같은 외부 라이브러리들을 프로젝트에서 쉽게 사용할 수 있도록 도와주죠.

먼저 CocoaPods 설치를 위해서 terminal에서 아래와 같은 코드를 입력해줍시다.

sudo gem install 'CocoaPods'

설치가 완료되었다면 적용하고자 하는 iOS 프로젝트 디렉토리로 가셔서 아래와 같은 코드를 입력해줍시다.

pod init

위와 같이 입력하셨다면 아래와 같이 Podfile 이 생성되셨을 것 같아요.

Podfile 이 생성되었다면 vi 에디터를 이용해 Podfile 을 열어서 편집해보도록 할게요.

vi Podfile

vi 에디터 화면이 나온다면 i키를 눌러 쓰기 모드로 전환해주시고 #Pods for [Project name] 밑 부분에 pod 'Then'을 추가해주시면 됩니다.

더 추가할 라이브러리가 없다면 esc 를 먼저 눌러주시고 :wq! 를 입력하여 vi 에디터를 종료해주시면 됩니다.

이후 termianl 화면에서 pod install을 입력하여 라이브러리들을 설치해주시면 라이브러리 설치가 완료됩니다.

pod install

이제 주의하셔야 할 점이 있어요!!!

CocoaPods을 통해 설치한 외부 라이브러리를 사용하기 위해서는 설치 이후에 생성된 .xcworkspace를 통해서만 프로젝트를 열어주셔야 합니다.


2. 사용 방법

then

기본적인 사용방법은 github.com/devxoul/Then 에 자세히 나와있지만 한 번 더 정리해보도록 할게요!

Then 라이브러리를 사용하기 위해서 우선적으로 해당 클래스 상단에서 import Then 을 선언해주세요.

import Then

Then은 NSObject의 모든 하위 클래스에 적용가능해요. Then을 사용하는 이유는 객체의 프로퍼티들을 쉽게 선언하고 정해줄 수 있기 때문인데요. 저는 예시로 UILabel에 적용해봤어요!

let thenLabel = UILabel().then{
  $0.textColor = UIColor.red
  $0.textAlignment = .left
  $0.text = "반갑습니다!"
  $0.font = UIFont(name: "ArialHebrew", size: UIFont.labelFontSize)
}

보시다시피 then을 사용하여 UILabel의 다양한 프로퍼티들을 쉽게 정해줄 수 있어요!

thenLabel을 UIViewController에 나타나게 하기 위해서는 viewDidLoad() 내에 self.view.addSubview(self.thenLabel)을 선언해주시면 됩니다.

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.addSubview(self.thenLabel) 
    }

with

with는 기존에 있던 객체의 다른 모든 프로퍼티를 복사하여 사용하되 원하는 프로퍼티만 다시 정해주고 싶을 때 사용해요.

예를 들어, 위에 선언했던 thenLabel의 textColor만 black으로 바꾸어 새로운 newLabel을 선언해주고 싶을 때 아래와 같이 선언할 수 있어요.

let newLabel = thenLabel.with {
  $0.textColor = UIColor.black
}

3. 회고

이전에 사용해본 적은 없지만 테스트 예제를 위해 적용해보니 굉장히 편리하고 사용하기 쉬운 라이브러리라는 생각이 들었어요. 앞으로 프로젝트를 진행하면서 적극적으로 사용해보고 싶지만 그 전제 조건은 이 라이브러리에 대해 다른 모든 사람에게 설명할 수 있을 정도의 숙련도와 지식이 필요하다고 생각해요!! 사실 이게 제가 외부 라이브러리들을 포스팅하는 이유이기도 하구요. 라이브러리들이 작동하는 원리와 이론들을 잘 이해하고 사용한다면 분명 이점으로 작용할 거라고 생각합니다. 그럼 이만 다음 포스팅에서 뵙겠습니다. 모두 건강하세요!!

'iOS > iOS Library' 카테고리의 다른 글

[iOS Library] 2. TextFieldEffects  (0) 2020.10.18