Submit Search
Upload
2つの同期 4つの状態 #pixiv_ios_arch
•
4 likes
•
3,100 views
Kenji Tanaka
Follow
2019/01/15開催の「iOSアプリ設計ナイト」の登壇資料です。 https://pixiv.connpass.com/event/112561/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 48
Download now
Download to read offline
Recommended
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
Kenji Tanaka
Bitrise & OpenSTF
Bitrise & OpenSTF
Karol Wrótniak
Microservices from operations aspect
Microservices from operations aspect
David Papp
Microservices environment in production
Microservices environment in production
David Papp
Continuous Deployment with Containers
Continuous Deployment with Containers
David Papp
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Red Hat Developers
Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017
Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017
Nilesh Shah
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2
Recommended
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
Kenji Tanaka
Bitrise & OpenSTF
Bitrise & OpenSTF
Karol Wrótniak
Microservices from operations aspect
Microservices from operations aspect
David Papp
Microservices environment in production
Microservices environment in production
David Papp
Continuous Deployment with Containers
Continuous Deployment with Containers
David Papp
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Red Hat Developers
Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017
Power of Microsoft Graph API by Nilesh Shah SharePoint Saturday Toronto 2017
Nilesh Shah
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2Con USA 2015: End-to-end Microservice Architecture with WSO2 Identity Ser...
WSO2
APIs for API Management: Consume and Develop Apps
APIs for API Management: Consume and Develop Apps
WSO2
Indore mule soft meetup 3
Indore mule soft meetup 3
Kirti Gurjar
Lightweight ESB Alternatives
Lightweight ESB Alternatives
Chris Haddad
Kubernetes - training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burnt
Amir Moghimi
Glpi 9.2-presentation
Glpi 9.2-presentation
alexandre delaunay
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
Foyzul Karim
DevOps Moves To Production (Lori MacVittie)
DevOps Moves To Production (Lori MacVittie)
Red Hat Developers
Introduction to WSO2 Developer Studio
Introduction to WSO2 Developer Studio
WSO2
Web application I have always dreamt of
Web application I have always dreamt of
Victor_Cr
Microservices: A developer's approach
Microservices: A developer's approach
Foyzul Karim
A practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization system
Foyzul Karim
2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift
Kenji Tanaka
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?
Takumi Sakamoto
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Wen-Tien Chang
Agile startup company management and operation
Agile startup company management and operation
Jiang Zhu
First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)
Daniel Toomey
Workflow Manager - a technical overview (Sam Vanhoutte)
Workflow Manager - a technical overview (Sam Vanhoutte)
Sam Vanhoutte
20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow Manager
BTUGbe
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
Vincent Biret
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
Vincent Biret
從 Ops 觀點看 DevOps, DevOps from Ops Perspective
從 Ops 觀點看 DevOps, DevOps from Ops Perspective
Robert Hu
Building your bi system-HadoopCon Taiwan 2015
Building your bi system-HadoopCon Taiwan 2015
Bryan Yang
More Related Content
What's hot
APIs for API Management: Consume and Develop Apps
APIs for API Management: Consume and Develop Apps
WSO2
Indore mule soft meetup 3
Indore mule soft meetup 3
Kirti Gurjar
Lightweight ESB Alternatives
Lightweight ESB Alternatives
Chris Haddad
Kubernetes - training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burnt
Amir Moghimi
Glpi 9.2-presentation
Glpi 9.2-presentation
alexandre delaunay
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
Foyzul Karim
DevOps Moves To Production (Lori MacVittie)
DevOps Moves To Production (Lori MacVittie)
Red Hat Developers
Introduction to WSO2 Developer Studio
Introduction to WSO2 Developer Studio
WSO2
Web application I have always dreamt of
Web application I have always dreamt of
Victor_Cr
Microservices: A developer's approach
Microservices: A developer's approach
Foyzul Karim
A practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization system
Foyzul Karim
What's hot
(11)
APIs for API Management: Consume and Develop Apps
APIs for API Management: Consume and Develop Apps
Indore mule soft meetup 3
Indore mule soft meetup 3
Lightweight ESB Alternatives
Lightweight ESB Alternatives
Kubernetes - training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burnt
Glpi 9.2-presentation
Glpi 9.2-presentation
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
DevOps Moves To Production (Lori MacVittie)
DevOps Moves To Production (Lori MacVittie)
Introduction to WSO2 Developer Studio
Introduction to WSO2 Developer Studio
Web application I have always dreamt of
Web application I have always dreamt of
Microservices: A developer's approach
Microservices: A developer's approach
A practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization system
Similar to 2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift
Kenji Tanaka
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?
Takumi Sakamoto
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Wen-Tien Chang
Agile startup company management and operation
Agile startup company management and operation
Jiang Zhu
First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)
Daniel Toomey
Workflow Manager - a technical overview (Sam Vanhoutte)
Workflow Manager - a technical overview (Sam Vanhoutte)
Sam Vanhoutte
20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow Manager
BTUGbe
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
Vincent Biret
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
Vincent Biret
從 Ops 觀點看 DevOps, DevOps from Ops Perspective
從 Ops 觀點看 DevOps, DevOps from Ops Perspective
Robert Hu
Building your bi system-HadoopCon Taiwan 2015
Building your bi system-HadoopCon Taiwan 2015
Bryan Yang
Xtending nintex workflow cloud w azure functions - xchange conference
Xtending nintex workflow cloud w azure functions - xchange conference
Michael Oryszak
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Mark Proctor
#Techorama belgium 2018 vincent biret what's new with the #MicrosoftGraph
#Techorama belgium 2018 vincent biret what's new with the #MicrosoftGraph
Vincent Biret
Microsoft BI Cool Data Visualizations
Microsoft BI Cool Data Visualizations
Mark Kromer
An insight to microsoft platform
An insight to microsoft platform
Confiz
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flow
Vincent Biret
DevOps by examples @ devopsheroes 2016
DevOps by examples @ devopsheroes 2016
Giulio Vian
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Amazon Web Services Japan
Sps toronto introduction to azure functions microsoft flow
Sps toronto introduction to azure functions microsoft flow
Vincent Biret
Similar to 2つの同期 4つの状態 #pixiv_ios_arch
(20)
2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #roppongiswift
Why and How SmartNews uses SaaS?
Why and How SmartNews uses SaaS?
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Agile startup company management and operation
Agile startup company management and operation
First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)
Workflow Manager - a technical overview (Sam Vanhoutte)
Workflow Manager - a technical overview (Sam Vanhoutte)
20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow Manager
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
從 Ops 觀點看 DevOps, DevOps from Ops Perspective
從 Ops 觀點看 DevOps, DevOps from Ops Perspective
Building your bi system-HadoopCon Taiwan 2015
Building your bi system-HadoopCon Taiwan 2015
Xtending nintex workflow cloud w azure functions - xchange conference
Xtending nintex workflow cloud w azure functions - xchange conference
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
Red Hat JBoss BRMS and BPMS Workbench and Rich Client Technology
#Techorama belgium 2018 vincent biret what's new with the #MicrosoftGraph
#Techorama belgium 2018 vincent biret what's new with the #MicrosoftGraph
Microsoft BI Cool Data Visualizations
Microsoft BI Cool Data Visualizations
An insight to microsoft platform
An insight to microsoft platform
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flow
DevOps by examples @ devopsheroes 2016
DevOps by examples @ devopsheroes 2016
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Sps toronto introduction to azure functions microsoft flow
Sps toronto introduction to azure functions microsoft flow
More from Kenji Tanaka
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
Kenji Tanaka
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
Kenji Tanaka
ポストモーテムやってみた #yjbonfire
ポストモーテムやってみた #yjbonfire
Kenji Tanaka
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
Kenji Tanaka
よく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_night
Kenji Tanaka
Swiftで聞いておぼえるテスト書き
Swiftで聞いておぼえるテスト書き
Kenji Tanaka
設計時空のリファクタリング
設計時空のリファクタリング
Kenji Tanaka
WACATE 2018 Summer
WACATE 2018 Summer
Kenji Tanaka
テスト駆動開発入門 by Swift
テスト駆動開発入門 by Swift
Kenji Tanaka
An iOS Engineer challenges Web.
An iOS Engineer challenges Web.
Kenji Tanaka
エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4
Kenji Tanaka
TDDやってみよ
TDDやってみよ
Kenji Tanaka
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
Kenji Tanaka
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
Kenji Tanaka
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とは
Kenji Tanaka
設計に答えはないから探してみよう
設計に答えはないから探してみよう
Kenji Tanaka
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有
Kenji Tanaka
iOS 11からのアプリ間ファイル共有_公開用
iOS 11からのアプリ間ファイル共有_公開用
Kenji Tanaka
参加者と振り返るWWDC17 公開用
参加者と振り返るWWDC17 公開用
Kenji Tanaka
WWWDCの振り返りを始めるために
WWWDCの振り返りを始めるために
Kenji Tanaka
More from Kenji Tanaka
(20)
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
ポストモーテムやってみた #yjbonfire
ポストモーテムやってみた #yjbonfire
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night
よく使うテストヘルパーの紹介 #ios_test_night
よく使うテストヘルパーの紹介 #ios_test_night
Swiftで聞いておぼえるテスト書き
Swiftで聞いておぼえるテスト書き
設計時空のリファクタリング
設計時空のリファクタリング
WACATE 2018 Summer
WACATE 2018 Summer
テスト駆動開発入門 by Swift
テスト駆動開発入門 by Swift
An iOS Engineer challenges Web.
An iOS Engineer challenges Web.
エンジニアのためのブログ講座Ver4
エンジニアのためのブログ講座Ver4
TDDやってみよ
TDDやってみよ
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
ストレス社会に生きる、iOSエンジニアにオススメする百合の世界と作品
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とは
設計に答えはないから探してみよう
設計に答えはないから探してみよう
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有
iOS 11からのアプリ間ファイル共有_公開用
iOS 11からのアプリ間ファイル共有_公開用
参加者と振り返るWWDC17 公開用
参加者と振り返るWWDC17 公開用
WWWDCの振り返りを始めるために
WWWDCの振り返りを始めるために
Recently uploaded
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
Farhan Tariq
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
Mydbops
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
LoriGlavin3
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
Nicole Novielli
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
LoriGlavin3
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Scott Andery
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
Neo4j
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Mark Goldstein
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
HarshalMandlekar2
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
Ingrid Airi González
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
IES VE
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
panagenda
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
Rick Flair
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
Alan Dix
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
LoriGlavin3
2024 April Patch Tuesday
2024 April Patch Tuesday
Ivanti
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
Ravi Sanghani
Recently uploaded
(20)
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
2024 April Patch Tuesday
2024 April Patch Tuesday
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
2つの同期 4つの状態 #pixiv_ios_arch
1.
2019/01/15 iOS #pixiv_ios_arch
2.
• / @ktanaka117 • •
BOOTH iOS • R&D Swift TDD • PEAKS iOS
3.
Voice Transformer VT-4
4.
Voice Transformer VT-4 👧
5.
• GUI 2
4 •
6.
• • • 2 • 4 •
GUI • •
7.
• • GUI Architectures https://martinfowler.com/eaaDev/uiArchs.html •
Flow Synchronization https://www.martinfowler.com/eaaDev/FlowSynchronization.html • Observer Synchronization https://www.martinfowler.com/eaaDev/MediatedSynchronization.html
8.
9.
2 • • GUI
10.
• • • • etc…
11.
GUI • MVC • MVP •
MVVM • Flux • Redux • etc…
12.
GUI • GUI • View
Model • • = Presentation Domain Separation(PDS)
13.
PDS GUI
14.
15.
2 • (Observer Synchronization) •
(Flow Synchronization)
16.
• • • • • ex.) NotificationCenter
center.post(name: .someNotification, object: nil)
17.
• • • • • ex.) label.text
= “hoge” SessionManager.shared.authToken = “1234567890”
18.
19.
4 • 4 • Screen
State • Presentation State • Session State • Record State
20.
Screen State • View •
GUI • ex.) label.text, imageView.image
21.
Presentation State • Presenter •
Screen State Screen State Session State • ex.) presenter.labelText, presenter.iconImage, presenter.favState Twitter on/off (Screen State) (Session/Record State)
22.
Session State • Model •
Record State • Record State • • ex.) API/DB …
23.
Record State • DataStore • •
ex.) Realm API
24.
25.
26.
Clean Architecture State Presenter ViewModel UseCase Interactor APIClient DBClient Presentation
Layer Domain Layer Data Layer Clean Architecture GUI Clean Architecture State View ViewController
27.
Presenter ViewModel APIClient DBClient Presentation Layer Domain
Layer Data Layer GUI ViewController View Screen State View ViewController Clean Architecture State UseCase Interactor
28.
Presenter ViewModel APIClient DBClient Presentation Layer Domain
Layer Data Layer View UseCase Presenter/ViewModel Presentation State View ViewController Clean Architecture State UseCase Interactor
29.
Presenter ViewModel APIClient DBClient Presentation Layer Domain
Layer Data Layer UseCase Interactor Data Layer Data Layer Session State View ViewController Clean Architecture State UseCase Interactor
30.
Presenter ViewModel APIClient DBClient Presentation Layer Domain
Layer Data Layer DB Record State API DB DB View ViewController Clean Architecture State UseCase Interactor
31.
PDS GUI
32.
PDS Screen State
Record State
33.
State = Presenter ViewModel APIClient DBClientView ViewController UseCase Interactor Screen
State Record State PDS
34.
Fat APIClient DBClientView ViewController State =
35.
Presenter ViewModel UseCase Interactor APIClient
DBClient MVC, MVP, MVVM GUI Screen State State View ViewController UseCase Interactor APIClient DBClient Presenter ViewModel State
36.
Presenter ViewModel UseCase Interactor APIClient
DBClient View ViewController UseCase Interactor APIClient DBClient Presenter ViewModel State etc… 💪
37.
38.
39.
Screen/Presentation State Session/Record
State ModelView(Controller) (Cocoa) MVC
40.
41.
Twitter Presentation State
Screen State MVP(Supervising Controller) View Model Presenter
42.
Session/Record MVP(Supervising Controller) View
Model Presenter
43.
44.
MVP(Passive View) View ModelPresenter
45.
46.
GUI • • •
47.
• • • •
Download now