Awesome
<p align="center"> <img src="Resources/Banner.png" alt="BFKit-Swift Banner"> </p><p align="center"> <a href="#features">Features</a> • <a href="#classes-and-extensions-compatibility">Classes and Extensions Compatibility</a> • <a href="#requirements">Requirements</a> • <a href="#communication">Communication</a> • <a href="#contributing">Contributing</a> • <a href="#installing-and-usage">Installing and Usage</a> • <a href="#documentation">Documentation</a> • <a href="#changelog">Changelog</a> • <a href="#example">Example</a> • <a href="#todo">Todo</a> • <a href="#author">Author</a> • <a href="#license">License</a> </p>
Features
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.<br> For example you can use every iOS font with just an enum!<br> 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<br>(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
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 <br> Email: fabrizio.brancati@gmail.com
License
BFKit-Swift is available under the MIT license. See the LICENSE file for more info.