All Versions
48
Latest Version
Avg Release Cycle
161 days
Latest Release
295 days ago

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
      • Remove last(where:) and move last(where:equals:) to BidirectionalCollection, since it only makes semantic sense for ordered sequences. #912 by guykogus
    • UIView
      • Rename shadowColor, shadowOffset, shadowOpacity and shadowRadius to layerShadowColor, layerShadowOffset, layerShadowOpacity and layerShadowRadius to avoid naming collisions with subclasses properties defined in other modules e.g. UIKit. #897 by LucianoPAlmeida
      • Rename borderColor, borderWidth and cornerRadius to layerBorderColor, layerBorderWidth, and layerCornerRadius to avoid naming collisions with subclasses properties defined in other modules e.g. UIKit. #972 by Jayxiang

    โž• Added

    • SCN3Vector
      • Added normalized method, and basic division functions (SCNVector3 / scalar, and SCNVector3 /= scalar. #908 by thisIsTheFoxe
    • Dictionary
      • Added pick(keys:) to pick part of a dictionary with specified keys. #911 by MaratIbragimov
    • UIScrollView
      • Added visibleRect, scrollToTop(animated:), scrollToLeft(animated:), scrollToBottom(animated:), scrollToRight(animated:), scrollUp(animated:), scrollLeft(animated:), scrollDown(animated:), scrollRight(animated:). #888 by guykogus
    • โœ… XCTest
      • Added XCTAssertEqual(_:_:accuracy:_:file:line:) for checking if Color objects are equal within a given level of accuracy. #889 by guykogus
    • BinaryInteger
      • Added bytes and init?(bytes:) to make it easier to work with bytes (as [UInt8]). #987 by thisIsTheFoxe
    • FloatingPoint
      • Moved the square root operator โˆš from Double and Float to make it generic. #880 by guykogus
    • Collection
      • Added fullRange to get the entire range of indices in a collection. #902 by guykogus
      • Moved indices(of:) from RandomAccessCollection to find the indices of an element. #863 by guykogus
    • UIViewController:
      • Added instantiate(from:bundle:identifier:) function to UIViewController to make it easier to instantiate it from storyboard. #860 by VatoKo
    • String:
      • Added fullNSRange, range(from:), nsRange(from:) and subscript for converting between Range<String.Index> and NSRange. #902 by guykogus
      • Overloaded Swift's 'contains' operator (~=) for String to check regex matching. #858 by VatoKo
      • regexEscaped, which returns an escaped string for inclusion in a regex pattern
      • Added matches(regex:options:) and the ~= regex to check directly against NSRegularExpression. Also added replacingOccurrences(regex:template:options:searchRange:) as a more convenient way to replace NSRegularExpressions. #901 by gurgeous
    • DispatchQueue:
      • Added asyncAfter(delay:qos:flags:execute:) method to use it more conveniently without typing unnecessary .now() + delay. #859 by VatoKo
      • Re-added debounce(delay:action:) for only executing a closure once using a throttle delay. #869 by guykogus
    • RangeReplaceableCollection:
      • subscript(offset:) and subscript(range:) to access and replace elements by the index offsets. #826 by guykogus
    • Sequence:
      • Added contains(_:) for Hashable elements 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
    • SKNode:
      • center, topLeft, topRight, bottomLeft, bottomRight to get anchor position or set position using anchor. #835 by rypyak
    • CGSize:
      • Added new +, +=, - and -= operator extensions for tuple (width: CGFloat, height: CGFloat). #841 by hamtiko
    • WKWebView:
      • Added loadURL(_:) and loadURLString(_:) extensions for WkWebView. #851 by hamtiko
    • HKActivitySummary:
      • Added isStandGoalMet, isExerciseTimeGoalMet, and isEnergyBurnedGoalMet. #875 by lhygilbert
    • 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 findConstraint for finding an existing constraint. #886 by gurgeous
      • Added widthConstraint, heightConstraint, leadingConstraint, trailingConstraint, topConstraint, and bottomConstraint for 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
    • 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]
    • StringProtocol
      • Added replacingOccurrences(ofPattern:withTemplate:options:searchRange:) as a more convenient way to replace patterns. #901 by gurgeous
    • Measurement
      • Added .degrees(_:), arcMinutes(_:), arcSeconds(_:), radians(_:), gradians(_:) and revolutions(_:) to conveniently initialize measurement with corresponding unit. #936 by Shiva Huang
    • UITextField
      • Added addToolbar(items:height:) to add a toolbar to a UITextField. #954 by Randhir Kumar
    • URL
      • Added the (unsafeString: String) initializer for URL as a more conveniently to construct unsafe URLs from String by jevonmao
    • MKMultiPoint
      • Added .coordinates property, to return an array of coordinates for the provided MKMultiPoint. #990 by @rizwankce.
    • NSAttributedString
      • Added Array.joined(separator:) to create a new NSAttributedString by concatenating the elements of the sequence, adding the given separator between each element. #985 by Roman Podymov.
    • UIButton
      • Added setAttributedTitleForAllStates, attributedTitleForDisabled, attributedTitleForHighlighted, attributedTitleForNormal and attributedTitleForSelected for convenient work with attributed strings. #1001 by Roman Podymov.
    • Digest
      • Added hexString to get a hexadecimal representation for all digest typed in CryptoKit (e.g. SHA216Digest, SHA512Digest,MD5Digest, ...). #1026 by Marco Eidinger.

    ๐Ÿ”„ Changed

    • NSAttributedString:
      • bolded maintains font size and works on all platforms except Linux. italicized maintains font size and works on all platforms except Linux and macOS. #900 by guykogus
      • applying(attributes:) changed access modifier from fileprivate to public. #832 by cHaLkdusT
    • Color:
      • Refactored init(light:dark:) to remove deployment target version restrictions. #844 by VincentSit.
      • Use enum to declare namespace instead of using struct. 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
    • CAGradientLayer:
      • In init(colors:locations:startPoint:endPoint:type:) added default values to startPoint and endPoint. #864 by guykogus
    • UITextField:
      • Added addPaddingRight,addPaddingRightIconextension,#878 by Jayxiang
    • UIAlertController:
    • UIRefreshControl:
      • Add beginRefreshing(animated:sendAction:) that works inside any UIScrollView and not only UITableView. #949 by yonat
    • SKSpriteNode:
      • Added aspectFill(to:) to size SKSpriteNode with respect to aspect ratio. #490 by erikdrobne.

    ๐Ÿ—„ 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.

    โœ‚ Removed

    • UIDatePicker
      • Disabled textColor when compiling for target macCatalyst as it will crash. #864 by guykogus
    • MKPolyline
      • Removed .coordinates property, in favour of .coordinates property from MKMultiPoint. Since MKPolyline extends from MKMultiPoint it should work fine. #990 by @rizwankce.

    ๐Ÿ›  Fixed

    • Collection
      • indices(where:), forEach(slice:body:) can be used on a collection with any index type. average() can be used on any integer element type. #863 by guykogus
    • 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.base64Decoded making it a safe decode by ignore non-base64 characters. #961 by Jayxiang
    • UITextField
      • Fixed a bug:UITextField addPaddingLeftIcon doesn't work on iOS 13#876 by Jayxiang
    • UIImage
      • Fixed a bug:UIImage rotated(by:) lose origin scale, result in image blurred#904 by yanpanpan
    • UIView
      • Fixed rotate(toAngle) to rotate to an angle instead of by an angle, as raised in #935. #1019 by guykogus
    • ColorExtension:
      • Fixed a bug: Color.FlatUI can be initialized. by Shiva Huang
      • Fixed Color.init?(hexString: String, transparency: CGFloat = 1) was not handling uppercase 0X in hex prefix #947 by Zero.D.Saber
    • URLExtension
      • Fixed deletingAllPathComponents() and deleteAllPathComponents to handle empty paths, as raised in #1012. #1018 by guykogus

    ๐Ÿ”’ 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(_:), isAffine and affineTransform(). Also conforms to Codable and Equatable. #819 by guykogus
    • CGAffineTransform:
    • NotificationCenter:
      • observeOnce(forName:object:queue:using:) for observing a single posting of a notification. #812 by guykogus
    • Optional:
      • Conform to Equatable when Wrapped is RawRepresentable and its RawValue is Equatable. #804 by guykogus
    • CoreLocation:
      • Added Array where Element: CLLocation extension and added distance(unitLength:) function. #799 by trevorphillips
    • Decodable:
      • Added init?(data:decoder:) to decode Decodable (Codable) type models. #797 by Mustafa GUNES.
    • CLVisit:
    • EdgeInsets:
      • Unified UIEdgeInsets and NSEdgeInsets into a single typealias, EdgeInsets, similar to what we do with UIColor and NSColor. For the tests to function it was required to add the static zero property to NSEdgeInsets and to make it conform to Equatable. #785 by guykogus
    • Array:
      • Added sorted(like:keyPath:) to sort an array like another array based on a key path. #772 by MaxHaertwig.
    • MKMapView:
      • Added zoom(to:meter:edgePadding:animated:) method to zoom multiple MKMapView coordinates. #723 by Mustafa GUNES.
    • Dictionary:
      • Added init(grouping:by:) to initialize a dictionary by grouping sequence from a hashable KeyPath. #751 by mmdock
    • RangeReplaceableCollection:
      • Added removeDuplicates(keyPath:) for removing duplicate elements based on key path. #737 by Ilya Glushchuk.
      • Added appendIfNonNil(_:) and appendIfNonNil(contentsOf:) methods that can append optional elements and sequences. #966 by jevonmao
    • 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.
    • String:
      • Added withPrefix(_:), which provides a method to add a prefix to a string. If the string already has that prefix, it simply returns the original string. #720 by Zach Frew.
    • 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 use String and String.Range in place of NSString and NSRange to make the calls Swifter. #727 by guykogus.
    • UIBarButtonItem:
      • Added flexibleSpace and fixedSpace(width:) extensions to UIBarButtonItem to simplify the creation of spacers. #728 by MaxHaertwig.
    • 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 a UIImage from a base-64 String. #741 by @thisIsTheFoxe
      • Added pngBase64String(), jpegBase64String(compressionQuality:) which return a Base 64 String representation of the UIImages PNG or JPEG data. #747 by Moritz Sternemann.
      • Added init?(url:scale:) to initialize a UIImage with a given url and scale factor. #753 by mmdock
    • CAGradientLayer:
      • Added init(colors:locations:startPoint:endPoint:type:) convenience initializer. #726 by JayMehta97.
    • Sequence:
      • Added sum(for:) to sum up an AdditiveArithmetic property, referenced by KeyPath, of all elements in a sequence. #736 by Moritz Sternemann.
      • Added sorted(by:and:) and sorted(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.
    • MutableCollection:
      • Added assignToAll(value:keyPath:) to assign given value to field keyPath of every element in the collection. #759 by cyber-gh.
      • Added sort(by:and:) and sort(by:and:and:) to sort a sequence based on multiple key paths. #796 by MaxHaertwig.
    • KeyedDecodingContainer:
      • Added decodeBoolAsIntOrString(key:) to try to decode a Bool as Int then String before decoding as Bool. #750 by FraDeliro.
      • Added decodeBoolAsIntOrStringIfPresent(key:) to try to decode a Bool as Int then String before decoding as Bool if present. #750 by FraDeliro.
    • Locale:
      • Added is12HourTimeFormat to indicate if locale has 12h format. #793 by DimaZava.
      • flagEmoji(forRegionCode:) to convert a region code into the corresponding flag emoji. #813 by guykogus
    • URLRequest:
      • init(string:relativeTo:) to allow initializing a URL with an optional String. #818 by guykogus
      • Added curlString property to get a cURL command representation of this URL request. #790 by DimaZava.
    • SKProduct:
    • CGRect
      • Added property center. #814 by qchenqizhi.
      • Added initializer init(center:size:) to create CGRect with center and size. #814 by qchenqizhi.
      • Added resizing(to:anchor:) to create CGRect by resizing with anchor. #814 by qchenqizhi.

    ๐Ÿ”„ Changed

    • Collection:
      • Refactored group(by:) to be generic for all Collections, not only where Index == Int. #758 by guykogus
    • UIImage:
      • Implemented filled(withColor:) using UIGraphicsImageRenderer when available. #733
      • Updated kilobytesSize to be computed independently from bytesSize #753 by mmdock
      • Updated init?(base64String:) to take in a scale factor paramater. #753 by mmdock
    • UIImage:
      • Refactored tint(_:blendMode:) using UIGraphicsImageRenderer if available. #731 by FraDeliro.
    • Sequence:
      • Corrected documentation for sorted(by:with:) and sorted(by:). #751 by mmdock
    • NSAttributedString:
      • Update applying(attributes: [NSAttributedString.Key : Any], toRangesMatching pattern: String) to respond applying(attributes: [NSAttributedString.Key : Any], toRangesMatching pattern: String, options: NSRegularExpression.Options = []) signature to support regular expression options. #791 by DimaZava
    • UIButton:
      • Refactored centerTextAndImage(spacing:): now the image position can be above the text, by setting a new parameter imageAboveText to true. #807 by qchenqizhi.
    • String:
      • Bug fix String[safe:], subscript should not crash. #816 by cHaLkdusT

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed build error occurring when building AppKit extensions for macCatalyst. #762 by MaxHaertwig.
    • ๐Ÿ›  Fixed String.base64Decoded making 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.

  • v5.1.0 Changes

    September 23, 2019

    โž• Added

    • Array:

      • Added withoutDuplicates(keyPath:) for filtering duplicate elements based on key path. #704 by RomanPodymov.
    • 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 a Sequence with by a given keyPath using a compare function. #712 by LucianoPAlmeida
    • MutableCollection:

      • Added sort(by:with:) to sort a Collection with by a given keyPath using a compare function. #712 by LucianoPAlmeida
    • String

      • isPalindrome computed property of String to check if it is a palindrome. #671 by cHaLkdusT.
    • CGSize:

      • Added aspectRatio, maxDimension, and minDimension properties. #662 by MaxHaertwig.
    • 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:), and init(sideLength:chamferRadius:color:) convenience initializers. #660 by MaxHaertwig.
    • SCNCapsule:

      • Added init(capDiameter:height), init(capRadius:height:material:), init(capDiameter:height:material:), init(capRadius:height:color:), and init(capDiameter:height:color:) convenience initializers. #660 by MaxHaertwig.
    • SCNCone:

      • Added init(topDiameter:bottomDiameter:height), init(topRadius:bottomRadius:height:material:), init(topDiameter:bottomDiameter:height:material:), init(topRadius:bottomRadius:height:color:), and init(topDiameter:bottomDiameter:height:color:) convenience initializers. #660 by MaxHaertwig.
    • SCNCylinder:

      • Added init(diameter:height), init(radius:height:material:), init(diameter:height:material:), init(radius:height:color:), and init(diameter:height:color:) convenience initializers. #660 by MaxHaertwig
    • SCNGeometry:

      • Added boundingSize property to get the size of the geometry's bounding box. #660 by MaxHaertwig.
    • SCNMaterial:

    • SCNPlane:

      • Added init(width:), init(width:height:material:), init(width:material:), init(width:height:color:), and init(width:color:) convenience initializers. #660 by MaxHaertwig.
    • SCNShape:

      • Added init(path:extrusionDepth:material:) and init(path:extrusionDepth:color:) convenience initializers. #660 by MaxHaertwig.
    • SCNSphere:

      • Added init(diameter:), init(radius:material:), init(radius:color:), init(diameter:material:), and init(diameter:color:) convenience initializers. #660 by MaxHaertwig.
    • SCNVector3:

      • Added absolute property to calculate the vector's components as absolute values. #660 by MaxHaertwig.
      • Added length property to calculate the vector's length. #660 by MaxHaertwig.
    • UICollectionView:

      • Added isValidIndexPath(_:) method to check whether given IndexPath is valid within UICollectionView. #695 by emilrb.
      • Added safeScrollToItem(at:at:animated:) method to safely scroll UICollectionView to the given IndexPath. #698 by emilrb
    • Sequence:

      • Moved divided(by:) ArrayExtensions to SequenceExtensions. This function separates all items into 2 lists based on a given predicate. #706 by cHaLkdusT
    • UIBezierPath:

      • Added init(from:to:), init(points:), init(polygonWithPoints:), init(ovalOf:centered:) and init(rectOf:centered:) convenience initializers. #659 by MaxHaertwig.

    ๐Ÿ”„ Changed

    • UIApplication:

    • Sequence:

    ๐Ÿ—„ Deprecated

    • Array:
      • Deprecated sorted(by:, ascending) and sort(by:ascending) in favor of sorted(by:with:) and sort(by:with:) #712 by LucianoPAlmeida

    โœ‚ Removed

    • Character:

      • Removed isNumber, isLetter, isLowercased, isUppercased and isWhiteSpace because the same properties are defined in the Swift standard library. #689 by RomanPodymov.
    • Array:

      • Removed divided(by:) function from ArrayExtensions #706 by cHaLkdusT

    ๐Ÿ›  Fixed

    • UIApplication:

      • Resolved an issue where version would return the wrong Info.plist value.
      • Resolved an issue where version and displayName would return nil if localized.
    • 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:) and scaled(toWidth:opaque:) will now keep the original scale of UIImage. #703 by ShannonChou
    • UITableView:

      • isValidIndexPath(_:) will now return false for IndexPaths with a negative row or section. #696 by emilrb.

  • v5.0.0 Changes

    March 31, 2019

    โž• Added

    • ๐Ÿ‘ Swift 5.0 Support
      • Updated the project to Xcode 10.2
      • Removed unnecessary public statements.
    • ๐Ÿง Linux Support
      • Support for Linux running Swift 5.0 using Swift Package Manager.
    • UIApplication:
      • Added inferredEnvironment to get current inferred app environment. by omaralbeik
      • Added displayName to get application name. by omaralbeik
      • Added buildNumber to get application build number. by omaralbeik
      • Added version to get application version number. by omaralbeik
    • Optional:
      • Added nonEmpty to get the collection only if it is not nill and not empty. by omaralbeik
    • FileManager:
      • Added createTemporaryDirectory() to create a directory for saving temporary files. #615 by guykogus
    • UILabel:
      • Added init(text:style) to create a UILabel with a text and font style. #607 by marcocapano
    • UIViewController
      • Added presentPopover(_:sourcePoint:size:delegate:animated:completion:) method to quickly present a UIViewController as a popover. #593 by marcocapano
    • Sequence:
      • Added duplicates() for getting the duplicated elements in a sequence. #605 by dylancfe15
    • Date:
    • โž• Added tomorrow computed property to get tomorrow's date avoiding calling adding(_:value:) function. (Completes PR #578) #587 by AlexeiGitH
      • Added random(in:) and random(in:using:) to generate random dates using the built-in random functions added to Swift 4.2. #576 by guykogus
    • Dictionary:
      • Added Dictionary[path:] subscript for deep fetching/setting nested values. #574 by @calebkleveter
    • UIColor:
    • DispatchQueue:
      • Added isMainQueue to check if current queue is main queue. #585 by jianstm
      • Added isCurrent(_:) to check if current queue is specified queue. #585 by jianstm
    • BidirectionalCollection:
      • Added subscript[offset:] to get element with negative offset. #582 by jianstm
    • BinaryFloatingPointExtensions:
      • Added rounded(numberOfDecimalPlaces:rule:) to get the rounded floating number with the specified number of decimal places. #583 by jianstm
    • UIActivity:
      • Added ActivityType constants for iCloud Drive, WhatsApp, LinkedIn and XING. #580 by staffler-xyz
    • MKMapView
      • Added 'register(annotationViewWithClass:),dequeueReusableAnnotationView(withClass:)anddequeueReusableAnnotationView(withClass:annotation)` methods. #629 by staffler-xyz

    ๐Ÿ”„ Changed

    • Character:
    • String:
      • Added more cases to isEmoji. by omaralbeik
      • Made camelize, latinize, reverse, slice, trim, truncate, urlDecode, urlEncode, padStart, and padEnd return a discardableResult self. by omaralbeik
    • Examples:
      • Replaced Examples.md with Examples.playground to let users try some examples out of extensions. #596 by maxxx777
    • StringProtocol:
      • Removing Index constraint on commonSuffix extension and improving performance and tests. #606 by LucianoPAlmeida.
    • RangeReplaceableCollection:
      • Array extensions keep(while: ), take(while: ) and skip(while:) are now RangeReplaceableCollection extensions. #634 by LucianoPAlmeida.
    • Date:
      • Fixed yesterday computed property to be calculated using Calendar.date(byAdding:to:) instead of date.addingTimeInterval(-86400) #641 by AlexeiGitH.

    ๐Ÿ›  Fixed

    • UIImageView:
      • Fixed download function to use unowned self. by omaralbeik
    • Installation:
      • Updated podspec to make the group paths in Pods project of SwifterSwift correct with Cocoapods installation. #590 by dklinzh
    • UIImage:
    • NSAttributedString:
    • Date:
      • Fixed yesterday computed property to be calculated using Calendar.date(byAdding:to:) instead of date.addingTimeInterval(-86400) #641 by AlexeiGitH.
      • Fixed tomorrow computed property to be calculated using Calendar.date(byAdding:to:) instead of date.addingTimeInterval(86400) #642 by AlexeiGitH.

    โœ‚ Removed

    • SwifterSwift:
      • Breaking Change Removed SwifterSwift by omaralbeik.
    • Collection:
      • Removed firstIndex(where: ), firstIndex(of:), lastIndex(where: ), lastIndex(of:) which are no longer needed. #637 by marcocapano
    • Date:
      • Removed random(from:upTo:) in favor of random(in:) and random(in:using:). #576 by guykogus
      • Removed timeZone should never have been added because Dates are timezone-agnostic. This came to my attention during unit testing over daylight savings changes. #594 by guykogus

    CI

    • โšก๏ธ Updated Travis to use the new xcode10.2 osx_image.
    • โž• Added Fastlane to automate the releasing process for maintainers.