Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/FabrizioBrancati/BFKit-Swift
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.
https://github.com/FabrizioBrancati/BFKit-Swift
appkit bfkit bfkit-swift carthage cocoapods codebeat codecov foundation ios linux macos swift swift-3 swift-extensions swift-package-manager uikit watchkit xcode
Last synced: 3 days ago
JSON representation
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.
- Host: GitHub
- URL: https://github.com/FabrizioBrancati/BFKit-Swift
- Owner: FabrizioBrancati
- License: mit
- Created: 2015-04-01T20:46:51.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2020-11-01T16:48:14.000Z (about 4 years ago)
- Last Synced: 2024-12-01T05:05:17.508Z (11 days ago)
- Topics: appkit, bfkit, bfkit-swift, carthage, cocoapods, codebeat, codecov, foundation, ios, linux, macos, swift, swift-3, swift-extensions, swift-package-manager, uikit, watchkit, xcode
- Language: Swift
- Homepage: https://www.fabriziobrancati.com
- Size: 24.3 MB
- Stars: 1,003
- Watchers: 26
- Forks: 106
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ios - BFKit-Swift - A Swift collection of useful classes to develop Apps faster. (Utility / Web View)
- awesome-swift - BFKit-Swift - A collection of useful classes, structs and extensions to develop Apps faster. (Libs / Kit)
- awesome-swift - BFKit-Swift - A collection of useful classes to develop Apps faster. (Extensions)
- awesome-swift - BFKit-Swift - A collection of useful classes, structs and extensions to develop Apps faster. (Libs / Kit)
- awesome-ios-star - BFKit-Swift - A Swift collection of useful classes to develop Apps faster. (Utility / Web View)
- fucking-awesome-swift - BFKit-Swift - A collection of useful classes, structs and extensions to develop Apps faster. (Libs / Kit)
- awesome-swift-cn - BFKit-Swift - A collection of useful classes to develop Apps faster. (Libs / Kit)
- awesome-swift - BFKit-Swift - BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster. ` 📝 a year ago ` (Kit [🔝](#readme))
README
[![Build Status](https://travis-ci.com/FabrizioBrancati/BFKit-Swift.svg?branch=master)](https://travis-ci.com/FabrizioBrancati/BFKit-Swift)
[![Coverage Status](https://coveralls.io/repos/github/FabrizioBrancati/BFKit-Swift/badge.svg?branch=master)](https://coveralls.io/github/FabrizioBrancati/BFKit-Swift?branch=master)
[![Maintainability](https://api.codeclimate.com/v1/badges/60359bcef632cb10685b/maintainability)](https://codeclimate.com/github/FabrizioBrancati/BFKit-Swift/maintainability)
[![Codebeat Badge](https://codebeat.co/badges/b8c2fc8c-73f4-4faf-b95b-85209eeaecbe)](https://codebeat.co/projects/github-com-fabriziobrancati-bfkit-swift-master)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/e414ec81c78244038cd4a26078553a00)](https://www.codacy.com/manual/FabrizioBrancati/BFKit-Swift)
[![Documentation](https://github.fabriziobrancati.com/documentation/Queuer/badge.svg)](https://github.fabriziobrancati.com/documentation/BFKit-Swift/)
[![Swift Package Manager Compatible](https://img.shields.io/badge/SPM-compatible-brightgreen.svg)](https://github.com/apple/swift-package-manager)
[![Carthage Compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
[![Version](https://img.shields.io/cocoapods/v/BFKit-Swift.svg?style=flat)][Documentation]
[![Language](https://img.shields.io/badge/language-Swift%205.1-orange.svg)](https://swift.org/)
[![Platforms](https://img.shields.io/badge/platforms-iOS%20%7C%20macOS%20%7C%20watchOS%20%7C%20Linux-cc9c00.svg)][Documentation]
[![License](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://github.com/FabrizioBrancati/BFKit-Swift/blob/master/LICENSE)---
Features •
Classes and Extensions Compatibility •
Requirements •
Communication •
Contributing •
Installing and Usage •
Documentation •
Changelog •
Example •
Todo •
Author •
License---
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](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Structs/BFApp.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [BFBiometric](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Structs/BFBiometric.html) | ![✓] | | | |
| [BFButton](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Classes/BFButton.html) | ![✓] | | | |
| BFDataStructures
([List](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Structs/List.html) - [Queue](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Structs/Queue.html) - [Stack](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Structs/Stack.html)) | ![✓] | ![✓] | ![✓] | ![✓] |
| [BFLog](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Structs/BFLog.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [BFPassword](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Structs/BFPassword.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [BFSystemSound](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Classes/BFSystemSound.html) | ![✓] | | | |
| [BFTextField](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Classes/BFTextField.html) | ![✓] | | | |
| [BFTouchID](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Structs/BFTouchID.html) | ![✓] | | | |### Foundation
| | **iOS** | **macOS** | **watchOS** | **Linux** |
|-----------------|---------|-----------|-------------|-----------|
| [Array](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/Array.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [Collection](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/Collection.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [Data](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/Data.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [Date](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/Date.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [FileManager](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/FileManager.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [Number](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Functions.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [NSObject](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/NSObject.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [NSAttributedString](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/NSAttributedString.html) | ![✓] | ![✓] | ![✓] | |
| [NSPointerArray](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/NSPointerArray.html) | ![✓] | ![✓] | ![✓] | |
| [ProcessInfo](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/ProcessInfo.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [Set](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/Set.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [String](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/String.html) | ![✓] | ![✓] | ![✓] | ![✓] |
| [Thread](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Functions.html) | ![✓] | ![✓] | ![✓] | ![✓] |### Core Graphics
| | **iOS** | **macOS** | **watchOS** | **Linux** |
|-----------------|---------|-----------|-------------|-----------|
| CGPoint | ![✓] | ![✓] | ![✓] | |### UIKit / AppKit
| | **iOS** | **macOS** | **watchOS** | **Linux** |
|-----------------|---------|-----------|-------------|-----------|
| [UIBarButtonItem](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIBarButtonItem.html) | ![✓] | | | |
| [UIButton](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIButton.html) | ![✓] | | | |
| [UIColor](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIColor.html) | ![✓] | ![✓] | ![✓] | |
| [UIDevice](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIDevice.html) | ![✓] | | | |
| [UIFont](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIFont.html) | ![✓] | | ![✓] | |
| [UIImage](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIImage.html) | ![✓] | | ![✓] | |
| [UIImageView](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIImageView.html) | ![✓] | | | |
| [UILabel](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UILabel.html) | ![✓] | | | |
| [UINavigationBar](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UINavigationBar.html) | ![✓] | | | |
| [UIPasteboard](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIPasteboard.html) | ![✓] | | | |
| [UIScreen](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIScreen.html) | ![✓] | | | |
| [UIScrollView](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIScrollView.html) | ![✓] | | | |
| [UITableView](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UITableView.html) | ![✓] | | | |
| [UITextField](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UITextField.html) | ![✓] | | | |
| [UITextView](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UITextView.html) | ![✓] | | | |
| [UIToolbar](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIToolbar.html) | ![✓] | | | |
| [UIView](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIView.html) | ![✓] | | | |
| [UIViewController](https://github.com/FabrizioBrancati/BFKit-Swift/blob/master/Sources/BFKit/iOS/UIKit/UIViewControllerExtension.swift) | ![✓] | | | |
| [UIWindow](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIWindow.html) | ![✓] | | | |### WebKit
| | **iOS** | **macOS** | **watchOS** | **Linux** |
|-----------------|---------|-----------|-------------|-----------|
| [UIWebView](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/UIWebView.html) | ![✓] | ![✓] | | |### WatchKit
| | **iOS** | **macOS** | **watchOS** | **Linux** |
|-----------------|---------|-----------|-------------|-----------|
| [WKInterfaceController](https://github.fabriziobrancati.com/documentation/BFKit-Swift/Extensions/WKInterfaceController.html) | | | ![✓] | |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](https://github.com/FabrizioBrancati/BFKit-Swift#contributing) section.Contributing
============See [CONTRIBUTING.md](https://github.com/FabrizioBrancati/BFKit-Swift/blob/master/.github/CONTRIBUTING.md) file.
Installing and Usage
====================See [Requirements](https://github.com/FabrizioBrancati/BFKit-Swift#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:```ruby
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:```ruby
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:```sh
/usr/local/bin/carthage copy-frameworks
```Add the paths to the BFKit-Swift framework under **Input Files**
```sh
$(SRCROOT)/Carthage/Build/iOS/BFKit.framework
```Add the paths to the copied frameworks to the **Output Files**
```sh
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/BFKit.framework
```This script works around an [App Store submission bug](http://www.openradar.me/radar?id=6409498411401216) triggered by universal binaries and ensures that necessary bitcode-related files are copied when archiving
- **(Optional)** Add Build Phase with the following contents```sh
/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
// swift-tools-version:5.1
import PackageDescriptionlet 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% DocumentedChangelog
=========To see what has changed in recent versions of BFKit-Swift, see the **[CHANGELOG.md](https://github.com/FabrizioBrancati/BFKit-Swift/blob/master/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
- [x] Add macOS support
- [x] Add watchOS support
- [x] Create Unit Tests and add Codecov badge
- [x] Add Linux support (Foundation extensions only)
- [x] Add Carthage support
- [x] Add to CocoaPods
- [x] Create a great documentationAuthor
======**Fabrizio Brancati**
[Website: https://www.fabriziobrancati.com](https://www.fabriziobrancati.com)
[Email: [email protected]](mailto:[email protected])License
=======BFKit-Swift is available under the MIT license. See the **[LICENSE](https://github.com/FabrizioBrancati/BFKit-Swift/blob/master/LICENSE)** file for more info.
[Documentation]: https://github.fabriziobrancati.com/documentation/BFKit-Swift/
[✓]: Resources/Check.png