Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RxSwift Xcoders Riga meetup
Search
Kristaps Grinbergs
January 23, 2019
Technology
0
1.7k
RxSwift Xcoders Riga meetup
Kristaps Grinbergs
January 23, 2019
Tweet
Share
More Decks by Kristaps Grinbergs
See All by Kristaps Grinbergs
Decoding Smart Contracts: From Creation to NFT Integration
fassko
0
740
From Web2 to Web3. A developer story.
fassko
0
1.1k
A journey from Swift to Solidity
fassko
0
1.2k
A journey into the SwiftUI world - Tech Stash by Mintos
fassko
0
1.3k
How to use SwiftUI for rapid development
fassko
0
1.4k
We need to talk about Websockets
fassko
0
2.7k
How to tame Core Animation
fassko
0
1.8k
The A - Z Guide Of iOS App Development
fassko
1
1.7k
RxSwift
fassko
0
81
Other Decks in Technology
See All in Technology
フルスタックGoでスコア改ざんを防いだ話
ponyo877
0
450
通話データから価値を生む 生成AIデータ基盤の実践 / CO-LAB_Tech_Night
sansan_randd
0
110
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
1
650
猫でもわかるKiro CLI(セキュリティ編)
kentapapa
1
250
AI時代のAPIファースト開発
nagix
1
110
AIで 浮いた時間で 何をする? 2026春 #devsumi
konifar
5
1.2k
2026年のAIエージェント構築はどうなる?
minorun365
6
960
React 19時代のコンポーネント設計ベストプラクティス
uhyo
14
4.9k
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
3
340
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
350
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
7.9k
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
9
750
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
72
A Modern Web Designer's Workflow
chriscoyier
698
190k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
260
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.2k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.3k
Everyday Curiosity
cassininazir
0
140
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
120
For a Future-Friendly Web
brad_frost
182
10k
The Cult of Friendly URLs
andyhume
79
6.8k
Building an army of robots
kneath
306
46k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
61
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Transcript
RxSwift Introduction to reactive programming Kristaps Grinbergs @fassko
RxSwift isn't KVO, ReactNative or ReactJS
About me • Swift developer at Qminder • BCompSci &
MComSci unfinished DmCompSci • > 15 years in IT • love open source
None
None
Agenda • What is Rx • RxSwift and building blocks
• Examples • Pros and Cons
Imperative programming • Saved state • Order of execution •
Side effects
In computing, reactive programming is a programming paradigm oriented around
data flows and the propagation of change. Wikipedia
Reactive programming is programming with asynchronous data streams
Reactive programming • Asynchronous • No saved state • Functional
• Responsive
ReactiveX An API for asynchronous programming with observable streams. •
Microsoft (Rx.NET) - 2009 • Supports many languages • RxSwift - 2015
Rx components • Observable • Observers • Schedulers
None
None
None
Observables Completed and Error will terminate the stream Next Completed
Error
Operators Filtering Transforming Combining
None
None
RxMarbles.com
None
UI bindings RxCocoa
None
None
None
None
Testing • Async XCTest with expectations • RxBlocking making it
synchronous • Using RxTest and custom Schedulers • https://www.raywenderlich.com/7408-testing-your-rxswift-code • https://www.youtube.com/watch?v=FgbTenGH-P0
+ Agile and reusable code Thread safety Eliminate state from
code Testing Well tested Error handling Large community and extensions Extends MVVM
- Steep learning curve Change previous practices Debugging Testing Over-reactive
Overhead
None
None
Resources • http://reactivex.io/ • https://github.com/ReactiveX/RxSwift • https://github.com/RxSwiftCommunity • http://adamborek.com/ •
http://rx-marin.com/ • RayWenderlich RxSwift book • Shai Michal presentations
None