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
220
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
430
Cloud Deep Learning for everyone
ejsohn
0
160
Microservice with go and gRPC
ejsohn
1
640
Spot Utilization for GPU Instance Cost Efficiency
ejsohn
0
110
40만명이 쓰는 Django channels 채팅서버, 우리는 어떻게 만들었나?
ejsohn
1
2.5k
Other Decks in Programming
See All in Programming
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.8k
OTP を自動で入力する裏技
megabitsenmzq
0
110
Claude Code Skill入門
mayahoney
0
390
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
520
AHC061解説
shun_pi
0
380
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
2
370
Fundamentals of Software Engineering In the Age of AI
therealdanvega
1
260
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
160
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
390
Claude Codeログ基盤の構築
giginet
PRO
7
3.3k
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
290
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
250
Featured
See All Featured
Designing Powerful Visuals for Engaging Learning
tmiket
0
280
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
200
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
170
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
220
The Curse of the Amulet
leimatthew05
1
10k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
260
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
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