Then 라이브러리는
인스턴스 초기화시 클로저를 통해 깔끔한 작성을 할 수 있게 도와주는 라이브러리입니다.
GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers
✨ Super sweet syntactic sugar for Swift initializers - GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers
github.com
Github의 ReadMe만 봐도 어떤 용도인지 감이 잘 옵니다.
Then은 CocoaPod, Swift Package Manager를 통한 Dependency 설정이 가능합니다.
기존의 인스턴스 초기화 과정은
// 이렇게 하거나
let someButton: UIButton = {
let button = UIButton()
button.setTitle("someButton", for: .normal)
button.setTitleColor(.black, for: .normal)
button.backgroundColor = .white
button.layer.cornerRadius = 3
return button
}()
// 이렇게 하거나
let someButton = UIButton()
someButton.setTitle("someButton", for: .normal)
someButton.setTitleColor(.black, for: .normal)
someButton.backgroundColor = .white
someButton.layer.cornerRadius = 3
였는데,
Then을 사용하면 아래와 같이 깔끔한 초기화가 가능합니다.
let someButton = UIButton().then {
$0.setTitle("someButton", for: .normal)
$0.setTitleColor(.black, for: .normal)
$0.backgroundColor = .white
$0.layer.cornerRadius = 3
}
기본적으로 NSObject 서브클래스들은 모두 사용할 수 있고,
커스텀 클래스도 Then 프로토콜을 적용하면 사용이 가능합니다.
class SomeClass: Then {
var someString = ""
func someFunc(string: String) {
print("string: \(string)")
}
}
var some = SomeClass().then {
$0.someString = "string!"
$0.someFunc(string: $0.someString)
}
Then 라이브러리는
인스턴스 초기화시 클로저를 통해 깔끔한 작성을 할 수 있게 도와주는 라이브러리입니다.
GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers
✨ Super sweet syntactic sugar for Swift initializers - GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers
github.com
Github의 ReadMe만 봐도 어떤 용도인지 감이 잘 옵니다.
Then은 CocoaPod, Swift Package Manager를 통한 Dependency 설정이 가능합니다.
기존의 인스턴스 초기화 과정은
// 이렇게 하거나
let someButton: UIButton = {
let button = UIButton()
button.setTitle("someButton", for: .normal)
button.setTitleColor(.black, for: .normal)
button.backgroundColor = .white
button.layer.cornerRadius = 3
return button
}()
// 이렇게 하거나
let someButton = UIButton()
someButton.setTitle("someButton", for: .normal)
someButton.setTitleColor(.black, for: .normal)
someButton.backgroundColor = .white
someButton.layer.cornerRadius = 3
였는데,
Then을 사용하면 아래와 같이 깔끔한 초기화가 가능합니다.
let someButton = UIButton().then {
$0.setTitle("someButton", for: .normal)
$0.setTitleColor(.black, for: .normal)
$0.backgroundColor = .white
$0.layer.cornerRadius = 3
}
기본적으로 NSObject 서브클래스들은 모두 사용할 수 있고,
커스텀 클래스도 Then 프로토콜을 적용하면 사용이 가능합니다.
class SomeClass: Then {
var someString = ""
func someFunc(string: String) {
print("string: \(string)")
}
}
var some = SomeClass().then {
$0.someString = "string!"
$0.someFunc(string: $0.someString)
}