All notable changes to this project will be documented in this file.
BFKit-Swift
adheres to Semantic Versioning.
5.0.x
Releases - 5.0.0
2.6.x
Releases - 2.6.02.5.x
Releases - 2.5.02.4.x
Releases - 2.4.0 | 2.4.12.3.x
Releases - 2.3.02.2.x
Releases - 2.2.0 | 2.2.1 | 2.2.22.1.x
Releases - 2.1.02.0.x
Releases - 2.0.0 | 2.0.1 | 2.0.2
1.8.x
Releases - 1.8.01.7.x
Releases - 1.7.01.6.x
Releases - 1.6.0 | 1.6.1 | 1.6.2 | 1.6.3 | 1.6.41.5.x
Releases - 1.5.0 | 1.5.11.4.x
Releases - 1.4.0 | 1.4.11.3.x
Releases - 1.3.0 | 1.3.11.2.x
Releases - 1.2.01.1.x
Releases - 1.1.01.0.x
Releases - 1.0.0
6.0.1 - Fixing Pod
- Fixed
swift_version
in podspec file
6.0.0 - Swift 5.1 Support
- Added support to Xcode 11.1 and Swift 5.1
- Added support to WKWebView #44
- Added iPhone 11, 11 Pro and 11 Pro Max in UIDevice extension
- Deprecated
FontName
andFamilyFontName
in UIFont extension
- Removed support to UIWebView #44
- Removed
isURLValid
on Linux
- Updated SwiftLint to 0.35.0
Thanks to @Tripwire999 for this release
5.0.0 - Swift 5.0 Support
- Added support to Xcode 10.2 and Swift 5.0
- Renamed
countSymbols()
tocountPunctuations()
in String extension, the old one has been deprecated but still valid - Changed parameter type and return type of
degreesToRadians(_:)
andradiansToDegrees(_:)
fromFloat
toDouble
in Number extension - Changed parameter type of
rotate(radians:)
androtate(degrees:)
fromFloat
toDouble
in UIImage extension - Changed
search(_:)
function in List struct that now returnsInt
instead ofInt?
by returning-1
instead ofnil
if theElement
is not found - Changed BFLog messages from emojis to
[ERROR]
,[WARNING]
,[DEBUG]
and[INFO]
- Changed the behavior of Calendar instances in Date extension on Linux
- Improved
count*
chars functions in String extension - Improved build performance
- Updated SwiftLint to 0.31.0
- Removed all the deprecated functions and variables
4.1.0 - Spend That Money
- Added iPhone XS, iPhone XS Max and iPhone XR in UIDevice extension
- Added
isFromTestFlight
function in BFApp enum to check if the app has been installed from TestFlight
Thanks to @gennick for this release
4.0.1 - Release It Please
- Added new iPad Pro 11-inch and 12.9-inch in UIDevice extension
- Added missing CoreGraphics files to CocoaPods
- Improved settings reading and saving in FileManager extension
- Updated SwiftLint to 0.29.2
- Removed watchOS 2.0 support in favor of watchOS 3.0, thanks to an App Store submission bug #11
4.0.0 - Swift 4.2 Support
- Added support to Xcode 10 and Swift 4.2
- Added
localized
andnumberValue
variables in String extension - Added
queryStringParameter(parameter:)
,queryDictionary()
andurlValid()
functions in String extension
- BFTouchID is deprecated and will be removed in a future version of BFKit-Swift. Please use BFBiometrics enum instead
lightFont
in UIFont extension is deprecated and will be removed in a future version of BFKit-SwiftregularFont
in UIFont extension is deprecated and will be removed in a future version of BFKit-SwiftboldFont
in UIFont extension is deprecated and will be removed in a future version of BFKit-Swift- All random functions in Number extension are deprecated and will be removed in a future version of BFKit-Swift
- Changed from Codecov to Coveralls service for code coverage
- Updated package tools version to 4.2
- Now
.applicationSupport
case available inPathType
enum inFileManager
extension fully works, even if Application Support folder doesn't exist
3.2.1 - That Corner Radius
- Updated SwiftLint to 0.27.0
- Fixed wrong corner radius in
cornerRadius(corners:, radius:)
function in UIView extension
3.2.0 - Big Improvements
- Added
force
attribute togenerateUniqueIdentifier(save: Bool = default, force: Bool = default)
in UIDevice extension with a default value, hence no changes are required - Added
resetFirstStart(version: String = default)
in BFApp struct, to reset the App like has never been opened - Added FileManager extension to Linux
- Improved code of a lot of classes / structs and enums
- Updated SwiftLint to 0.26.0
- Use of
canImport()
instead ofos()
- Converted static only structs to enums to avoid initialization
- Removed all force unwrapping to avoid possible crashes
- Fixing some memory leaks
- BFTouchID struct in favour of BFBiometrics enum
lightFont
,mediumFont
andboldFont
from UIFont extensionlength
in favour ofcount
in String extension
- Removed Hound CI
3.1.2 - Swift 4.1 Support
- Added support to Xcode 9.3 and Swift 4.1
3.1.1 - Some Improvements
- Added
swift_version
property in podspec file for CocoaPods 1.4.0 - Added Hound CI
- Now
cornerRadius(corners:, radius:)
function in UIView extension usesmaskedCorners
for iOS 11 or above fadeDuration
in BFButton class is now a TimeInterval- Updated device names based on The iPhone Wiki
- Updated SwiftLint to 0.25.0
- Now Swift Package Manager correctly builds BFKit-Swift with Swift 4
3.1.0 - Face ID Support
- Added BFBiometrics struct to help handling Face ID and / or Touch ID
- Added two new custom operators on Number extension:
<>
and<=>
to check if a number is included in a tuple of values - Added
isUUID()
,isUUIDForAPNS()
andreplacingMatches(regex:, with:)
to Linux in String extension
- Improved compilation time in
blur()
function in UIImage extension - Improved
debug
andrelease
code execution on BFApp struct - Changed
generateUniqueIdentifier()
togenerateUniqueIdentifier(save: Bool = default)
in UIDevice extension to be able to keep the generated identifier across multiple sessions, defaults tofalse
, so no changes are required - Updated SwiftLint to 0.24.0
- Updated README.md to latest Carthage changes
Thanks to @tomasz-czyzak for this release
3.0.0 - Swift 4 Support
- Added support to Swift 4 and Xcode 9
- Added support to App Extensions
- Added
setTabBarVisible(_:, animated:, duration:)
andisTabBarVisible
in UIViewController extension
- Updated SwiftLint to 0.22.0
- Now
gradient(colors:, direction:)
returns aCAGradientLayer
as a@discardableResult
, so no changes are required
- Fixed a bug on
substring(to:)
function on String extension #32 - Fixed non designable
UIView
s
- Changed
UIViewLinearGradientDirection
toUIViewGradientDirection
enum name and properties in UIView extension. Easy transition, rename only - Changed
smoothLinearGradient(colors:, direction:)
tosmoothGradient(colors:, direction:, type: = default)
to allow radial gradients in UIView extension. Easy transition, thanks to default value - Removed
appDelegate
global variable - Changed
reversed(preserveFormat: = default)
toeversed(preserveFormat:)
in String extension because is used instead ofreversed()
original String function
Thanks to @wdcurry for this release
2.6.0 - macOS Support
- Added macOS Support
- Added
dateSeparator
andtimeSeparator
toinit?(date:, time:)
with adefault
value, so no changes are required - Added
flatten<T>(_ array:)
generic global function in Array extension
- Removed Apple Watch device from UIDevice extension (Can't be used)
- Removed support for iOS 7 in UIImage extension (Refuse)
- Improved BFPassword struct
- Improved tests
- Fixed missing style in
init(frame:, style:, cellSeparatorStyle:, separatorInset:, dataSource:, delegate:)
in UITableView extension - Fixed
animate(path:, count: = default, duration:, autoreverses: = default)
autoreverses - Fixed BFButton with a default
fadeDuration
value - Fixed wrong default duration in
fade(label:, duration:, toAttributedString:)
in WKInterfaceController extension
2.5.0 - Better Gradients And Dates
- Added
init?(iso8601:)
andiso8601()
functions to create a Date from an ISO 8601 String and vice-versa in Date & String extensions - Added new functions in NSAttributedString extension to handle left, right, center and justified text alignment
- Added
smoothLinearGradient(colors:, direction:)
function in UIView extension that usesCGGradient
instead ofCAGradientLayer
- Added iPad Pro 12.9 2nd Generation and iPad Pro 10.5 devices in UIDevice extension
- Added
fade(label:, duration: = default, toString:)
andfade(label:, duration: = default, toAttributedString:)
animation functions in WKInterfaceController extension - Added
Set
struct extension - Added
append(_ value:, key:)
function in Dictionary extension - Added
init?(view:)
function in UIImage extension
- Now
dateString(format: = default)
in Date extension has a newlocale
parameter with adefault
value, so no changes are required - Now
init?(parse dateString:, format: = default)
in Date extension has a newlocale
parameter with adefault
value, so no changes are required - Updated SwiftLint to 0.20.0
- Fixed a bug where you cannot concatenate multiple attributed strings
2.4.1 - Swift Package Manager Returns
- Fixed Swift Package Manager build on macOS
2.4.0 - watchOS Support
- Added watchOS support (For specific classes, structs and extensions support refer to compatibility table)
- Added
WKInterfaceController
class extension for watchOS - Added
NSAttributedString
class extension - Added
NSPointerArray
class extension - Added
isNotEmpty
in Array extension - Added
saveLog(in:, filename:)
in BFLog struct to save log in a file
- Changed Travis CI builds
- Use of
randomInt()
in UIColor and Array extensions - Removed Glibc library for Linux
- Updated SwiftLint to 0.19.0
2.3.0 - Minor (Breaking) Changes
- Added
dateString(format:)
in Date extension - Added
replacingOccurrences(of:, with:)
in String extension
- Changing Sound and Font enums to be more Swifty (Xcode hints will help)
- Updated with Swift 3.1 compatibility
- Updated SwiftLint to 0.18.1
- Improved tests
mainBundlePath
in FileManager extension will now return the main bundle path if no file is specified #27
- Fixed an issue with
randomInt()
function in Number extension #26
Thanks to @on123 & @jiongge for this release
2.2.2 - Swift 3.1 Ready
- Minor changes to be Swift 3.1 ready
2.2.1 - Better Log
- Fixed a bug in
warning
,error
,debug
andinfo
functions in BFLog struct
Thanks to @ianrahman for this release
2.2.0 - Cryptographically First
- Added new cryptographically secure random numbers generator with
random()
function in Number extension- Available to all Integer types, Float and Double
- Added
warning
,error
,debug
andinfo
functions in BFLog extension - Added
has(_:, caseSensitive:)
as alias ofrange(of:, caseSensitive:)
in String extension
- Increased code coverage
- General enhancements in pasteboard functions
- Enhancements in
init(barButtonSpaceType:, width:)
in UIBarButtonItem extension - Changed the implementation of
randomInt()
andrandomFloat()
function in Number extension - Updated SwiftLint to 0.15.0
- Minor enhancements
- Fixed a bug in
reversed(preserveFormat:)
function in String extension
2.1.0 - Napalm Explosion
- Added
random()
function in Array extension - Added
array
variable to String, Int, Float and Double extensions - Added
present(title:, message:, actions:, alertType:)
in UIViewController extension - Added support for Xcode 8.2 and Swift 3.0.2
- Updated SwiftLint to 0.14.0
Thanks to @calebkleveter for this release
2.0.2 - Linux Doesn't Like Emoji
- Fixed a bug for Linux on String extension
2.0.1 - Linux Compatibility
- Fixed a bug for Linux on BFApp class
2.0.0 - A New Beginning
- This version has been completely rewritten and is not compatible with 1.x versions
- Added Swift 3.0 support
- Added Unit Tests
- Adopt the new API Design Guidelines
- Use of SwiftLint
- Builds on Linux (Foundation extensions only)
- Added
isLowPowerModeEnabled()
,lowPowerModeChanged(_:)
,isJailbroken()
,uptime
anduptimeDate
functions in UIDevice extension - Added
shuffle()
andshuffled()
functions in Array extension - Added
localize()
,isAnagram()
,isPalindrome()
,links()
,dates()
,hashtags()
,mentions()
functions and???
operator in String extension - Added
animate(path:, count:, duration:)
function in UIView extension - Added
init(base64:)
function in UIImage extension - Added UIViewController extension
- Added ProcessInfo extension
- Better handling of
!
,?
andthrows
on all sources - Minor enhancements & bug fix
Thanks to @the0neyouseek for this release
- Added Swift 2.3 support
- Added Application info in BFApp class #17
- Simplified color usage in UIColor extension #16
- Fixed crashes on
imageToGrayscale()
andimageToBlackAndWhite()
in UIImage extension #15 - Fixed
countUppercaseLetters
function in BFPassword class #14
Thanks to @sairamkotha, @ttyh061 & @astrokin for this release
- Added
debugBlock
andNSLocalizedString(key:)
in global scope - Added BFView as subclass of UIView
- Added
<
and>
to compare two NSDate - Added
hexString()
andalpha()
to UIColor extension - Added
cornerRadius(corners:, radius:)
to UIView extension
- Improved BFLog class - See this post on how to properly use it
- Adjusting pt-BR typo #13
- Minor enhancements
- Fixed a bug with Carthage
Thanks to @gabrielPeart for this release
- Fixed crash on BFDateInformation struct initializer
- Minor enhancements & bug fix
Thanks to @pontus-andersson for this release
- Added Package.swift file to add support to Swift Package Manager
- Added support to Swift 2.2 and Xcode 7.3 #10
Thanks to @lucasmpaim for this release
- Added CONTRIBUTING.md file
- Added
brightness
directly to UIScreen extension - Added
randomInt()
function with range support in NSNumber extension - Added Brazilian Portuguese #20 & #22
- Added a screen size structure in UIScreen extension to check the device's screen size #9
- Added NSData extension
- Added
shortDate()
function to NSDate extension - Added
safeObjectForKey()
in NSDictionary extension - Added BFTextField subclass of UITextField to limit the max characters
- Added some functions to NSString & String extensions
- Added
updateUniqueIdentifier(_: _:)
in UIDevice extension - Added
removeAllSubviews()
in UIView extension - Added
calculatedHeight()
&setFont(_, fromIndex:, toIndex:)
- Minor enhancements & bug fix
- Fixed a bug in
randomColor(_)
that may cause a crash #8
Thanks to @Ewg777, @emersonbroga & @liushixiang for this release
- Added more stronger check on BFDataStructures
- Now support Swift 2.1 and Xcode 7.1
- Fixed a bug in
searchInString(_:charStart:charEnd)
that may cause a crash
- Added support for Swift 2.0
- Added
onFirstStartForVersion
andisFirstStartForVersion
functions andisFirstStart
andisFirstStartForCurrentVersion
variables in BFApp class - Added HEX functions in NSString and String extensions
- Added String functions like URL functions
- Added a
NS
function to String extension that convert it to a NSString - Added
flipImageHorizontally
&flipImageVertically
functions in UIImage extension - Added missing devices
- Now
Array
andDictionary
extensions are declared as public indexOfCharacter()
in String extension now doesn't returnsnil
if not found, but-1
- Moved
generateUUID()
from UIDevice extension to String and NSString extensions
- Fixed various bugs
- Added support for iPod Touch 6G
- Fixed a problem with Carthage project
- Added
APP_DELEGATE
global variable - Added UINavigationBar extension
- Added UIToolbar & UIBarButtonItem extensions
- Added BFDataStructures class with primitive data structures
- Added new substring, indexOf and subscript functions in String extension
- Added
fallbackTitle
parameter inshowTouchIDAuthenticationWithReason
function in BFTouchID class - Added touch on screen with
BFShowTouchOnScreen()
andBFHideTouchOnScreen()
functions
- Removed UIScreen functions from UIDevice extension and created UIScreen extension
- Changed
SCREEN_WIDTH
&SCREEN_HEIGHT
variables and fixed #2 (Thanks to jiongge)
- Fixed
iOSVersion
function in UIDevice extension
- Added
onFirstStart
andonFirstStartForCurrentVersion
in BFApp class - Added
stringByReplacingWithRegex:withString:
in NSString and String extensions
- BFLog now prints:
timestamp filename:line function message
- NSDate extension now has
nanosecond
and useautoupdatingCurrentCalendar
- Bug fix in DEMO App
- Added a DEMO App
- Added
init(imageAsTemplate:, tintColor:)
to create UIImageView with a template image - Added a new init function in UIColor extension to create UIColor with an HEX in Int
- Added function
dictionaryToJSON
and deprecated the old one in NSDictionary extension - Added
moveObjectFromIndex
function in NSMutableArray extension
- NSThread extension is now public and can perform selectors in background
BFLocalizedString
now doesn't requirecomment
parameter- Changed
BFLogString
andBFDetailedLogString
from functions to variables showTouchIDAuthenticationWithReason
in BFTouchID class now returnsresult
in closure- In some UIKit extension the delegate (or data source) can now be
nil
searchCharStart
functions in NSString extension now requires a NSString for start and end- Changed how to check if is an email in NSString and String extensions
colorForColorString
has been moved from UIImage to UIColor extension- Renamed
image
variable toscreenshot
intakeScreenshotWithDelay
function in UIWindow extension - Marked some function as obsoleted
- Fixed a bug with
iOSVersion
function in UIDevice extension - Fixed a bug with all the CIFilter in UIImage extension
- Fixed a bug in
deleteFile
function in NSFileManager extension - Fixed a bug in
safeSetObject
function in NSMutableDictionary extension
- Added comments to all classes and extensions
- Added the documentation with CocoaDocs
- Declared public
colorForColorString
in UIColor extension - Declared as deprecated some functions in favor of default values
- Added Carthage support
- Added all IDs in BFSystemSound class
- Added all font family names and font names in UIFont extension
- Now you can use word like
red
,blue
or any predefined color in UIColor class to create dummy images withUIColor(dummyImageWithSizeAndColor:)
- Changed
loadArrayToPath
toloadArrayFromPath
and now returnAnyObject?
- Removed
cpuUsage
function in NSProcessInfo extension - Reverted to old
BFLog
function in BFLog class
- Fixed
dictionaryToJson:
in Dictionary extension
- Initial release