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
Implementing Reactive Programming with ReSwift
Search
Eunju Amy Sohn
December 13, 2017
Programming
0
180
Implementing Reactive Programming with ReSwift
2017 Swift Korea Meetup 2 - ReSwift로 리액티브 프로그래밍 구현하기
Eunju Amy Sohn
December 13, 2017
Tweet
Share
More Decks by Eunju Amy Sohn
See All by Eunju Amy Sohn
내가 커뮤니티 스피킹을 하는 이유
ejsohn
1
370
Cloud Deep Learning for everyone
ejsohn
0
150
Microservice with go and gRPC
ejsohn
1
560
Spot Utilization for GPU Instance Cost Efficiency
ejsohn
0
87
40만명이 쓰는 Django channels 채팅서버, 우리는 어떻게 만들었나?
ejsohn
1
2.4k
Other Decks in Programming
See All in Programming
ESLintプラグインを使用してCDKのセオリーを適用する
yamanashi_ren01
2
270
Linux && Docker 研修/Linux && Docker training
forrep
16
3k
SRE、開発、QAが協業して挑んだリリースプロセス改革@SRE Kaigi 2025
nealle
1
2.8k
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
2.3k
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
18
3k
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
28
6.1k
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
7.8k
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
1
160
“あなた” の開発を支援する AI エージェント Bedrock Engineer / introducing-bedrock-engineer
gawa
9
1k
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
970
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
Amazon Bedrock Multi Agentsを試してきた
tm2
1
180
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Making the Leap to Tech Lead
cromwellryan
133
9k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
It's Worth the Effort
3n
184
28k
Fireside Chat
paigeccino
34
3.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Visualization
eitanlees
146
15k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Adopting Sorbet at Scale
ufuk
74
9.2k
Transcript
ReSwift 로 리액티브 프로그래밍 구현하 기 Swift Korea Meetup #2
Eunju Sohn
• 손은주 • 한양대학교 정보시스템학과 재학중 • 매스프레소 iOS 개발자
(콴다!) • Github @EJSohn
None
ReSwift는 단방향 데이터 흐름을 기본으 로 한 아키텍처 라이브러리 (Redux의
swift 구 현체) * https://github.com/ReSwift/ReSwift
그런데 왜..?
• https://en.wikipedia.org/wiki/Reactive_programming • https://karlbowden.com/reswift-prezzo/ • https://stackoverflow.com/questions/34497343/redux-rxjs-any-similarities
1. 2. 3. 4. ReSwift 동작 구조
*https://karlbowden.com/reswift-prezzo/ 현재 재생중인 노래 현재 재생중인 노래 같은 뷰 X
None
ReSwift Point App SubtractViewController AddViewController
State State Changes Views - 앱의 모든 상태는 Store에 저장되어
관리
State AppState.swift
Store AppDelegate.swift
State State Changes Views - 앱의 모든 상태는 Store에 저장되어
관리 - State는 Action에 의해서만 변경 가능 - 단방향 데이터 흐름
Action
Reducer AppReducer.swift
State State Changes Views - 앱의 모든 상태는 Store에 저장되어
관리 - State가 변화할 때 업데이트 - State는 Action에 의해서만 변경 가능 - 단방향 데이터 흐름
구독 UI AddViewController.swift
Action 디스패치 변화한 State 값을 비동기적으로 전달 AddViewController.swift 1. 2.
3.
SubtractViewController.swift Store에 subscribe한 객체들도 모두 동시에 알림을 받습니다! = state에
관련된 모든 UI 업데이트
None
언제 ReSwift를 사용하면 좋을까? • 여러 곳에서 같은 state를 사용,
변경하는 어플리케이션 • 부작용 핸들링을 해야할 때 • 단방향 데이터 흐름으로 부작용 최소화 • 웹소켓, 다양한 API를 사용할 때 * https://karlbowden.com/reswift-prezzo/
이럴 때는 추천드리지 않습니다 • State가 너무 많거나 큰 어플리케이션
• Ex) Image를 직접적으로 저장해두지 말아주세요 • 제스쳐 액션 퍼포먼스가 중요한 앱일 때 • RxSwift를 쓰세요! • Reducer를 심하게 괴롭힐 가능성이 있을 때 (끊이지 않는 action) • 속도 문제를 고려해야합니다. * https://karlbowden.com/reswift-prezzo/
PS. Redux는 Rx와도 잘 어울립니다! * https://redux.js.org/docs/introduction/PriorArt.html
References • https://github.com/ReSwift/ReSwift/issues/78 • https://stackoverflow.com/questions/34497343/redux-rxjs-any- similarities • https://redux.js.org/docs/introduction/PriorArt.html • https://github.com/ReSwift/ReSwift
• https://karlbowden.com/reswift-prezzo/ • https://medium.com/cocoaacademymag/architecture-thoughts- migrating-marvels-ios-app-to-reswift-ef7f20e84e60