Builder Patterns for Flexible Syntax in Swift
Builder was deployed as Swift Package Manager. Package to install in a project. Add as a dependent item within the swift manifest.
let package = Package(
...
dependencies: [
.package(url: "https://github.com/pelagornis/swift-builder.git", from: "1.1.0")
],
...
)
Then import the Builder from thr location you want to use.
import Builder
And then adding the product to any target that needs access to the library:
.product(name: "Builder", package: "swift-builder"),
The documentation for releases and main
are available here:
Initializer UIView with Builder
let view = UIView()
.builder()
.translatesAutoresizingMaskIntoConstraints(false)
.backgroundColor(.systemBlue)
.build()
This is equivalent to
let view: UIView = {
let view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
view.backgroundColor(.systemBlue)
return view
}()
Want to use with your own types? Just make extensions.
extension MyType: Buildable {}
let instance = MyType()
.builder()
.property("some value")
.build()
Starting with Swift version 5.9
, @Builder
macro is supported.
@Builder
struct Pelagornis {
var libraryName: String?
}
Builder is under MIT license. See the LICENSE file for more info.