Changelog History
Page 1
-
v8.0.0 Changes
August 26, 2025๐ This release brings many great improvements and bug fixes. Thanks to our awesome contributors!
For a complete list of changes, please refer to the CHANGELOG.
-
v7.0.0 Changes
October 18, 2024๐ This release brings many great improvements and bug fixes. Thanks to our awesome contributors!
For a complete list of changes, please refer to the CHANGELOG.
-
v6.2.0 Changes
April 05, 2024๐ This release brings many great improvements and bug fixes. Thanks to our awesome contributors!
For a complete list of changes, please refer to the CHANGELOG.
-
v6.1.1 Changes
March 22, 2024๐ This release brings many great improvements and bug fixes. Thanks to our awesome contributors!
For a complete list of changes, please refer to the CHANGELOG.
-
v6.1.0 Changes
March 22, 2024๐ This release brings many great improvements and bug fixes. Thanks to our awesome contributors!
For a complete list of changes, please refer to the CHANGELOG.
-
v6.0.0 Changes
October 13, 2023๐ This release brings many great improvements and bug fixes. Thanks to our awesome contributors!
For a complete list of changes, please refer to the CHANGELOG.
-
v5.3.0 Changes
August 01, 2022๐ฅ Breaking Change
- Sequence
- UIView
- Rename
shadowColor,shadowOffset,shadowOpacityandshadowRadiustolayerShadowColor,layerShadowOffset,layerShadowOpacityandlayerShadowRadiusto avoid naming collisions with subclasses properties defined in other modules e.g. UIKit. #897 by LucianoPAlmeida - Rename
borderColor,borderWidthandcornerRadiustolayerBorderColor,layerBorderWidth, andlayerCornerRadiusto avoid naming collisions with subclasses properties defined in other modules e.g. UIKit. #972 by Jayxiang
- Rename
โ Added
- SCN3Vector
- Added
normalizedmethod, and basic division functions (SCNVector3 / scalar, andSCNVector3 /= scalar. #908 by thisIsTheFoxe
- Added
- Dictionary
- Added
pick(keys:)to pick part of a dictionary with specified keys. #911 by MaratIbragimov
- Added
- UIScrollView
- โ XCTest
- BinaryInteger
- Added
bytesandinit?(bytes:)to make it easier to work with bytes (as[UInt8]). #987 by thisIsTheFoxe
- Added
- FloatingPoint
- Collection
- UIViewController:
- String:
- Added
fullNSRange,range(from:),nsRange(from:)andsubscriptfor converting betweenRange<String.Index>andNSRange. #902 by guykogus - Overloaded Swift's 'contains' operator (
~=) forStringto check regex matching. #858 by VatoKo regexEscaped, which returns an escaped string for inclusion in a regex pattern- Added
matches(regex:options:)and the~= regexto check directly against NSRegularExpression. Also addedreplacingOccurrences(regex:template:options:searchRange:)as a more convenient way to replace NSRegularExpressions. #901 by gurgeous
- Added
- DispatchQueue:
- RangeReplaceableCollection:
- Sequence:
- Added
contains(_:)forHashableelements for performance improvement. #912 by guykogus - Added
first(where:equals:)to find the first element of the sequence with having property by given key path equals to given value. #836 by hamtiko - Added
last(where:equals:)to find the last element of the sequence with having property by given key path equals to given value. #838 by hamtiko
- Added
- SKNode:
- CGSize:
- WKWebView:
- HKActivitySummary:
- Added
isStandGoalMet,isExerciseTimeGoalMet, andisEnergyBurnedGoalMet. #875 by lhygilbert
- Added
- UIView:
- Added
masksToBounds(IBInspectable) extension. #877 by hamtiko - Added
loadFromNib(withClass:), which loads a UIView of a particular type from a nib file. #885 by gurgeous - Added
findConstraintfor finding an existing constraint. #886 by gurgeous - Added
widthConstraint,heightConstraint,leadingConstraint,trailingConstraint,topConstraint, andbottomConstraintfor finding specific constraints. #886 by gurgeous - Added
UIView.subviews(ofType:)extension which returns all the subviews of a given type recursively in the view hierarchy rooted on the view it its called. #993 by ashercoelho - Added
UIStackView.swap(_ view1:, _ view2:)extension which exchanges two views that are arranged in the stack. #989 by salahamassi
- Added
- UIImage
- Added
averageColor, which calculates the average UIColor for an entire image. #884 by gurgeous - Added
withAlwaysOriginalTintColor(_:)returns a new version of the image with a tint color that uses the .alwaysOriginal rendering mode. #886 by [jayxiang][https://github.com/jayxiang]
- Added
- StringProtocol
- Measurement
- Added
.degrees(_:),arcMinutes(_:),arcSeconds(_:),radians(_:),gradians(_:)andrevolutions(_:)to conveniently initialize measurement with corresponding unit. #936 by Shiva Huang
- Added
- UITextField
- Added
addToolbar(items:height:)to add a toolbar to aUITextField. #954 by Randhir Kumar
- Added
- URL
- Added the
(unsafeString: String)initializer forURLas a more conveniently to construct unsafeURLs fromStringby jevonmao
- Added the
- MKMultiPoint
- Added
.coordinatesproperty, to return an array of coordinates for the providedMKMultiPoint. #990 by @rizwankce.
- Added
- NSAttributedString
- Added
Array.joined(separator:)to create a newNSAttributedStringby concatenating the elements of the sequence, adding the given separator between each element. #985 by Roman Podymov.
- Added
- UIButton
- Added
setAttributedTitleForAllStates,attributedTitleForDisabled,attributedTitleForHighlighted,attributedTitleForNormalandattributedTitleForSelectedfor convenient work with attributed strings. #1001 by Roman Podymov.
- Added
- Digest
- Added
hexStringto get a hexadecimal representation for all digest typed inCryptoKit(e.g.SHA216Digest,SHA512Digest,MD5Digest, ...). #1026 by Marco Eidinger.
- Added
๐ Changed
- NSAttributedString:
- Color:
- Refactored
init(light:dark:)to remove deployment target version restrictions. #844 by VincentSit. - Use
enumto declare namespace instead of usingstruct. Thus private initializer is no longer needed. #927 by Shiva Huang - Add
init?(argbHexString:)to support the common ARGB format used in Android. #971 by yonat
- Refactored
- CAGradientLayer:
- UITextField:
- UIAlertController:
- Mark
showmethod as unavailable foriOSAppExtensiontargets. #918 by LucianoPAlmeida
- Mark
- UIRefreshControl:
- SKSpriteNode:
- Added
aspectFill(to:)to size SKSpriteNode with respect to aspect ratio. #490 by erikdrobne.
- Added
๐ Deprecated
- Sequence:
- Marked
map(by:),compactMap(by:),filter(by:)as deprecated in favor use of Key Path expressions as functions feature in Swift 5.3. #862 by Roman Podymov.
- Marked
โ Removed
- UIDatePicker
- MKPolyline
- Removed
.coordinatesproperty, in favour of.coordinatesproperty fromMKMultiPoint. SinceMKPolylineextends fromMKMultiPointit should work fine. #990 by @rizwankce.
- Removed
๐ Fixed
- Collection
- CAGradientLayer:
- CAGradientLayer extensions inaccessible through internal level protection. #856 by Den Andreychuk.
- StringExtensions.swift:
- Fixed a bug: When the length of a string is 0, calling truncated method will crash. #866 by phil zhang
- Fixed
String.base64Decodedmaking it a safe decode by ignore non-base64 characters. #961 by Jayxiang
- UITextField
- UIImage
- UIView
- ColorExtension:
- Fixed a bug:
Color.FlatUIcan be initialized. by Shiva Huang - Fixed
Color.init?(hexString: String, transparency: CGFloat = 1)was not handling uppercase0Xin hex prefix #947 by Zero.D.Saber
- Fixed a bug:
- URLExtension
๐ Security
-
v5.2.0 Changes
April 05, 2020โ Added
- CATransform3D:
identity,isIdentity,init(translationX:y:z:),init(scaleX:y:z:),init(rotationAngle:x:y:z:),translatedBy(x:y:z:),scaledBy(x:y:z:),rotated(by:x:y:z:),inverted(),concatenating(_:),translateBy(x:y:z:),scaleBy(x:y:z:),rotate(by:x:y:z:),invert(),concatenate(_:),isAffineandaffineTransform(). Also conforms toCodableandEquatable. #819 by guykogus
- CGAffineTransform:
- NotificationCenter:
- Optional:
- CoreLocation:
- Added
Array where Element: CLLocation extensionand addeddistance(unitLength:)function. #799 by trevorphillips
- Added
- Decodable:
- Added
init?(data:decoder:)to decodeDecodable(Codable) type models. #797 by Mustafa GUNES.
- Added
- CLVisit:
- Created
CLVisit Extensionand addedlocationproperty. #792 by trevorphillips
- Created
- EdgeInsets:
- Array:
- Added
sorted(like:keyPath:)to sort an array like another array based on a key path. #772 by MaxHaertwig.
- Added
- MKMapView:
- Added
zoom(to:meter:edgePadding:animated:)method to zoom multipleMKMapViewcoordinates. #723 by Mustafa GUNES.
- Added
- Dictionary:
- RangeReplaceableCollection:
- Added
removeDuplicates(keyPath:)for removing duplicate elements based on key path. #737 by Ilya Glushchuk. - Added
appendIfNonNil(_:)andappendIfNonNil(contentsOf:)methods that can append optional elements and sequences. #966 by jevonmao
- Added
- Color:
- Added
init(light:dark:)to create an NSColor/UIColor with different variations for light and dark mode. Only available in iOS/tvOS 13.0, macOS 10.15. #722 by MaxHaertwig.
- Added
- String:
- NSRegularExpression:
- Added
enumerateMatches(in:options:range:using:),matches(in:options:range:),numberOfMatches(in:options:range:),firstMatch(in:options:range:),rangeOfFirstMatch(in:options:range:),stringByReplacingMatches(in:options:range:withTemplate:),replaceMatches(in:options:range:withTemplate:), which useStringandString.Rangein place ofNSStringandNSRangeto make the calls Swifter. #727 by guykogus.
- Added
- UIBarButtonItem:
- Added
flexibleSpaceandfixedSpace(width:)extensions to UIBarButtonItem to simplify the creation of spacers. #728 by MaxHaertwig.
- Added
- UIImage:
- Added missing test for
compressedData(quality:). #786 by thisIsTheFoxe - Added
withBackgroundColor(_:)to specify a background color for a partially transparent image. #721 by MaxHaertwig. - Added
init?(base64String:)to create aUIImagefrom a base-64String. #741 by @thisIsTheFoxe - Added
pngBase64String(),jpegBase64String(compressionQuality:)which return a Base 64Stringrepresentation of theUIImages PNG or JPEG data. #747 by Moritz Sternemann. - Added
init?(url:scale:)to initialize aUIImagewith a given url and scale factor. #753 by mmdock
- Added missing test for
- CAGradientLayer:
- Added
init(colors:locations:startPoint:endPoint:type:)convenience initializer. #726 by JayMehta97.
- Added
- Sequence:
- Added
sum(for:)to sum up anAdditiveArithmeticproperty, referenced byKeyPath, of all elements in a sequence. #736 by Moritz Sternemann. - Added
sorted(by:and:)andsorted(by:and:and:)to obtain a sorted sequence based on multiple key paths. #796 by MaxHaertwig. - Added
map(by:)to map the sequence elements by a given key path. #763 by Roman Podymov. - Added
compactMap(by:)to map the sequence elements by a given key path to the non-nil elements array. #766 by Roman Podymov. - Added
filter(by:)to filter the sequence elements by a given boolean key path. #771 by Roman Podymov.
- Added
- MutableCollection:
- Added
assignToAll(value:keyPath:)to assign given value to fieldkeyPathof every element in the collection. #759 by cyber-gh. - Added
sort(by:and:)andsort(by:and:and:)to sort a sequence based on multiple key paths. #796 by MaxHaertwig.
- Added
- KeyedDecodingContainer:
- Locale:
- URLRequest:
- SKProduct:
- Added
localizedPriceto get localized price of product. #781 by strawb3rryx7.
- Added
- CGRect
- Added property
center. #814 by qchenqizhi. - Added initializer
init(center:size:)to createCGRectwith center and size. #814 by qchenqizhi. - Added
resizing(to:anchor:)to createCGRectby resizing with anchor. #814 by qchenqizhi.
- Added property
๐ Changed
- Collection:
- UIImage:
- UIImage:
- Sequence:
- NSAttributedString:
- Update
applying(attributes: [NSAttributedString.Key : Any], toRangesMatching pattern: String)to respondapplying(attributes: [NSAttributedString.Key : Any], toRangesMatching pattern: String, options: NSRegularExpression.Options = [])signature to support regular expression options. #791 by DimaZava
- Update
- UIButton:
- Refactored
centerTextAndImage(spacing:): now the image position can be above the text, by setting a new parameterimageAboveTexttotrue. #807 by qchenqizhi.
- Refactored
- String:
๐ Fixed
- ๐ Fixed build error occurring when building AppKit extensions for macCatalyst. #762 by MaxHaertwig.
- ๐ Fixed
String.base64Decodedmaking it a safe decode by including padding on the string. #801 by LucianoPAlmeida. - ๐ Fixed
UIImage.cropped(to:)making it work correctly with scaled image. #811 by qchenqizhi.
- CATransform3D:
-
v5.1.0 Changes
September 23, 2019โ Added
Array:
- Added
withoutDuplicates(keyPath:)for filtering duplicate elements based on key path. #704 by RomanPodymov.
- Added
Sequence:
- Added
withoutDuplicates(transform:)for remove duplicate elements based on condition in a sequence. #666 by saucym - Added
sorted(by:with:)to return sorted array from aSequencewith by a given keyPath using a compare function. #712 by LucianoPAlmeida
- Added
MutableCollection:
- Added
sort(by:with:)to sort aCollectionwith by a given keyPath using a compare function. #712 by LucianoPAlmeida
- Added
String
CGSize:
- Added
aspectRatio,maxDimension, andminDimensionproperties. #662 by MaxHaertwig.
- Added
SCNBox:
- Added
init(width:height:length:),init(sideLength:chamferRadius:),init(width:height:length:chamferRadius:material:),init(sideLength:chamferRadius:material:),init(width:height:length:chamferRadius:color:), andinit(sideLength:chamferRadius:color:)convenience initializers. #660 by MaxHaertwig.
- Added
SCNCapsule:
- Added
init(capDiameter:height),init(capRadius:height:material:),init(capDiameter:height:material:),init(capRadius:height:color:), andinit(capDiameter:height:color:)convenience initializers. #660 by MaxHaertwig.
- Added
SCNCone:
- Added
init(topDiameter:bottomDiameter:height),init(topRadius:bottomRadius:height:material:),init(topDiameter:bottomDiameter:height:material:),init(topRadius:bottomRadius:height:color:), andinit(topDiameter:bottomDiameter:height:color:)convenience initializers. #660 by MaxHaertwig.
- Added
SCNCylinder:
- Added
init(diameter:height),init(radius:height:material:),init(diameter:height:material:),init(radius:height:color:), andinit(diameter:height:color:)convenience initializers. #660 by MaxHaertwig
- Added
SCNGeometry:
- Added
boundingSizeproperty to get the size of the geometry's bounding box. #660 by MaxHaertwig.
- Added
SCNMaterial:
- Added
init(color:)convenience initializer. #660 by MaxHaertwig.
- Added
SCNPlane:
- Added
init(width:),init(width:height:material:),init(width:material:),init(width:height:color:), andinit(width:color:)convenience initializers. #660 by MaxHaertwig.
- Added
SCNShape:
- Added
init(path:extrusionDepth:material:)andinit(path:extrusionDepth:color:)convenience initializers. #660 by MaxHaertwig.
- Added
SCNSphere:
- Added
init(diameter:),init(radius:material:),init(radius:color:),init(diameter:material:), andinit(diameter:color:)convenience initializers. #660 by MaxHaertwig.
- Added
SCNVector3:
- Added
absoluteproperty to calculate the vector's components as absolute values. #660 by MaxHaertwig. - Added
lengthproperty to calculate the vector's length. #660 by MaxHaertwig.
- Added
UICollectionView:
Sequence:
UIBezierPath:
- Added
init(from:to:),init(points:),init(polygonWithPoints:),init(ovalOf:centered:)andinit(rectOf:centered:)convenience initializers. #659 by MaxHaertwig.
- Added
๐ Changed
UIApplication:
- Refactored
queryValue(for:)extension for URL. #668 by LucianoPAlmeida.
- Refactored
Sequence:
๐ Deprecated
- Array:
- Deprecated
sorted(by:, ascending)andsort(by:ascending)in favor ofsorted(by:with:)andsort(by:with:)#712 by LucianoPAlmeida
- Deprecated
โ Removed
Character:
- Removed
isNumber,isLetter,isLowercased,isUppercasedandisWhiteSpacebecause the same properties are defined in the Swift standard library. #689 by RomanPodymov.
- Removed
Array:
๐ Fixed
UIApplication:
- Resolved an issue where
versionwould return the wrong Info.plist value. - Resolved an issue where
versionanddisplayNamewould return nil if localized.
- Resolved an issue where
UIImage:
- The size of rect can equal to the size of UIImage when using
cropped(to:)to crop UIImage. #679 by dirtmelon. scaled(toHeight:opaque:)andscaled(toWidth:opaque:)will now keep the original scale of UIImage. #703 by ShannonChou
- The size of rect can equal to the size of UIImage when using
UITableView:
-
v5.0.0 Changes
March 31, 2019โ Added
- ๐ Swift 5.0 Support
- Updated the project to Xcode 10.2
- Removed unnecessary
publicstatements.
- ๐ง Linux Support
- Support for Linux running Swift 5.0 using Swift Package Manager.
- UIApplication:
- Added
inferredEnvironmentto get current inferred app environment. by omaralbeik - Added
displayNameto get application name. by omaralbeik - Added
buildNumberto get application build number. by omaralbeik - Added
versionto get application version number. by omaralbeik
- Added
- Optional:
- Added
nonEmptyto get the collection only if it is not nill and not empty. by omaralbeik
- Added
- FileManager:
- UILabel:
- Added
init(text:style)to create aUILabelwith a text and font style. #607 by marcocapano
- Added
- UIViewController
- Added
presentPopover(_:sourcePoint:size:delegate:animated:completion:)method to quickly present aUIViewControlleras a popover. #593 by marcocapano
- Added
- Sequence:
- Added
duplicates()for getting the duplicated elements in a sequence. #605 by dylancfe15
- Added
- Date:
- โ Added
tomorrowcomputed property to get tomorrow's date avoiding callingadding(_:value:)function. (Completes PR #578) #587 by AlexeiGitH - Dictionary:
- Added
Dictionary[path:]subscript for deep fetching/setting nested values. #574 by @calebkleveter
- Added
- UIColor:
- Added
whatsAppcolor constant to social struct. #581 by staffler-xyz
- Added
- DispatchQueue:
- BidirectionalCollection:
- BinaryFloatingPointExtensions:
- UIActivity:
- Added
ActivityTypeconstants for iCloud Drive, WhatsApp, LinkedIn and XING. #580 by staffler-xyz
- Added
- MKMapView
- Added 'register(annotationViewWithClass:)
,dequeueReusableAnnotationView(withClass:)anddequeueReusableAnnotationView(withClass:annotation)` methods. #629 by staffler-xyz
- Added 'register(annotationViewWithClass:)
๐ Changed
- Character:
- Added more cases to
isEmoji. by omaralbeik
- Added more cases to
- String:
- Added more cases to
isEmoji. by omaralbeik - Made
camelize,latinize,reverse,slice,trim,truncate,urlDecode,urlEncode,padStart, andpadEndreturn adiscardableResultself. by omaralbeik
- Added more cases to
- Examples:
- StringProtocol:
- Removing Index constraint on
commonSuffixextension and improving performance and tests. #606 by LucianoPAlmeida.
- Removing Index constraint on
- RangeReplaceableCollection:
Arrayextensionskeep(while: ),take(while: )andskip(while:)are nowRangeReplaceableCollectionextensions. #634 by LucianoPAlmeida.
- Date:
- Fixed
yesterdaycomputed property to be calculated using Calendar.date(byAdding:to:) instead of date.addingTimeInterval(-86400) #641 by AlexeiGitH.
- Fixed
๐ Fixed
- UIImageView:
- Fixed
downloadfunction to useunowned self. by omaralbeik
- Fixed
- Installation:
- UIImage:
- Fixed
cropped(to:)size checking. #575 by ilyahal - Fixed
tint(_ color:, blendMode:)upside-down image. #639 by LucianoPAlmeida.
- Fixed
- NSAttributedString:
- Fixed
attributesproperty crash when the string is empty. #617 by LucianoPAlmeida.
- Fixed
- Date:
- Fixed
yesterdaycomputed property to be calculated using Calendar.date(byAdding:to:) instead of date.addingTimeInterval(-86400) #641 by AlexeiGitH. - Fixed
tomorrowcomputed property to be calculated using Calendar.date(byAdding:to:) instead of date.addingTimeInterval(86400) #642 by AlexeiGitH.
- Fixed
โ Removed
- SwifterSwift:
- Breaking Change Removed
SwifterSwiftby omaralbeik.
- Breaking Change Removed
- Collection:
- Removed
firstIndex(where: ),firstIndex(of:),lastIndex(where: ),lastIndex(of:)which are no longer needed. #637 by marcocapano
- Removed
- Date:
CI
- โก๏ธ Updated Travis to use the new
xcode10.2osx_image. - โ Added Fastlane to automate the releasing process for maintainers.
- ๐ Swift 5.0 Support