Piotr Guzia: Programowanie reaktywne staje się coraz popularniejsze w różnych technologiach. W iOS zdania są podzielone, jest grupa zwolenników i przeciwników tego podejścia do programowania. Jak zacząć? O co w tym chodzi? Jakiej architektury użyć? Kto ma rację? Czy Rx rozwiąże problem globalnego ocieplenia? Wiele pytań i trochę odpowiedzi – to to, czym chcę się z Wami podzielić.
4. Rx - iOS dwa bratanki…
O CZYM POWIEM?
▸ O co chodzi z tym programowaniem reaktywnym?
5. Rx - iOS dwa bratanki…
O CZYM POWIEM?
▸ O co chodzi z tym programowaniem reaktywnym?
▸ Everything is an observable stream
6. Rx - iOS dwa bratanki…
O CZYM POWIEM?
▸ O co chodzi z tym programowaniem reaktywnym?
▸ Everything is an observable stream
▸ Subjects
7. Rx - iOS dwa bratanki…
O CZYM POWIEM?
▸ O co chodzi z tym programowaniem reaktywnym?
▸ Everything is an observable stream
▸ Subjects
▸ Operatory
8. Rx - iOS dwa bratanki…
O CZYM POWIEM?
▸ O co chodzi z tym programowaniem reaktywnym?
▸ Everything is an observable stream
▸ Subjects
▸ Operatory
▸ Tips n’ Tricks
10. Rx - iOS dwa bratanki…
PROGRAMOWANIE REAKTYWNE
▸ Kolejny paradygmat programowania…
11. Rx - iOS dwa bratanki…
PROGRAMOWANIE REAKTYWNE
▸ Kolejny paradygmat programowania…
▸ Opiera się na asynchronicznym przekazywaniu sygnałów
między obserwatorem a zainteresowanymi
12. Rx - iOS dwa bratanki…
PROGRAMOWANIE REAKTYWNE
▸ Kolejny paradygmat programowania…
▸ Opiera się na asynchronicznym przekazywaniu sygnałów
między obserwatorem a zainteresowanymi
▸ Dużo sznureczków i kropeczek…
13. Rx - iOS dwa bratanki…
PROGRAMOWANIE REAKTYWNE
▸ Kolejny paradygmat programowania…
▸ Opiera się na asynchronicznym przekazywaniu sygnałów
między obserwatorem a zainteresowanymi
▸ Dużo sznureczków i kropeczek…
35. Rx - iOS dwa bratanki…
BEHAVIOR SUBJECT
▸ Do inicjalizacji konieczne jest podanie wartości startowej,
po zasubskrybowaniu powtarza ostatnią wartość
36. Rx - iOS dwa bratanki…
BEHAVIOR SUBJECT
▸ Do inicjalizacji konieczne jest podanie wartości startowej,
po zasubskrybowaniu powtarza ostatnią wartość
37. Rx - iOS dwa bratanki…
BEHAVIOR SUBJECT
▸ Do inicjalizacji konieczne jest podanie wartości startowej,
po zasubskrybowaniu powtarza ostatnią wartość
39. Rx - iOS dwa bratanki…
REPLAY SUBJECTS
▸ Inicjalizacja wymaga podania rozmiaru tego obiektu. Po
każdej subskrypcji wszystkie elementy będą zawsze
powtarzane.
40. Rx - iOS dwa bratanki…
REPLAY SUBJECTS
▸ Inicjalizacja wymaga podania rozmiaru tego obiektu. Po
każdej subskrypcji wszystkie elementy będą zawsze
powtarzane.
41. Rx - iOS dwa bratanki…
REPLAY SUBJECTS
▸ Inicjalizacja wymaga podania rozmiaru tego obiektu. Po
każdej subskrypcji wszystkie elementy będą zawsze
powtarzane.
43. Rx - iOS dwa bratanki…
VARIABLE
▸ Obudowanie na Behavior Subject - zachowuje się tak
samo ale przechowuje obecny stan - Value, który
dodatkowo daje możliwość edycji elementów jak zwykły
Array
44. Rx - iOS dwa bratanki…
VARIABLE
▸ Obudowanie na Behavior Subject - zachowuje się tak
samo ale przechowuje obecny stan - Value, który
dodatkowo daje możliwość edycji elementów jak zwykły
Array
45. Rx - iOS dwa bratanki…
VARIABLE
▸ Obudowanie na Behavior Subject - zachowuje się tak
samo ale przechowuje obecny stan - Value, który
dodatkowo daje możliwość edycji elementów jak zwykły
Array
78. Rx - iOS dwa bratanki…
RxAnimatableDataSource
▸ Bindowanie danych bezpośrednio do tabeli
79. Rx - iOS dwa bratanki…
RxAnimatableDataSource
▸ Bindowanie danych bezpośrednio do tabeli
▸ Animacje przy edycji wierszy
80. Rx - iOS dwa bratanki…
RxAnimatableDataSource
▸ Bindowanie danych bezpośrednio do tabeli
▸ Animacje przy edycji wierszy
▸ Krótszy kod w porównaniu do UITableViewDataSource
86. Rx - iOS dwa bratanki…
PODSUMOWANIE
▸ Wieloplatformowa idea
+
87. Rx - iOS dwa bratanki…
PODSUMOWANIE
▸ Wieloplatformowa idea
▸ Mniej kodu
+
88. Rx - iOS dwa bratanki…
PODSUMOWANIE
▸ Wieloplatformowa idea
▸ Mniej kodu
▸ Asynchroniczne działanie
+
89. Rx - iOS dwa bratanki…
PODSUMOWANIE
▸ Wieloplatformowa idea
▸ Mniej kodu
▸ Asynchroniczne działanie
▸ Sporo praktycznych
dodatków
przyspieszających pracę
+
90. Rx - iOS dwa bratanki…
PODSUMOWANIE
▸ Wieloplatformowa idea
▸ Mniej kodu
▸ Asynchroniczne działanie
▸ Sporo praktycznych
dodatków
przyspieszających pracę
▸ Wiele popularnych
bibliotek wspiera Rx
+
91. Rx - iOS dwa bratanki…
PODSUMOWANIE
▸ Wieloplatformowa idea
▸ Mniej kodu
▸ Asynchroniczne działanie
▸ Sporo praktycznych
dodatków
przyspieszających pracę
▸ Wiele popularnych
bibliotek wspiera Rx
+ -
92. Rx - iOS dwa bratanki…
PODSUMOWANIE
▸ Wieloplatformowa idea
▸ Mniej kodu
▸ Asynchroniczne działanie
▸ Sporo praktycznych
dodatków
przyspieszających pracę
▸ Wiele popularnych
bibliotek wspiera Rx
▸ Wysoki próg wejścia
+ -
93. Rx - iOS dwa bratanki…
PODSUMOWANIE
▸ Wieloplatformowa idea
▸ Mniej kodu
▸ Asynchroniczne działanie
▸ Sporo praktycznych
dodatków
przyspieszających pracę
▸ Wiele popularnych
bibliotek wspiera Rx
▸ Wysoki próg wejścia
▸ Specyficzny kod
+ -
94. Rx - iOS dwa bratanki…
PODSUMOWANIE
▸ Wieloplatformowa idea
▸ Mniej kodu
▸ Asynchroniczne działanie
▸ Sporo praktycznych
dodatków
przyspieszających pracę
▸ Wiele popularnych
bibliotek wspiera Rx
▸ Wysoki próg wejścia
▸ Specyficzny kod
▸ Trudniejsze
debugowanie
+ -
95. Rx - iOS dwa bratanki…
ŹRÓDŁA I PRZYKŁADY
▸ http://reactivex.io/
▸ https://github.com/ReactiveX/RxSwift
▸ https://github.com/RxSwiftCommunity
▸ https://itunes.apple.com/pl/app/rxmarbles/
id1087272442?l=pl&mt=8
▸ http://adamborek.com
▸ http://rxswift-slack.herokuapp.com