Releases: Adobels/UIViewKit
Releases · Adobels/UIViewKit
Add IBMeasure and create XCFramwork
New Features:
-
IBMeasure Namespace:
- Introduced the
IBMeasure
namespace for tools that assist in measuring distances between views. - Added methods:
printVerticalDistance
printHorizontalDistance
- Introduced the
-
IBDebug Enhancements:
- Added a new argument,
borderColor
, to theIBDebug
tool. - Updated the static method:
showFrames(of:borderColor:includeGivenView:includeUIKitPrivateViews:)
to include the new argument.
- Added a new argument,
-
GitHub Actions Workflow:
- Added a new workflow,
swift-create-sign-upload-xcframework
, which builds, signs, and uploads an XCFramework for therelease.created
trigger.
- Added a new workflow,
1.8.0
What's Changed
Enhencements:
DSL:
- Remove auto-naming of constraints generated in iBAttributes.
- Add support for the ShouldBeArchived property of NSLayoutConstraint.
Kit:
- Add a UIViewController extension ibSetView to replace the view of the controller.
- Add UIViewController extensions ibEmbed / ibUnembed to add view controllers and their views to container views.
- Rename UIViewDebug to IBDebug.
- IBDebug.showFrames receives default values for includeGivenView and includeUIKitPrivateViews, which are used rarely.
Full Changelog: 1.7.0...1.8.0
Enhancements to DSL Optimization, UIKit, and Previews Add-Ons
DSL
- Optimize usage of
@MainActor
to protect constraints to be applied - Add tests for UIViewDSL when working from multithreads.
Debugger
- Add showColors to set backgrounds of subviews to random colors and make them easier to spot.
UIKit
- Add IBView and IBControl to avoid writing init methods when creating views
- Add convenience classes like IBScrollView, IBPreviewLabel
- Add
ibSetAsRootView
to set views as rootviews of a given controller - Add methods to work with container views
ibAdd(child:to)
andibRemove(child:)
on UIViewController
Previews
- Add FreeForm Representables for UIView and UIViewController
ibConstraints
moved from UIView extension to standalone function
Project
- Add SwiftLint
- Reorganize files and types
- Clean up Xcode schemes
- Set UIViewKitDevelopmentViews as an internal product by commenting it
Improve DSL Experience when working with UIScrollView and other complex UIViews
What's Changed
- ibSubviews's superview is typed with the parent class, which means it's able to set constraints with a custom UILayoutGuide.
- Update involvesOwnerView to allow setting constraints between the frame and content of UIScrollView, for example.
- Add IBView subclass of UIView to avoid overriding init methods in subclasses of UIView.
- ibAttributes supports all types of syntaxes due to the support of Any? in @NSLayoutConstraintBuilder."
- Add more unit tests.
Achieved DSL Surface Stability
Achieved DSL Surface Stability
1.4.0
UIViewDSL:
- Add Support For Carthage Dependency Manager
- 'IBConstraints' moved to UIView extension and renamed to 'ibConstraints'
- Add ViewInCode subclass of UIView to eliminate overriding init(frame:) and init(coder:) methods
- Add buildExpression for Any? which allows more configurations in 'ibAttributes' like '$0.view1.label?.font = ...'
- HorizontalStack and VerticalStack were transformed from subclasses of UIStackView to functions to minimize impact on UIKit
- Add additional tests for the DSL
UIViewDebug:
- Add showViewsWhichHasAmbiguousLayout which displays an overlay over views with ambiguous layouts.
Previews:
- Set ACL internal on previews. Xcode 15.0 comes with #Preview macros so at this moment it is privileged to use native solution. Custom previews are under active research and maybe development.
Improve DSL syntax when writing and reading
- ibConstraints transformed to global function
- NSLayoutConstraints.activate renamed to NSLayoutConstraints.ibActivate
API Safeguard Update
In this release, I've made the decision to remove functions ibOutlet with @UIViewBuilder closures APIs to safeguard against potential misuse.
UIViewKit v1.0
v1.0.0 Enhancements, Refactoring, and Fixes for UIViewDSL Component and Asso…
Introduce UIViewDebug Tools
What's Changed
- Introduce UIViewDebug Tools and Address .swiftpm Build Issues on SwiftPackageIndex by @Adobels in #1
New Contributors
Full Changelog: v0.9.0...v0.9.1