The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
#### Enhancements
- UISliderExtension:
```swift
func value(for gestureRecognizer: UITapGestureRecognizer) -> Float
```
#### Bugfixes
- Xcode 14 support
#### Bugfixes
- Fixed builds targeting armv7 using SPM
#### Enhancements
- UIViewControllerExtension:
```swift
func addSubSwiftUIView<Content>(_ swiftUIView: Content, to view: UIView) where Content: View
```
- UIViewExtension:
```swift
var parentViewController: UIViewController?
func findView<T>() -> T?
func addSubSwiftUIView<Content>(_ swiftUIView: Content) where Content: View
func addBorders(to edges: UIRectEdge, borderColor: UIColor, borderWidth: CGFloat)
```
Bump min iOS version to 10 when using SPM. This is just to fix a warning from Xcode 12.
#### Enhancements
- UIViewControllerExtension:
```swift
var preview: some View
```
- BindingExtension:
```swift
static func mock(_ value: Value) -> Self {
```
- MutableCollection:
```swift
mutating func sort<T: Comparable>(by keyPath: KeyPath<Element, T>, order: (T, T) -> Bool = (<))
```
- SequenceExtension:
```swift
func sorted<T: Comparable>(by keyPath: KeyPath<Element, T>, order: (T, T) -> Bool = (<)) -> [Element]
```
- UITableViewExtension:
```swift
func register<T: UITableViewCell>(cellType: T.Type) where T: Reusable & NibLoadable
func register<T: UITableViewCell>(cellType: T.Type) where T: Reusable
func dequeueReusableCell<T: UITableViewCell>(for indexPath: IndexPath, cellType: T.Type = T.self) -> T where T: Reusable
func register<T: UITableViewHeaderFooterView>(headerFooterViewType: T.Type) where T: Reusable & NibLoadable
func register<T: UITableViewHeaderFooterView>(headerFooterViewType: T.Type) where T: Reusable
func dequeueReusableHeaderFooterView<T: UITableViewHeaderFooterView>(_ viewType: T.Type = T.self) -> T? where T: Reusable
```
- UICollectionViewCellExtension:
```swift
func register<T: UICollectionViewCell>(cellType: T.Type) where T: Reusable & NibLoadable
func register<T: UICollectionViewCell>(cellType: T.Type) where T: Reusable T.self) -> T where T: Reusable
func register<T: UICollectionReusableView>(supplementaryViewType: T.Type, ofKind elementKind: String) where T: Reusable & NibLoadable
func register<T: UICollectionReusableView>(supplementaryViewType: T.Type, ofKind elementKind: String) where T: Reusable
func dequeueReusableSupplementaryView<T: UICollectionReusableView>(ofKind elementKind: String, for indexPath: IndexPath, viewType: T.Type = T.self) -> T where T: Reusable
```
- Protocols:
```swift
protocol NibLoadable: AnyObject
protocol NibOwnerLoadable: AnyObject
protocol Reusable: AnyObject
typealias NibReusable = Reusable & NibLoadable
```
#### Enhancements
- UIFontExtension:
```swift
class func dynamicStyle(_ style: UIFont.TextStyle, traits: UIFontDescriptor.SymbolicTraits?, sizeCategory: UIContentSizeCategory = .large) -> UIFont
```
- UILabelExtension:
```swift
func configureDynamicStyle(_ style: UIFont.TextStyle, traits: UIFontDescriptor.SymbolicTraits? = nil, minimumScaleFactor: CGFloat = 0.8)
```
- UITextFieldExtension:
```swift
func configureDynamicStyle(_ style: UIFont.TextStyle, traits: UIFontDescriptor.SymbolicTraits? = nil, adjustToFit: Bool = true)
```
- UITextViewExtension:
```swift
func configureDynamicStyle(_ style: UIFont.TextStyle, traits: UIFontDescriptor.SymbolicTraits? = nil)
```
#### Bugfixes
- Fixed missing swift sources added to the targets when using CocoaPods to embed SwiftyUtils
#### Enhancements
- Completing missing unit tests
- Adding documentation to the code
- Adding `UIElementPreview`, an easy way to generate mulitple SwiftUI previews with different configuration
- BundleExtension:
```swift
var displayName: String
```
- DictionaryExtension
```swift
func toData(options: JSONSerialization.WritingOptions = []) throws -> Data?
```
- DataExtension:
```swift
func toDictionary(options: JSONSerialization.ReadingOptions = []) throws -> [String: Any]?
```
- NSAttributedStringExtension:
```swift
func isAttributeActivated(_ attribute: NSAttributedString.Key, appliedOn text: String, value: Any) -> Bool
```
- UIApplicationExtension:
```swift
func openAppSettings()
func openAppStoreReviewPage(_ url: URL)
```
- UIButtonExtension:
```swift
func addRightImage(_ image: UIImage?, offset: CGFloat)
```
- UICollectionViewCellExtension:
```swift
func applyCornerRadius(_ radius: CGFloat)
func animate(scale: Bool, duration: TimeInterval = 0.35, transformScale: CGFloat = 0.97, damping: CGFloat = 0.7, options: UIView.AnimationOptions = [], delay: TimeInterval = 0.0, velocity: CGFloat = 0.0, completion: ((Bool) -> Void)? = nil)
```
- UIViewExtension:
```swift
func findView(forIdentifier identifier: String) -> UIView?
func addConstraints(to edges: UIRectEdge = .all, insets: UIEdgeInsets = .zero)
func applyCornerRadius(_ radius: CGFloat, maskedCorners: CACornerMask [.layerMaxXMaxYCorner, .layerMaxXMinYCorner, .layerMinXMaxYCorner, .layerMinXMinYCorner])
```
- UIViewController:
```swift
var isModal: Bool
func addChildController(_ controller: UIViewController, to subview: UIView, animated: Bool = true, duration: TimeInterval = 0.35, options: UIView.AnimationOptions = [.curveEaseInOut, .transitionCrossDissolve])
func addChild(_ child: UIViewController, in containerView: UIView)
func removeChildController(_ child: UIViewController)
func openSafariVC(withURL url: URL, delegate: SFSafariViewControllerDelegate, tintColor: UIColor = .black, barTintColor: UIColor = .white, barCollapsing: Bool = true)
```
- PropertyWrappers:
```swift
@UserDefaultsBacked(key: "defaults_key", defaultValue: 20)
var defaultValue: Int
@UserDefaultsBacked(key: "default_key2")
var defaultKey2: String?
```
#### Bugfixes
Fixed SPM compilation
#### API breaking changes
- Xcode 11 and Swift 5 support
#### Enhancements
- Moving from Travis to Github Actions
- Updating Swiftlint and fix all related warnings
#### Bugfixes
- Fixed SPM support
#### API breaking changes
- Xcode 10.2 and Swift 5 support
#### Enhancements
- Added Data extensions
- data to hex string
- hex string to data
- data to UInt8 array
- Added SystemUtility struct with shell command access
- added ip address validation extension to String