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
420
Cloud Deep Learning for everyone
ejsohn
0
160
Microservice with go and gRPC
ejsohn
1
630
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
AI巻き込み型コードレビューのススメ
nealle
1
220
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
100
Data-Centric Kaggle
isax1015
2
770
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
450
CSC307 Lecture 03
javiergs
PRO
1
490
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
700
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
190
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
AtCoder Conference 2025
shindannin
0
1.1k
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
230
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
We Have a Design System, Now What?
morganepeng
54
8k
Paper Plane
katiecoart
PRO
0
46k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Building Applications with DynamoDB
mza
96
6.9k
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
For a Future-Friendly Web
brad_frost
182
10k
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
How to Talk to Developers About Accessibility
jct
2
130
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
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