普通にUIKitの基本APIを使ってヴューを作成するとき普段は下のような形になるのが大抵でしょ。
let body: UIView
let profileImage: UIView
let nameLabel: UILabel
body.addSubview(profileImage)
body.addSubview(nameLabel)
NSLayoutConstraint.active([
profileImage.topAnchor.constraint(equalTo: body.topAnchor),
...
])
まあview 1つや2つ程度簡単なものは上のような基本のAPIを使ってもよろしいでしょう。でもたとえピューが10個ならどうですか。その上ビューの関係も複雑で後でビューの関係に入りファクトリーが必要オフになったら恐ろしい状態になりますね。ここでifやenumまでひつようなじょうきょうを目の前にそたら諦めてSwiftUIが欲しくなりまう。
ここでこのライブラリーをご紹介させていただきたいと思います。
SwiftLibraryは基本的にSwiftのresultBuilderとUIView, NSLayoutConstraintのAPIを組み合わせて下の形でUIView間の結合、 NSLayoutConstraintの作成、後、前の二つの管理の通合をもっと楽で見やすく作成出来ように手伝う宣言形ライブラリーです。
body {
profileImage.anchors { // body.addSubview(profileImage)
Anchors(.leading, .top, .trailing) // add lots of anchors or layout constraint
}
nameLabel.anchors {
Anchors(.top).equalTo(profileImage, attribute: .bottom)
Anchors(.leading, .bottom, .trailing)
}
}
確かに見やすくとなるんだと思いますが、他の方はどうでしょうか。