0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[iOS] SnapKitとThenについて

Posted at

⭐️ はじめに

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コードを記述する際には、ぜひ使ってみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?