be sceptic about ReactiveCocoa, so my goal for today will be to show that it’s not that bad. I don’t pretend to be expert in functional, reactive or functional reactive programming, but I’d like to show you how it can solve problems. At least for me
SIGNAL •Sends value/(s) to its observers •Sends completions and errors •Can participate in expressions, resulting in new signals or producing state •Signal is universal abstraction
derivate of RACStream that can be observable with side-effects •RACSignal is the entity that manages the concept of subscription •Subscription has it’s start and finish •There can be multiple subscriptions
derivate of RACStream that converts composite type to stream •Thus RACSequence makes array, dictionary, string a monad •Thus functional additions are added to Foundation
retain cycles •Debugging complexity •Values-over-time are difficult to test •Complex expressions are often way unreadable. Especially without ReactiveCocoa experience
to observe lifetimes when debugging intermittent crashes •use RACSignal (Debug) category with log methods •try breaking complex signal expressions and inject side effects on each step
may produce a signal, indicating status of some underlying operation. •Observing results in Disposable, used to terminate observation & stop sending values