Submit Search
Upload
2つの同期 4つの状態 #roppongiswift
•
1 like
•
542 views
Kenji Tanaka
Follow
2018/12/21開催のROPPONGI.swift 第6回の登壇資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 41
Download now
Download to read offline
Recommended
An Introduction to WSO2 Microservices Framework for Java
An Introduction to WSO2 Microservices Framework for Java
WSO2
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
DataStax Academy
JavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EE
Rodrigo Cândido da Silva
[POSS 2019] OVirt and Ceph: Perfect Combination.?
[POSS 2019] OVirt and Ceph: Perfect Combination.?
Worteks
Developing Micro-Services for Cloud using Java
Developing Micro-Services for Cloud using Java
WSO2
Dev Ops Geek Fest: Automating the ForgeRock Platform
Dev Ops Geek Fest: Automating the ForgeRock Platform
ForgeRock
Dropwizard
Dropwizard
Abdulhadi ÇELENLİOĞLU
Docker pipelines
Docker pipelines
Chris Mague
Recommended
An Introduction to WSO2 Microservices Framework for Java
An Introduction to WSO2 Microservices Framework for Java
WSO2
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
DataStax Academy
JavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EE
Rodrigo Cândido da Silva
[POSS 2019] OVirt and Ceph: Perfect Combination.?
[POSS 2019] OVirt and Ceph: Perfect Combination.?
Worteks
Developing Micro-Services for Cloud using Java
Developing Micro-Services for Cloud using Java
WSO2
Dev Ops Geek Fest: Automating the ForgeRock Platform
Dev Ops Geek Fest: Automating the ForgeRock Platform
ForgeRock
Dropwizard
Dropwizard
Abdulhadi ÇELENLİOĞLU
Docker pipelines
Docker pipelines
Chris Mague
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch
Kenji Tanaka
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
Kenji Tanaka
Monitoring Docker with ELK
Monitoring Docker with ELK
Daniel Berman
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Wen-Tien Chang
Agile startup company management and operation
Agile startup company management and operation
Jiang Zhu
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
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
clairvoyantllc
Securing Microservices using Play and Akka HTTP
Securing Microservices using Play and Akka HTTP
Rafal Gancarz
Nodejs web,db,hosting
Nodejs web,db,hosting
Kenu, GwangNam Heo
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
Play Framework and Activator
Play Framework and Activator
Kevin Webber
Rapid development with Rails
Rapid development with Rails
Yi-Ting Cheng
12 Factor App Methodology
12 Factor App Methodology
laeshin park
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on Cloud
Oleg Posyniak
Building a Platform-as-a-Service with Docker and Node.js
Building a Platform-as-a-Service with Docker and Node.js
Kevin Swiber
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As Code
Mario IC
DrupalCon 2011 Highlight
DrupalCon 2011 Highlight
Supakit Kiatrungrit
Geo servershell
Geo servershell
Jared Erickson
Icinga Camp Bangalore - Icinga integrations
Icinga Camp Bangalore - Icinga integrations
Icinga
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた #iosdc
Kenji Tanaka
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
リリース前のリグレッションテストがめんどい!のでMagic PodでUIテストを試してみる #pixiv_app_night
Kenji Tanaka
More Related Content
Similar to 2つの同期 4つの状態 #roppongiswift
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch
Kenji Tanaka
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
Kenji Tanaka
Monitoring Docker with ELK
Monitoring Docker with ELK
Daniel Berman
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Wen-Tien Chang
Agile startup company management and operation
Agile startup company management and operation
Jiang Zhu
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
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
clairvoyantllc
Securing Microservices using Play and Akka HTTP
Securing Microservices using Play and Akka HTTP
Rafal Gancarz
Nodejs web,db,hosting
Nodejs web,db,hosting
Kenu, GwangNam Heo
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
Play Framework and Activator
Play Framework and Activator
Kevin Webber
Rapid development with Rails
Rapid development with Rails
Yi-Ting Cheng
12 Factor App Methodology
12 Factor App Methodology
laeshin park
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on Cloud
Oleg Posyniak
Building a Platform-as-a-Service with Docker and Node.js
Building a Platform-as-a-Service with Docker and Node.js
Kevin Swiber
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As Code
Mario IC
DrupalCon 2011 Highlight
DrupalCon 2011 Highlight
Supakit Kiatrungrit
Geo servershell
Geo servershell
Jared Erickson
Icinga Camp Bangalore - Icinga integrations
Icinga Camp Bangalore - Icinga integrations
Icinga
Similar to 2つの同期 4つの状態 #roppongiswift
(20)
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #pixiv_ios_arch
2つの同期 4つの状態 #app_mp
2つの同期 4つの状態 #app_mp
Monitoring Docker with ELK
Monitoring Docker with ELK
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Agile startup company management and operation
Agile startup company management and operation
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
Running Airflow Workflows as ETL Processes on Hadoop
Running Airflow Workflows as ETL Processes on Hadoop
Securing Microservices using Play and Akka HTTP
Securing Microservices using Play and Akka HTTP
Nodejs web,db,hosting
Nodejs web,db,hosting
Workflow Manager - a technical overview (Sam Vanhoutte)
Workflow Manager - a technical overview (Sam Vanhoutte)
20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow Manager
Play Framework and Activator
Play Framework and Activator
Rapid development with Rails
Rapid development with Rails
12 Factor App Methodology
12 Factor App Methodology
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on Cloud
Building a Platform-as-a-Service with Docker and Node.js
Building a Platform-as-a-Service with Docker and Node.js
Agiles Peru 2019 - Infrastructure As Code
Agiles Peru 2019 - Infrastructure As Code
DrupalCon 2011 Highlight
DrupalCon 2011 Highlight
Geo servershell
Geo servershell
Icinga Camp Bangalore - Icinga integrations
Icinga Camp Bangalore - Icinga integrations
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
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
HampshireHUG
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Alan Dix
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Allon Mureinik
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Scott Keck-Warren
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Delhi Call girls
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Pooja Nehwal
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Recently uploaded
(20)
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
2つの同期 4つの状態 #roppongiswift
1.
2.
• / @ktanaka117 • •
: • R&D Swift TDD • PEAKS iOS
3.
4.
• GUI • 2
4 • GUI
5.
• • 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
6.
2 • • GUI
7.
• • • • etc…
8.
GUI • MVC • MVP •
MVVM • Flux • Redux • etc…
9.
GUI • GUI • View
Model • • = Presentation Domain Separation(PDS) • PDS GUI
10.
11.
2 • (Observer Synchronization) •
(Flow Synchronization)
12.
• • • • • ex.) NotificationCenter
center.post(name: .someNotification, object: nil)
13.
• • • • • ex.) label.text
= “hoge” SessionManager.shared.authToken = “1234567890”
14.
15.
4 • 4 • Screen
State • Presentation State • Session State • Record State
16.
Screen State • GUI •
ex.) label.text, imageView.image
17.
Presentation State • Screen
State Screen State Session State • Screen State Session State • ex.) presenter.labelText, presenter.iconImage, presenter.favState Twitter on/off (Screen State) (Session/Record State)
18.
Session State • Record
State • Record State • ex.) API/DB
19.
Record State • • • ex.)
Realm API
20.
21.
GUI • •
22.
Clean Architecture State Presenter ViewModel UseCase Repository APIClient DBClient Presentation
Layer Domain Layer Data Layer Clean Architecture GUI Clean Architecture State View ViewController
23.
Presenter ViewModel UseCase Repository APIClient DBClient Presentation Layer Domain
Layer Data Layer GUI ViewController View Screen State View ViewController Clean Architecture State
24.
Presenter ViewModel UseCase Repository APIClient DBClient Presentation Layer Domain
Layer Data Layer View UseCase Presenter/ViewModel Presentation State View ViewController Clean Architecture State
25.
Presenter ViewModel UseCase Repository APIClient DBClient Presentation Layer Domain
Layer Data Layer UseCase Repository Data Layer Data Layer Session State View ViewController Clean Architecture State
26.
Presenter ViewModel UseCase Repository APIClient DBClient Presentation Layer Domain
Layer Data Layer DB Record State API DB DB View ViewController Clean Architecture State
27.
Presenter ViewModel UseCase Repository
APIClient DBClient MVC, MVP, MVVM GUI Screen State State View ViewController GUI
28.
Screen State GUI Presenter ViewModel UseCase Repository APIClient DBClient Presentation
Layer Domain Layer Data Layer View ViewController
29.
Fat GUI APIClient DBClientView ViewController
30.
31.
32.
Screen/Presentation State Session/Record
State b ModelView(Controller) (Cocoa) MVC
33.
34.
Twitter Presentation State
Screen State MVP(Supervising Controller) View Model Presenter
35.
Session/Record View MVP(Supervising Controller) View
Model Presenter
36.
37.
Screen State Presentation
State MVP(Passive View) View ModelPresenter
38.
GUI • •
39.
• 2 4 •
GUI • •
40.
2019/01/10 in FiNC App
Client Melting Pod #1
41.
2019/01/15 in pixiv
Inc. iOS
Download now