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
230
0
Share
Implementing Reactive Programming with ReSwift
2017 Swift Korea Meetup 2 - ReSwift로 리액티브 프로그래밍 구현하기
Eunju Amy Sohn
December 13, 2017
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
120
40만명이 쓰는 Django channels 채팅서버, 우리는 어떻게 만들었나?
ejsohn
1
2.5k
Other Decks in Programming
See All in Programming
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
3.2k
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
3
240
AIを導入する前にやるべきこと
negima
2
370
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
23
13k
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
3
190
Sans tests, vos agents ne sont pas fiables
nabondance
0
140
運転動画を検索可能にする〜Cosmos-Embed1とDatabricks Vector Searchで〜/cosmos-embed1-databricks-vector-search
studio_graph
3
960
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
1
140
GitHubCopilotCLIをはじめよう.pdf
htkym
0
340
Hive Metastoreを通して学ぶIceberg REST Catalog ― 仕様から実装まで
okumin
0
160
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.9k
AWSはOSSをどのように 考えているのか?
akihisaikeda
0
120
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
370
First, design no harm
axbom
PRO
2
1.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
170
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
690
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
740
Rails Girls Zürich Keynote
gr2m
96
14k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
330
Odyssey Design
rkendrick25
PRO
2
620
Claude Code のすすめ
schroneko
67
220k
Speed Design
sergeychernyshev
33
1.7k
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