ReactiveCocoa
Делаем отзывчивое приложение.\m/
Актуальность темы: тренд FP
Актуальность темы: тренд FP
RxJava
React.js
ReactiveCocoa
&& so on
Мифы о ФП
ФП - это сложно
Мифы о ФП
ФП - это сложно
ФП - это решение всех проблем
В двух словах о ФП:
Иммутабельность
В двух словах о ФП:
Иммутабельность
Функции высшего порядка
Проблемы
Нельзя блокировать UI thread (а ресурсы ограничены)
Проблемы
Нельзя блокировать UI thread >>>
Очень многие операции выполняются асинхронно в фоне
Проблемы
Нельзя блокировать UI thread
Очень многие операции выполняются асинхронно в фоне
Нам часто нужны цепочки из таких операций
Проблемы
Нельзя блокировать UI thread
Очень многие операции выполняются асинхронно в фоне
Нам часто нужны цепочки из таких операций
И масштабируемость (цепочка может быть частью более крупного конвейера)
Проблемы
Нельзя блокировать UI thread
Очень многие операции выполняются асинхронно в фоне
Нам часто нужны цепочки из таких операций
И масштабируемость (цепочка может быть частью более крупного конвейера)
(and we need to go deeper)
NSNotification hell
Talk is cheap, show me the code.
Еще один пример конвейера
findAll where sortBy fetch take
Основные сигналы и как их готовить
map, filter
Основные сигналы и как их готовить
merge, concat
Основные сигналы и как их готовить
then, flattenMap
Основные сигналы и как их готовить
delay
throttle
repeat
initially
finally
...
Многопоточность
subscribeOn, deliverOn
Сайд-эффекты
doNext / doError / doCompleted
Data binding && MVVM
Управление интерфейсом
Боль
subscribeNext(): subscribe WHAT?
Боль
subscribeNext(): subscribe WHAT?
Заметный оверхэд (привет, stack overflow)
Боль
subscribeNext(): subscribe WHAT?
Заметный оверхэд (привет, stack overflow)
Debug: шлак в стеке вызовов
TL;DR (TL;DL)
Субъективное резюме
The Good, the Bad and The Ugly
The Good:
Reactive Cocoa божественен для работы со сложными цепочками асинхронных операций и в качестве замены NSNotification и NSOperationQueue
The Good, the Bad and The Ugly
The Bad:
Data binding, RACObserve и управление интерфейсом через RAC - дискуссионно и на любителя
The Good, the Bad and The Ugly
The Ugly:
MVVM под iOS - оверинжиниринг