I'm using this for a greenfields project and, while we haven't shipped yet, so far, I'm quite impressed by this framework. It's also one of the few (only?) moderately mature Swift-native binding frameworks available right now, based on my research. (Others are available, but most are in a decidedly beta state and often lacking full documentation.)
On a related note, designing an iOS app in an MVVM fashion (which is a common theme among binding framework users) is quite the treat.
To be honest, it does too much. It tries to solve every possible corner case so your project will be really tied to this library and you will not be able to switch if it is needed.
Can someone give me a quick overview of how something like this works? I have experience with swift and Obj-C but there is a lot of dynamic stuff happening. For ex what's "objc_setAssociatedObject", is this needed, no 'clean' way to do it?
It wraps a value into box and whenever you modify box it triggers events and you chain these boxes together so whenever there is a change in one box, it passes the value to other box. Because one box can hold the other and vice versa.
Everything is resolved at compile time, there isn't any dynamism involved and neither associated objects.
On a related note, designing an iOS app in an MVVM fashion (which is a common theme among binding framework users) is quite the treat.