All Projects β†’ khuong291 β†’ Binder

khuong291 / Binder

Licence: MIT license
🦁"Hello World" <-> [🏷, 🏷, 🏷, 🏷]

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to Binder

Reactiveui
An advanced, composable, functional reactive model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming. ReactiveUI allows you to abstract mutable state away from your user interfaces, express the idea around a feature in one readable place and improve the testability of your application.
Stars: ✭ 6,709 (+18032.43%)
Mutual labels:  reactive-programming, reactiveui
movies
An example approach for modularization, reactive clean architecture and persistancy.
Stars: ✭ 110 (+197.3%)
Mutual labels:  reactive-programming
ReproducibleHistory
Demo project for reproducing history on Android
Stars: ✭ 13 (-64.86%)
Mutual labels:  reactive-programming
OpenCVVision
使用OpenCvSharpεˆ›ε»ΊεΈΈη”¨εŠŸθƒ½ι›†εˆ
Stars: ✭ 37 (+0%)
Mutual labels:  reactiveui
ureact
Minimalistic reactive library for c++
Stars: ✭ 122 (+229.73%)
Mutual labels:  reactive-programming
raylib-zig
Manually tweaked, auto generated raylib bindings for zig. https://github.com/raysan5/raylib
Stars: ✭ 122 (+229.73%)
Mutual labels:  binding
codegen
Generator for dart_native bindings. Codegen can transform native SDK to Flutter plugin.
Stars: ✭ 75 (+102.7%)
Mutual labels:  binding
janetrs
Rust high level bindings for Janet
Stars: ✭ 36 (-2.7%)
Mutual labels:  binding
pyguetzli
Python bindings for Google's Guetzli, a JPEG encoder that optimises JPEG compression
Stars: ✭ 28 (-24.32%)
Mutual labels:  binding
assembler
Functional, type-safe, stateless reactive Java API for efficient implementation of the API Composition Pattern for querying/merging data from multiple datasources/services, with a specific focus on solving the N + 1 query problem
Stars: ✭ 102 (+175.68%)
Mutual labels:  reactive-programming
Rx.Http
A reactive way to make HTTP Request in .NET Core πŸš€
Stars: ✭ 62 (+67.57%)
Mutual labels:  reactive-programming
Akka
Examples and explanations of how Akka toolkit works
Stars: ✭ 20 (-45.95%)
Mutual labels:  reactive-programming
imgui-java
JNI based binding for Dear ImGui
Stars: ✭ 270 (+629.73%)
Mutual labels:  binding
KotlinReactiveMS
An educational project to learn reactive programming with Spring 5 and Kotlin
Stars: ✭ 33 (-10.81%)
Mutual labels:  reactive-programming
observe-component
A library for accessing React component events as reactive observables
Stars: ✭ 36 (-2.7%)
Mutual labels:  reactive-programming
mybinder.org-deploy
Deployment config files for mybinder.org
Stars: ✭ 64 (+72.97%)
Mutual labels:  binder
Forbind
Functional chaining and promises in Swift
Stars: ✭ 44 (+18.92%)
Mutual labels:  binding
SwiftObserver
Elegant Reactive Primitives for Clean Swift Architecture #NoRx
Stars: ✭ 14 (-62.16%)
Mutual labels:  reactive-programming
fpEs
Functional Programming for EcmaScript(Javascript)
Stars: ✭ 40 (+8.11%)
Mutual labels:  reactive-programming
python-for-excel
This is the companion repo of the O'Reilly book "Python for Excel".
Stars: ✭ 253 (+583.78%)
Mutual labels:  binder

Version Carthage compatible Swift 4.0 Platform License

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

  1. Fork project
  2. Checkout master branch
  3. Create Feature branch off of the master branch
  4. Create awesome feature/enhancement/bug-fix
  5. Optionally create Issue to discuss feature
  6. 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

  1. Download and drop /Binder folder in your project.
  2. 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

Khuong Pham

License

Binder is released under the MIT license.
See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].