BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.

Overview

BFKit-Swift Banner

Build Status Coverage Status Maintainability Codebeat Badge Codacy Badge
Documentation Swift Package Manager Compatible Carthage Compatible
Version Language Platforms License


FeaturesClasses and Extensions CompatibilityRequirementsCommunicationContributingInstalling and UsageDocumentationChangelogExampleTodoAuthorLicense


Features

BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.
For example you can use every iOS font with just an enum!
It also adds some useful functions with Custom classes and extends Foundation, UIKit, AppKit and WatchKit classes.

Classes and Extensions Compatibility

BFKit

iOS macOS watchOS Linux
BFApp ✓ ✓ ✓ ✓
BFBiometric ✓
BFButton ✓
BFDataStructures
(List - Queue - Stack)
✓ ✓ ✓ ✓
BFLog ✓ ✓ ✓ ✓
BFPassword ✓ ✓ ✓ ✓
BFSystemSound ✓
BFTextField ✓
BFTouchID ✓  

Foundation

iOS macOS watchOS Linux
Array ✓ ✓ ✓ ✓
Collection ✓ ✓ ✓ ✓
Data ✓ ✓ ✓ ✓
Date ✓ ✓ ✓ ✓
FileManager ✓ ✓ ✓ ✓
Number ✓ ✓ ✓ ✓
NSObject ✓ ✓ ✓ ✓
NSAttributedString ✓ ✓ ✓
NSPointerArray ✓ ✓ ✓
ProcessInfo ✓ ✓ ✓ ✓
Set ✓ ✓ ✓ ✓
String ✓ ✓ ✓ ✓
Thread ✓ ✓ ✓ ✓

Core Graphics

iOS macOS watchOS Linux
CGPoint ✓ ✓ ✓  

UIKit / AppKit

iOS macOS watchOS Linux
UIBarButtonItem ✓
UIButton ✓
UIColor ✓ ✓ ✓
UIDevice ✓
UIFont ✓ ✓
UIImage ✓ ✓
UIImageView ✓
UILabel ✓
UINavigationBar ✓
UIPasteboard ✓
UIScreen ✓
UIScrollView ✓
UITableView ✓
UITextField ✓
UITextView ✓
UIToolbar ✓
UIView ✓
UIViewController ✓
UIWindow ✓  

WebKit

iOS macOS watchOS Linux
UIWebView ✓ ✓  

WatchKit

iOS macOS watchOS Linux
WKInterfaceController ✓  

Requirements

Swift Xcode BFKit-Swift iOS macOS watchOS Linux
1.2 6.3 1.0.0...1.4.1 7.0+
2.0...2.1 7.0 1.5.0...1.6.2 7.0+
2.2 7.3 1.6.3...1.7.0 7.0+
2.3 8.0 1.8.0 7.0+
3.0...3.1 8.0...8.3 2.0.0...2.3.0 8.0+ ✓
3.0...3.1 8.0...8.3 2.4.0...2.5.0 8.0+ 2.0+ ✓
3.0...3.2 8.0...9.0 2.6.0 8.0+ 10.10+ 2.0+ ✓
4.0 9.0...9.2 3.0.0...3.1.1 8.0+ * 10.10+ * 3.0+ * ✓
4.1 9.3...9.4 3.1.2...3.2.1 8.0+ * 10.10+ * 3.0+ * ✓
4.2 10.0 4.0.0...4.1.0 8.0+ * 10.10+ * 3.0+ * ✓
5.0 10.2...10.3 5.0.0 8.0+ * 10.10+ * 3.0+ * ✓
5.1 11.2 6.0.0...6.0.1 8.0+ * 10.10+ * 3.0+ * ✓

* With App Extension Support

Communication

  • If you need help, open an issue
  • If you found a bug, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, see Contributing section.

Contributing

See CONTRIBUTING.md file.

Installing and Usage

See Requirements section to check Swift, Xcode, BFKit-Swift and OS versions.

Manual

  • Open and build the framework from the project (BFKit.xcodeproj)
  • Import BFKit.framework into your project
  • Import the framework with import BFKit
  • Enjoy!

CocoaPods

  • Create a Podfile in your project directory and write into:

    platform :ios, '8.0'
    xcodeproj 'Project.xcodeproj'
    use_frameworks!
    
    pod 'BFKit-Swift'
  • Change "Project" with your real project name

  • Open Terminal, go to your project directory and type: pod install

  • Import the framework with import BFKit

  • Enjoy!

Carthage

  • Create a Cartfile in your project directory and write into:

    github "FabrizioBrancati/BFKit-Swift"
  • Open Terminal, go to project directory and type: carthage update

  • Include the created Framework in your project

  • Add Build Phase with the following contents:

    /usr/local/bin/carthage copy-frameworks

    Add the paths to the BFKit-Swift framework under Input Files

    $(SRCROOT)/Carthage/Build/iOS/BFKit.framework

    Add the paths to the copied frameworks to the Output Files

    $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/BFKit.framework

    This script works around an App Store submission bug triggered by universal binaries and ensures that necessary bitcode-related files are copied when archiving

  • (Optional) Add Build Phase with the following contents

    /usr/local/bin/carthage outdated --xcode-warnings

    To automatically warn you when one of your dependencies is out of date

  • Import the framework with import BFKit

  • Enjoy!

Swift Package Manager

  • Create a Package.swift file in your project directory and write into:

    // swift-tools-version:5.1
    import PackageDescription
    
    let package = Package(
        name: "Project",
        products: [
            .executable(name: "Project", targets: ["Project"])
        ],
        dependencies: [
            .package(url: "https://github.com/FabrizioBrancati/BFKit-Swift.git", .upToNextMajor(from: "4.0.0"))
        ],
        targets: [
            .target(name: "Project", dependencies: ["BFKit"])
        ]
    )
  • Change "Project" with your real project name

  • Open Terminal, go to project directory and type: swift build

  • Import the framework with import BFKit

  • Enjoy!

Documentation

Documentation

Jazzy generated documentation - 100% Documented

Changelog

To see what has changed in recent versions of BFKit-Swift, see the CHANGELOG.md file.

Example

Open and run the BFKitExample project in Example folder in this repo with Xcode and see BFKit-Swift in action!

Todo

  • Add tvOS support
  • Create a new Example App that shows all the functionalities of BFKit-Swift
  • ~100% of code coverage with Unit Tests
  • Improve code to get an A from codebeat
  • Add macOS support
  • Add watchOS support
  • Create Unit Tests and add Codecov badge
  • Add Linux support (Foundation extensions only)
  • Add Carthage support
  • Add to CocoaPods
  • Create a great documentation

Author

Fabrizio Brancati

Website: https://www.fabriziobrancati.com
Email: [email protected]

License

BFKit-Swift is available under the MIT license. See the LICENSE file for more info.

Comments
  • Module compiled with Swift 5.1 cannot be imported by the Swift 5.1.3 compiler

    Module compiled with Swift 5.1 cannot be imported by the Swift 5.1.3 compiler

    Hello, I'm having problems on my project using this library. I've found this StackOverflow article, is this flag already in the build process for the library?

    BUILD_LIBRARY_FOR_DISTRIBUTION

    https://stackoverflow.com/questions/58654714/module-compiled-with-swift-5-1-cannot-be-imported-by-the-swift-5-1-2-compiler

    opened by giordanocardillo 5
  • BFTouchID error after ios10.0

    BFTouchID error after ios10.0

    after iOS 10.0,when I call showTouchID function, it will callback systemCancel error first。

    I set the breakpoint and see the error. when call context.evaluatePolicy , system will show the touchID alert, and then this function will callback systemCancel error first. After I auth the touchID, it callback success.

    this error can not see in ios 9.0 。

    some one know why

    opened by AbooJan 4
  • UIView @IBDesignable/@IBInspectable can't show in storyboard

    UIView @IBDesignable/@IBInspectable can't show in storyboard

    I see in BFKit has a UIView extension that used IBDesignable/IBInspectable, But it's can't show in the storyboard。And now I only can use A empty custom view to inherit UIView and in storyboard select the customView。I want now if there any other way to do that

    Question 
    opened by weixianlove 3
  • Documentation issue warnings

    Documentation issue warnings

    Hi,

    I keep getting allot of warnings about Documentation issues when building my project. They all are about parameters which are not found in the function declaration. Like this one: /Pods/BFKit/Source/BFKit/BFCryptor.h:118:12: Parameter 'data' not found in the function declaration /Pods/BFKit/Source/BFKit/BFCryptor.m:29:9: In file included from /Pods/BFKit/Source/BFKit/BFCryptor.m:29:

    It's not really a bug but I like my projects warning free :)

    Thx!

    Invalid 
    opened by TripwireNL 3
  • Extension Array - method random() does never select last element

    Extension Array - method random() does never select last element

    Hi,

    I think the function "random()" in the array extension does only return a random element besides the last one.

    The function randomInt(range: ClosedRange<Int>) -> Int which is used, never returns the upperBound of the range, but only the upperBound -1.

    e.g.

    var myArray = ["One","Two","Three"]
    for i in 1...100 {
        print(myArray.random())
    }
    

    will never print "Three".

    for i in 1...100 {
        print("\(randomInt(range: 0...1))")
    }
    

    will never print "1"

    Should be easy to fix :-)

    Oliver

    Bug 
    opened by on123 3
  • Migrated from UIWebView to WKWebView

    Migrated from UIWebView to WKWebView

    Since Apple is starting to reject apps using (or referring to) UIWebView I've removed the UIWebView+Extensions class en UIWebViewExtensionTests and created the WKWebView+Extensions and WKWebViewExtensionTests so BFKit-Swift doesn't refer to UIWebView anymore.

    See also: https://github.com/AFNetworking/AFNetworking/issues/4428 https://github.com/react-native-community/react-native-webview/issues/819

    opened by TripwireNL 2
  • improve compilation time in UIImageExtension:blur(...) method

    improve compilation time in UIImageExtension:blur(...) method

    Before:

    1920.52ms ...UIImageExtension.swift:788:21 public func blur(radius blurRadius: CGFloat, saturation: CGFloat = default, tintColor: UIColor? = default, maskImage: UIImage? = default) -> UIImage

    After:

    114.58ms ...UIImageExtension.swift:788:21 public func blur(radius blurRadius: CGFloat, saturation: CGFloat = default, tintColor: UIColor? = default, maskImage: UIImage? = default) -> UIImage

    opened by tomasz-czyzak 2
  • Add macOS Support

    Add macOS Support

    • [x] Building macOS platform
    • [x] Test macOS platform
    • [x] Check all #if os(?)
    • [x] Add macOS to Requirements and Classes and Extensions Compatibility
    • [x] Improving tests
    • [x] Add macOS support to Cocoapods
    • [x] Use only one BFKit.h header file

    Missing extensions:

    • [x] NSAttributedString
    • [x] NSColor (From UIColor)
    Enhancement 
    opened by FabrizioBrancati 1
  • Add Swift 4 support

    Add Swift 4 support

    This pull request adds Swift 4 support:

    • [x] Update the Framework to support Swift 4
    • [x] Update .travis file for Xcode 9 and iOS 11
    • [x] Update all the XCTests
    • [x] Update the Example project to support Swift 4
    • [x] Add Framework version in Requirements table
    • [x] Check all #if os(?) also for new Linux implementations
    • [x] Add new iOS 11 fonts
    • [x] Update README SPM instructions
    • [x] Improving tests
    • [x] Wait for Xcode 9 GM
    • [x] Change .swift-version file to 4.0
    • [x] Check codecov support
    Enhancement 
    opened by FabrizioBrancati 1
  • FileManagerExtension.swift  mainBundlePath() return nil

    FileManagerExtension.swift mainBundlePath() return nil

    // MARK: - Functions

    /// Get the path for a PathType.
    ///
    /// - Parameter path: Path type.
    /// - Returns: Returns the path type String.
    public func pathFor(_ path: PathType) -> String? {
        var pathString: String?
        
        switch path {
        case .mainBundle:
            pathString = self.mainBundlePath()
       ...
        }
        
        return pathString
    }
    

    self.mainBundlePath() always return nil

    I recommend to switch

    /// Get Main Bundle path for a filename. /// /// - Parameter file: Filename /// - Returns: Returns the path as a String. public func mainBundlePath(file: String = "") -> String? { return file.isEmpty ? Bundle.main.bundlePath : Bundle.main.path(forResource: file.deletingPathExtension, ofType: file.pathExtension) }

    Enhancement 
    opened by jiongge 1
  • Compile failure with swiftUI

    Compile failure with swiftUI

    Type conflicts are found. Color in SwiftUI is an existing class, and BFKit contains the following code public typealias Color = UIColor This caused me to compile failure and had to remove the relevant code

    Bug 
    opened by SampsonCN 1
Releases(6.0.1)
  • 6.0.1(Oct 20, 2019)

  • 6.0.0(Oct 20, 2019)

    BFKit-Swift 6.0.0

    20 Oct 2019

    Added

    • 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

    • Deprecated FontName and FamilyFontName in UIFont extension

    Removed

    • Removed support to UIWebView #44
    • Removed isURLValid on Linux

    Improved

    • Updated SwiftLint to 0.35.0

    Thanks to @Tripwire999 for this release

    Source code(tar.gz)
    Source code(zip)
  • 5.0.0(Apr 23, 2019)

    BFKit-Swift 5.0.0

    23 Apr 2019

    Added

    • Added support to Xcode 10.2 and Swift 5.0

    Changed

    • Renamed countSymbols() to countPunctuations() in String extension, the old one has been deprecated but still valid
    • Changed parameter type and return type of degreesToRadians(_:) and radiansToDegrees(_:) from Float to Double in Number extension
    • Changed parameter type of rotate(radians:) and rotate(degrees:) from Float to Double in UIImage extension
    • Changed search(_:) function in List struct that now returns Int instead of Int? by returning -1 instead of nil if the Element is not found
    • Changed BFLog messages from emojis to [ERROR], [WARNING], [DEBUG] and [INFO]

    Improved

    • Improved count* chars functions in String extension
    • Improved build performance
    • Updated SwiftLint to 0.31.0

    Removed

    • Removed all the deprecated functions and variables
    Source code(tar.gz)
    Source code(zip)
  • 4.1.0(Feb 3, 2019)

    BFKit-Swift 4.1.0

    03 Feb 2019

    Added

    • 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

    Source code(tar.gz)
    Source code(zip)
  • 4.0.1(Feb 3, 2019)

    BFKit-Swift 4.0.1

    27 Dec 2018

    Added

    • Added new iPad Pro 11-inch and 12.9-inch in UIDevice extension
    • Added missing CoreGraphics files to CocoaPods

    Improved

    • Improved settings reading and saving in FileManager extension
    • Updated SwiftLint to 0.29.2

    Removed

    • Removed watchOS 2.0 support in favor of watchOS 3.0, thanks to an App Store submission bug #11
    Source code(tar.gz)
    Source code(zip)
  • 4.0.0(Oct 10, 2018)

    BFKit-Swift 4.0.0

    11 Oct 2018

    Added

    • Added support to Xcode 10 and Swift 4.2
    • Added localized and numberValue variables in String extension
    • Added queryStringParameter(parameter:), queryDictionary() and urlValid() functions in String extension

    Changed

    • 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-Swift
    • regularFont in UIFont extension is deprecated and will be removed in a future version of BFKit-Swift
    • boldFont 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

    Improved

    • Updated package tools version to 4.2

    Fixed

    • Now .applicationSupport case available in PathType enum in FileManager extension fully works, even if Application Support folder doesn't exist
    Source code(tar.gz)
    Source code(zip)
  • 3.2.1(Sep 13, 2018)

    BFKit-Swift 3.2.1

    14 Sep 2018

    Improved

    • Updated SwiftLint to 0.27.0

    Fixed

    • Fixed wrong corner radius in cornerRadius(corners:, radius:) function in UIView extension
    Source code(tar.gz)
    Source code(zip)
  • 3.2.0(Jul 14, 2018)

    BFKit-Swift 3.2.0

    14 Jul 2018

    Added

    • Added force attribute to generateUniqueIdentifier(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

    • Improved code of a lot of classes / structs and enums
    • Updated SwiftLint to 0.26.0
    • Use of canImport() instead of os()
    • Converted static only structs to enums to avoid initialization
    • Removed all force unwrapping to avoid possible crashes
    • Fixing some memory leaks

    Deprecated

    • BFTouchID struct in favour of BFBiometrics enum
    • lightFont, mediumFont and boldFont from UIFont extension
    • length in favour of count in String extension

    Removed

    • Removed Hound CI
    Source code(tar.gz)
    Source code(zip)
  • 3.1.2(Apr 1, 2018)

  • 3.1.1(Feb 18, 2018)

    BFKit-Swift 3.1.1

    18 Feb 2017

    Added

    • Added swift_version property in podspec file for CocoaPods 1.4.0
    • Added Hound CI

    Improved

    • Now cornerRadius(corners:, radius:) function in UIView extension uses maskedCorners 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

    Fixed

    • Now Swift Package Manager correctly builds BFKit-Swift with Swift 4
    Source code(tar.gz)
    Source code(zip)
  • 3.1.0(Dec 26, 2017)

    BFKit-Swift 3.1.0

    26 Dec 2017

    Added

    • 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() and replacingMatches(regex:, with:) to Linux in String extension

    Improved

    • Improved compilation time in blur() function in UIImage extension
    • Improved debug and release code execution on BFApp struct
    • Changed generateUniqueIdentifier() to generateUniqueIdentifier(save: Bool = default) in UIDevice extension to be able to keep the generated identifier across multiple sessions, defaults to false 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

    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(Sep 23, 2017)

    BFKit-Swift 3.0.0

    23 Sep 2017

    Added

    • Added support to Swift 4 and Xcode 9
    • Added support to App Extensions
    • Added setTabBarVisible(_:, animated:, duration:) and isTabBarVisible in UIViewController extension

    Improved

    • Updated SwiftLint to 0.22.0
    • Now gradient(colors:, direction:) returns a CAGradientLayer as a @discardableResult, so no changes are required

    Fixed

    • Fixed a bug on substring(to:) function on String extension #32
    • Fixed non designable UIViews

    Changed

    • Changed UIViewLinearGradientDirection to UIViewGradientDirection enum name and properties in UIView extension. Easy transition, rename only
    • Changed smoothLinearGradient(colors:, direction:) to smoothGradient(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) to eversed(preserveFormat:) in String extension because is used instead of reversed() original String function

    Thanks to @wdcurry for this release

    Source code(tar.gz)
    Source code(zip)
  • 2.6.0(Jul 26, 2017)

    BFKit-Swift 2.6.0

    26 Jul 2017

    Added

    • Added macOS Support
    • Added dateSeparator and timeSeparator to init?(date:, time:) with a default value, so no changes are required
    • Added flatten<T>(_ array:) generic global function in Array extension

    Improved

    • 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

    • 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
    Source code(tar.gz)
    Source code(zip)
  • 2.5.0(Jul 4, 2017)

    BFKit-Swift 2.5.0

    4 Jul 2017

    Added

    • Added init?(iso8601:) and iso8601() 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 uses CGGradient instead of CAGradientLayer
    • Added iPad Pro 12.9 2nd Generation and iPad Pro 10.5 devices in UIDevice extension
    • Added fade(label:, duration: = default, toString:) and fade(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

    Improved

    • Now dateString(format: = default) in Date extension has a new locale parameter with a default value, so no changes are required
    • Now init?(parse dateString:, format: = default) in Date extension has a new locale parameter with a default value, so no changes are required
    • Updated SwiftLint to 0.20.0

    Fixed

    • Fixed a bug where you cannot concatenate multiple attributed strings
    Source code(tar.gz)
    Source code(zip)
  • 2.4.1(May 31, 2017)

  • 2.4.0(May 31, 2017)

    BFKit-Swift 2.4.0

    31 May 2017

    Added

    • 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

    Improved

    • Changed Travis CI builds
    • Use of randomInt() in UIColor and Array extensions
    • Removed Glibc library for Linux
    • Updated SwiftLint to 0.19.0
    Source code(tar.gz)
    Source code(zip)
  • 2.3.0(Apr 23, 2017)

    BFKit-Swift 2.3.0

    23 Apr 2017

    Added

    • Added dateString(format:) in Date extension
    • Added replacingOccurrences(of:, with:) in String extension

    Improved

    • 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

    • Fixed an issue with randomInt() function in Number extension #26

    Thanks to @on123 & @jiongge for this release

    Source code(tar.gz)
    Source code(zip)
  • 2.2.2(Mar 12, 2017)

  • 2.2.1(Jan 9, 2017)

  • 2.2.0(Jan 9, 2017)

    BFKit-Swift 2.2.0

    9 Jan 2017

    Added

    • 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 and info functions in BFLog extension
    • Added has(_:, caseSensitive:) as alias of range(of:, caseSensitive:) in String extension

    Improved

    • Increased code coverage
    • General enhancements in pasteboard functions
    • Enhancements in init(barButtonSpaceType:, width:) in UIBarButtonItem extension
    • Changed the implementation of randomInt() and randomFloat() function in Number extension
    • Updated SwiftLint to 0.15.0
    • Minor enhancements

    Fixed

    • Fixed a bug in reversed(preserveFormat:) function in String extension
    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Dec 23, 2016)

    BFKit-Swift 2.1.0

    23 Dec 2016

    Added

    • 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

    Improved

    • Updated SwiftLint to 0.14.0

    Thanks to @calebkleveter for this release

    Source code(tar.gz)
    Source code(zip)
  • 2.0.2(Dec 11, 2016)

  • 2.0.1(Dec 10, 2016)

  • 2.0.0(Dec 10, 2016)

    BFKit-Swift 2.0.0

    10 Dec 2016

    Added

    • 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 and uptimeDate functions in UIDevice extension
    • Added shuffle() and shuffled() 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

    Improved

    • Better handling of !, ? and throws on all sources
    • Minor enhancements & bug fix

    Thanks to @the0neyouseek for this release

    Source code(tar.gz)
    Source code(zip)
  • v1.8.0(Sep 11, 2016)

    1.8.0

    Added

    • Added Swift 2.3 support
    • Added Application info in BFApp class #17

    Improved

    • Simplified color usage in UIColor extension #16

    Fixed

    • Fixed crashes on imageToGrayscale() and imageToBlackAndWhite() in UIImage extension #15
    • Fixed countUppercaseLetters function in BFPassword class #14

    Thanks to @sairamkotha, @ttyh061 & @astrokin for this release

    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Jul 14, 2016)

    1.7.0

    Added

    • Added debugBlock and NSLocalizedString(key:) in global scope
    • Added BFView as subclass of UIView
    • Added < and > to compare two NSDate
    • Added hexString() and alpha() to UIColor extension
    • Added cornerRadius(corners:, radius:) to UIView extension

    Improved

    Fixed

    • Fixed a bug with Carthage

    Thanks to @gabrielPeart for this release

    Source code(tar.gz)
    Source code(zip)
  • v1.6.3(May 15, 2016)

  • v1.6.2(May 8, 2016)

  • v1.6.1(Mar 25, 2016)

  • v1.6.0(Feb 1, 2016)

    1.6.0

    Added

    • 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:)

    Improved

    • Minor enhancements & bug fix

    Fixed

    • Fixed a bug in randomColor(_) that may cause a crash #8

    Thanks to @Ewg777, @emersonbroga & @liushixiang for this release

    Source code(tar.gz)
    Source code(zip)
Owner
Fabrizio Brancati
A lifelong learner, automation enthusiast, DevOps lover, and Mobile Architect with an eye on design, since iPhone OS 3 | @raywenderlich writer
Fabrizio Brancati
A handy collection of Swift method and Tools to build project faster and more efficient.

SwifterKnife is a collection of Swift extension method and some tools that often use in develop project, with them you might build project faster and

李阳 4 Dec 29, 2022
Extensions for Swift Standard Types and Classes

Cent Cent is a library that extends certain Swift object types using the extension feature and gives its two cents to Swift language. Dollar is a Swif

Ankur Patel 225 Dec 7, 2022
Tools and helpers to make building apps faster and safer.

The UBFoundation framework provides a set of useful tools and helpers to make building apps faster and safer.

Ubique 7 Dec 19, 2022
Useful Swift code samples, extensions, functionalities and scripts to cherry-pick and use in your projects

SwiftyPick ?? ?? Useful Swift code samples, extensions, functionalities and scripts to cherry-pick and use in your projects. Purpose The idea behind t

Manu Herrera 19 May 12, 2022
Useful functions and extensions for sorting in Swift

SwiftSortUtils Motivation This library takes a shot at making comparing and sorting in Swift more pleasant. It also allows you to reuse your old NSSor

Daniel Strittmatter 60 Sep 9, 2022
Useful extensions for my Swift code

UIViewController extensions presentAlert(withTitle title: String, message : String) presentAlertDialog(withTitle title: String, message : String, acti

Bogdan Grafonsky 1 Oct 17, 2021
Personally useful Swift Extensions for iOS Development

Useful-Swift-Extensions Personally useful Swift Extensions for iOS Development; cobbled together from a variety of development projects and StackOverf

Nick Arner 5 Dec 13, 2021
Extendy - A set of useful string extensions.

Extendy A set of useful string extensions. Requirements iOS 11.0+ Swift 5+ Installation CocoaPods Extendy is available through CocoaPods. To install i

Anton Novichenko 3 Sep 23, 2021
Generate protobuf message definitions from Swift structs

SwiftProtobufGen Generates protobuf definitions from Swift structs Building For some reason Xcode builds don't work at all but swiftpm command line bu

null 3 Nov 1, 2021
A collection of useful result builders for Swift and Foundation value types

Swift Builders A collection of useful result builders for Swift and Foundation value types. Motivation Arrays, dictionaries, and other collection-base

David Roman 3 Oct 14, 2022
An extension for Xcode to generate builders from structs

Swift Struct Builder Generator Xcode Source Editor Extension An Xcode extension (plugin) to generate struct builders automatically. Install Swift Stru

Marius Wichtner 1 Nov 24, 2021
A Collection of useful Swift property wrappers to make coding easier

Swift Property Wrappers A Collection of useful Swift property wrappers to make c

Gordan Glavaš 2 Jan 28, 2022
A Swift package for rapid development using a collection of micro utility extensions for Standard Library, Foundation, and other native frameworks.

ZamzamKit ZamzamKit is a Swift package for rapid development using a collection of micro utility extensions for Standard Library, Foundation, and othe

Zamzam Inc. 261 Dec 15, 2022
SharkUtils is a collection of Swift extensions, handy methods and syntactical sugar that we use within our iOS projects at Gymshark.

SharkUtils is a collection of Swift extensions, handy methods and syntactical sugar that we use within our iOS projects at Gymshark.

Gymshark 1 Jul 6, 2021
Collection of native Swift extensions to boost your development. Support tvOS and watchOS.

SparrowKit Collection of native Swift extensions to boost your development. Support iOS, tvOS and watchOS. If you like the project, don't forget to pu

Ivan Vorobei 119 Dec 20, 2022
Swift library to develop custom Alexa Skills

AlexaSkillsKit AlexaSkillsKit is a Swift library that allows you to develop custom skills for Amazon Alexa, the voice service that powers Echo. It tak

Claus Höfele 170 Dec 27, 2022
A handy collection of more than 500 native Swift extensions to boost your productivity.

SwifterSwift is a collection of over 500 native Swift extensions, with handy methods, syntactic sugar, and performance improvements for wide range of

SwifterSwift 12k Jan 7, 2023
Collection of Swift-extensions to boost development process.

SwiftBoost Collection of Swift-extensions to boost development process. Community Installation Ready to use on iOS 13+, tvOS 13+, watchOS 6.0+. Swift

Sparrow Code 119 Dec 20, 2022
🏈 Cache CocoaPods for faster rebuild and indexing Xcode project.

?? Cache CocoaPods for faster rebuild and indexing Xcode project.

Vyacheslav Khorkov 489 Jan 6, 2023