2. FUNCTIONAL
• stateless; state is derived instead
(cell c = cell a + cell b)
• immmmmmmmutable data
• dôraz na high-order funkcie (ktoré produkujú vyýstup na
základe vstupov)
• funkcie ako 1st class objekty
4. REACTIVE
• práca s asynchrónnymi data streams
• …taktiež s nested callbacks, complexnými list filtering/
transformáciami alebo timing concerns
• integruje koncept času a kompozíciu udalostí spolu s
funkcionálnym programovaním.
• od MS, spolu aj s MVVM
5. ReactiveCocoa
• obj-c / swift implementácia pre iOS & Mac OS X
• zjednocuje programovacie API pre všetky eventy
• KVO, delegate, notifications, block syntax, target-action
• od 3.0 podpora Swift
7. RACSequence
• lazily-loaded kolekcie
• podobný účel ako NSArray
• pridáva funkcie, ktoré Foundatin nemá: map*, filter, fold/reduce…
• objekty kolekcie netransformujú, až kým nie sú vytiahnuté (for-in, etc.)
RACSequence *normalizedLongWords = [[words.rac_sequence
filter:^ BOOL (NSString *word) {
return [word length] >= 10;
}]
map:^(NSString *word) {
return [word lowercaseString];
}];
* swift už map vie
8. RACSignal
• rúra, ktora nesie hodnotu ( input > transform > output )
• signály môžu byť (a budú) reťazené (funkcia pojme
funkciu)
• Chaining of Dependent Operations
• Parallelizing Independent Work
• (Hint *) Signály sú interne postavené na KVO
9. RACSignal (cont.)
• signál posiela 3 druhy eventov: next, finished, error
• next nesie naše dáta ( = čokoľvek)
• Subscribe (na základe čoho robíme side-effects)
• binding pomocou RAC()
• nahradzujú @property (niekedy)
• neprepisuje/nemodifikuje pôvodný stream. (immutability)
• 0, 1, alebo > 1 subscriberov
• alebo si ich vytvoríme: RACObserve() (zabalí
dynamickú property)