⭐️ はじめに
SnapKitとThenというライブラリーはコードを簡潔に、効率に記述するため使います。
本記事ではこのライブラリーたちの使い方とどんな形に簡潔になるか見てみます。
👨💻 詳細
SnapKit
まずは SnapKit について見ていきましょう。
SnapKitを使うためは以下の環境が必要です。
- iOS 12.0+ / Mac OS X 10.13+ / tvOS 10.0+
- Xcode 10.0+
- Swift 4.0+
SnapKitを使わないと
let box = UIView()
box.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(box)
NSLayoutConstraint.activate([
box.widthAnchor.constraint(equalToConstant: 50),
box.heightAnchor.constraint(equalToConstant: 50),
box.centerXAnchor.constraint(equalTo: view.centerXAnchor),
box.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
こんな感じで記述します。
これだけみたら、良いんじゃないかと思うかもしれないですが、
SnapKitを使うと(SnapKitのGithubにある例文)
let box = UIView()
view.addSubview(box)
box.snp.makeConstraints { (make) -> Void in
make.width.height.equalTo(50)
make.center.equalTo(self.view)
}
こんなに簡潔になります。
上のコードブロックにある、
make はクロージャの引数であり、省略せずに書くこともできますが、Swift では $0 のように Shorthand Argument Names(短縮引数名) を使ってもっと簡潔に記述できます。
let box = UIView()
view.addSubview(box)
box.snp.makeConstraints {
$0.width.height.equalTo(50)
$0.center.equalTo(self.view)
}
最初のコードブロックに比べて確かに簡潔になっているのがわかりますよね?
Then
次はThenにつしてみてみましょう。
Thenを使うためには以下の環境が必要です。
- Swift 5.0+
Thenを使うと、
let label: UILabel = {
let label = UILabel()
label.textAlignment = .center
label.textColor = .black
label.text = "Hello, World!"
return label
}()
上のコードが
let label = UILabel().then {
$0.textAlignment = .center
$0.textColor = .black
$0.text = "Hello, World!"
}
こんなに変わります。
見ればまあまあだと思うかもしれないけど、
実際に使って見ると本当にコード記述の効率性も高まり、すっきりとした印象を受けることができます。
💬 まとめ
SnapKitとThenはセットで使用すると非常に便利なライブラリだと思います。
UIKitでUIコードを記述する際には、ぜひ使ってみてください。