Binder
Binder copied to clipboard
🦁"Hello World" <-> [🏷, 🏷, 🏷, 🏷]
A lightweight data binding for components on iOS
About
A lightweight data binding for components on iOS, easy to use and does not have retain cycle.

Contributing
- Fork project
- Checkout master branch
- Create Feature branch off of the master branch
- Create awesome feature/enhancement/bug-fix
- Optionally create Issue to discuss feature
- Submit pull request from your Feature branch to Binder's master branch
Installation
Cocoapods
use_frameworks!
pod 'Binder'
Carthage
Add Binder to you Cartfile
github "khuong291/Binder"
Install using
carthage update --platform ios
Manually
- Download and drop
/Binder
folder in your project. - You're done!
Getting started
Create a Binder object:
private let colorBinder: Binder<UIColor, ViewBindingType> = Binder(value: .white, type: .backgroundColor)
private let textBinder: Binder<String, LabelBindingType> = Binder(value: "Hello", type: .text)
You can bind many components as you want:
colorBinder <-> [view1, view2, view3, view4]
textBinder <-> label1 <-> label2 <-> label3 <-> label4
Change the binder value:
colorBinder.value = .green
textBinder.value = "Green Color"
If you want to avoid retain cycle, you should remove binder objects:
deinit {
colorBinder.remove()
textBinder.remove()
}
And that's it ;)
Requirements
- iOS 9.0+
- Xcode 8.0+
- Swift 3.0+
Author
License
Binder is released under the MIT license.
See LICENSE for details.