Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yuichi Adachi
PDF, PPTX
12,411 views
VIPER アーキテクチャによる iOS アプリの設計
第二回 北海道勉強会「スマホアプリ開発、あしたのための環境と設計のアプローチ」 資料
Engineering
◦
Read more
20
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 35
2
/ 35
3
/ 35
4
/ 35
5
/ 35
6
/ 35
7
/ 35
8
/ 35
9
/ 35
10
/ 35
11
/ 35
12
/ 35
13
/ 35
14
/ 35
15
/ 35
16
/ 35
17
/ 35
18
/ 35
19
/ 35
20
/ 35
21
/ 35
22
/ 35
23
/ 35
24
/ 35
25
/ 35
26
/ 35
27
/ 35
28
/ 35
29
/ 35
30
/ 35
31
/ 35
32
/ 35
33
/ 35
34
/ 35
35
/ 35
More Related Content
PDF
今日こそ理解するHot / Cold @社内RxSwift勉強会
by
Yuki Takahashi
PDF
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
PDF
入社1年目のプログラミング初心者がSpringを学ぶための手引き
by
土岐 孝平
PPTX
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
PDF
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
PDF
RxSwift コードリーディングの勘所@社内RxSwift勉強会
by
Yuki Takahashi
PDF
Linux女子部 systemd徹底入門
by
Etsuji Nakai
PPTX
CyberChefの使い方(HamaCTF2019 WriteUp編)
by
Shota Shinogi
今日こそ理解するHot / Cold @社内RxSwift勉強会
by
Yuki Takahashi
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
入社1年目のプログラミング初心者がSpringを学ぶための手引き
by
土岐 孝平
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
オブジェクト指向の設計と実装の学び方のコツ
by
増田 亨
RxSwift コードリーディングの勘所@社内RxSwift勉強会
by
Yuki Takahashi
Linux女子部 systemd徹底入門
by
Etsuji Nakai
CyberChefの使い方(HamaCTF2019 WriteUp編)
by
Shota Shinogi
What's hot
PDF
iOSでMVVM入門
by
ishikawa akira
PPTX
はじめてのElasticsearchクラスタ
by
Satoyuki Tsukano
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
PDF
人生がときめくAPIテスト自動化 with Karate
by
Takanori Suzuki
PDF
Keystone fernet token
by
Yuki Nishiwaki
PDF
暗号技術の実装と数学
by
MITSUNARI Shigeo
PDF
React(TypeScript) + Go + Auth0 で実現する管理画面
by
KentaEndoh
PDF
Form認証で学ぶSpring Security入門
by
Ryosuke Uchitate
PDF
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
by
Yuhei Miyazato
PDF
REST API のコツ
by
pospome
PDF
こんなに使える!今どきのAPIドキュメンテーションツール
by
dcubeio
PDF
クロージャデザインパターン
by
Moriharu Ohzu
PPTX
Selenium WebDriver + python で E2Eテスト自動化
by
JustSystems Corporation
PDF
TDD のこころ
by
Takuto Wada
PDF
AI と個人情報 ~AI 学習用データとしての個人情報と AI 処理対象としての個人情報~
by
Deep Learning Lab(ディープラーニング・ラボ)
PDF
신입 웹 개발자 포트폴리오 / 댓글 게시판
by
hyeonjae Cheon
PPTX
CrowdStrike Falconと効果的に楽に付き合っていくために
by
Eiji Hoshimoto
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PPTX
WkWebViewのキャッシュについて調べた
by
firewood
PDF
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
by
ssuser070fa9
iOSでMVVM入門
by
ishikawa akira
はじめてのElasticsearchクラスタ
by
Satoyuki Tsukano
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
人生がときめくAPIテスト自動化 with Karate
by
Takanori Suzuki
Keystone fernet token
by
Yuki Nishiwaki
暗号技術の実装と数学
by
MITSUNARI Shigeo
React(TypeScript) + Go + Auth0 で実現する管理画面
by
KentaEndoh
Form認証で学ぶSpring Security入門
by
Ryosuke Uchitate
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
by
Yuhei Miyazato
REST API のコツ
by
pospome
こんなに使える!今どきのAPIドキュメンテーションツール
by
dcubeio
クロージャデザインパターン
by
Moriharu Ohzu
Selenium WebDriver + python で E2Eテスト自動化
by
JustSystems Corporation
TDD のこころ
by
Takuto Wada
AI と個人情報 ~AI 学習用データとしての個人情報と AI 処理対象としての個人情報~
by
Deep Learning Lab(ディープラーニング・ラボ)
신입 웹 개발자 포트폴리오 / 댓글 게시판
by
hyeonjae Cheon
CrowdStrike Falconと効果的に楽に付き合っていくために
by
Eiji Hoshimoto
マイクロにしすぎた結果がこれだよ!
by
mosa siru
WkWebViewのキャッシュについて調べた
by
firewood
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
by
ssuser070fa9
Similar to VIPER アーキテクチャによる iOS アプリの設計
PPTX
MVVM入門
by
Kazutoshi Urabe
PPTX
The Abstract Architecture of Applications
by
shundroidk
PDF
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
by
Shotaro Suzuki
PDF
iOSやAndroidアプリ開発のGoodPractice
by
Ken Morishita
PPTX
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
by
U-dai Yokoyama
PPTX
Mvpvm pattern
by
Mami Shiino
PDF
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
by
irgaly
PPTX
iPhoneアプリ開発の歩き方〜Swift編〜
by
Yusuke SAITO
PPTX
Router module in VIPER Architecture
by
Keisuke Yamaguchi
PPTX
Blue monkey architecture overview
by
Atsushi Nakamura
PDF
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
by
Mami Shiino
PDF
iOS アプリのメンテナンス性を高めるための基本的な考え方
by
kakegawa-atsushi
PPTX
最近のiOS開発の現状と実状
by
クラスメソッド株式会社
PDF
エンジニア戦記 〜小さなチーム、大きな未来〜
by
Yuki Hirai
PDF
Android Architecture
by
shinnosuke kugimiya
PDF
Cocoa Pro5
by
hasegawa
PDF
DDD 20121106 SEA Forum November
by
増田 亨
PPTX
EMF勉強会
by
Norihito Ohshima
MVVM入門
by
Kazutoshi Urabe
The Abstract Architecture of Applications
by
shundroidk
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
by
Shotaro Suzuki
iOSやAndroidアプリ開発のGoodPractice
by
Ken Morishita
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
by
U-dai Yokoyama
Mvpvm pattern
by
Mami Shiino
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
by
irgaly
iPhoneアプリ開発の歩き方〜Swift編〜
by
Yusuke SAITO
Router module in VIPER Architecture
by
Keisuke Yamaguchi
Blue monkey architecture overview
by
Atsushi Nakamura
RIAアーキテクチャー研究会 第3回 セッション4 Mvpvm pattern
by
Mami Shiino
iOS アプリのメンテナンス性を高めるための基本的な考え方
by
kakegawa-atsushi
最近のiOS開発の現状と実状
by
クラスメソッド株式会社
エンジニア戦記 〜小さなチーム、大きな未来〜
by
Yuki Hirai
Android Architecture
by
shinnosuke kugimiya
Cocoa Pro5
by
hasegawa
DDD 20121106 SEA Forum November
by
増田 亨
EMF勉強会
by
Norihito Ohshima
More from Yuichi Adachi
PDF
Seminar on Quantum Computation & Quantum Information part28
by
Yuichi Adachi
PDF
Swift2.x を Scala からみる
by
Yuichi Adachi
PDF
Swift2 の新機能 Protocol Extension
by
Yuichi Adachi
PDF
Seminar on Quantum Computation & Quantum Information part19
by
Yuichi Adachi
PDF
続・ゲンバのSwift
by
Yuichi Adachi
PDF
Seminar on Quantum Computation & Quantum Information part15
by
Yuichi Adachi
PDF
ゲンバのSwift
by
Yuichi Adachi
PDF
Seminar on Quantum Computation & Quantum Information part14
by
Yuichi Adachi
PDF
[iOS8] 新たな線形代数ライブラリ Linear Algebra
by
Yuichi Adachi
PDF
Swiftの新機能 Optional
by
Yuichi Adachi
PDF
ユニットテスト初学者がKiwiFramework非同期テストで失敗した
by
Yuichi Adachi
KEY
Applicative functor
by
Yuichi Adachi
Seminar on Quantum Computation & Quantum Information part28
by
Yuichi Adachi
Swift2.x を Scala からみる
by
Yuichi Adachi
Swift2 の新機能 Protocol Extension
by
Yuichi Adachi
Seminar on Quantum Computation & Quantum Information part19
by
Yuichi Adachi
続・ゲンバのSwift
by
Yuichi Adachi
Seminar on Quantum Computation & Quantum Information part15
by
Yuichi Adachi
ゲンバのSwift
by
Yuichi Adachi
Seminar on Quantum Computation & Quantum Information part14
by
Yuichi Adachi
[iOS8] 新たな線形代数ライブラリ Linear Algebra
by
Yuichi Adachi
Swiftの新機能 Optional
by
Yuichi Adachi
ユニットテスト初学者がKiwiFramework非同期テストで失敗した
by
Yuichi Adachi
Applicative functor
by
Yuichi Adachi
VIPER アーキテクチャによる iOS アプリの設計
1.
VIPER アーキテクチャ による
iOS アプリの設計 Copyright © Classmethod, Inc. Classmethod Inc 安達勇一 1
2.
Copyright © Classmethod,
Inc. 自己紹介 • iPhone アプリ・サービス事業部 • iOS 開発歴 2.5 年 • 最近は Swift で開発をしています 2
3.
Copyright © Classmethod,
Inc. 9月上旬… 3 F.T氏 私 北海道勉強会やるんだけど、なんか話さない? お題は未定ね そうすね…Swift かなんかで話しましょうか… F.T氏 Swift勉強会…いいよね…
4.
月日は流れ… Copyright ©
Classmethod, Inc. 4
5.
Swift勉強会改め、スマホアプリの設計的な話にしようかと思う んだけど、どう? Copyright
© Classmethod, Inc. 9月下旬… 5 F.T氏 私 設計の話すかwwwwwwwwww _人人人人人人人人人_ > 突然の仕様変更 < ‾Y^Y^Y^Y^Y^Y^Y^Y‾
6.
Copyright © Classmethod,
Inc. 6 ios mobile archtecture
7.
Copyright © Classmethod,
Inc. 7 ios mobile archtecture
8.
Copyright ©
Classmethod, Inc. 8
9.
VIPERアーキテクチャ • View
Interactor Presenter Entity Routing Copyright © Classmethod, Inc. 9
10.
Copyright © Classmethod,
Inc. 10
11.
その前に… Copyright ©
Classmethod, Inc. 11
12.
MVCアーキテクチャ • ModelとViewとControllerにコードを分割
• Model: ロジック • View: 表示 • Controller: Modelを制御 Copyright © Classmethod, Inc. 12 Controller View Model Event
13.
MVP on iOS
Application • Model View Presenter • ViewはModelを直接操作しない • Model : ロジック • Presenter : UIViewController • View : UIView Copyright © Classmethod, Inc. 13 View Presenter Model
14.
Massive ViewController •
ModelとViewに置けなかったロジックは ViewController(Presenter)へ • 扱うViewの量に合わせて コード量が増える • Mediatorとしては正解だが… Copyright © Classmethod, Inc. 14
15.
Massive ViewController •
ModelとViewに置けなかったロジックは ViewController(Presenter)へ • 扱うViewの量に合わせて コード量が増える • Mediatorとしては正解だが… Copyright © Classmethod, Inc. 15
16.
MVCで考えることの不満点 • Modelに様々な役割があるのにひとまとめ
にしてしまう • Massive ViewControllerになりやすい • テスト可能なModelへの移行に役割を与え たい Copyright © Classmethod, Inc. 16
17.
Copyright © Classmethod,
Inc. Before VIPER View Controller Model 17
18.
Controller(Over 1000lines!!) Copyright
© Classmethod, Inc. Before VIPER View Model 18
19.
VIPER 再び Copyright
© Classmethod, Inc. 19
20.
VIPERアーキテクチャ View Interactor
Presenter Entity Routing • フレームワークに依存しない • DB, APIに依存しない • UIに依存しない • テストしやすい Copyright © Classmethod, Inc. 20
21.
VIPERアーキテクチャ DataStore Interactor
Entity Copyright © Classmethod, Inc. • コアの静的モデル • 内部ビジネスロジック • 外界とビジネスロジッ クの仲介 • 外界 21 DB API View OSS Presenter Routing
22.
Copyright © Classmethod,
Inc. 22 View Presenter Routing Interactor Entity DataStore
23.
Copyright © Classmethod,
Inc. 23 View Presenter Routing Interactor Entity DataStore Protocolによって疎結合に、互いに知らない状態にする
24.
依存性を注入 DB,WebAPIを 仲介
UIView, UIViewController Copyright © Classmethod, Inc. 24 UIロジック Businessロジック 静的データ
25.
Copyright © Classmethod,
Inc. Interactor • 単一のユースケースを動的なモデルで表現 • ビジネスロジック部 • UIに全く依存しない • テストしやすい 25
26.
Copyright © Classmethod,
Inc. Entity • Presenter以降のレイヤに直接渡されない • 静的なモデル • VIPERでは動的でない 26
27.
Copyright © Classmethod,
Inc. Presenter • InteractorからのデータをView向けに送る • Viewからのインプットを受ける • Viewを直接知らない • Viewロジックに対する テストを書ける 27
28.
Copyright © Classmethod,
Inc. View • View, ViewController等 • 主体的にPresenterにデータを要求しない • Presenterからの指示 待ち 28
29.
Copyright © Classmethod,
Inc. Routing • UIWindowのインスタンスを保有 • WindowにViewController(VC)を注入 • VCにPresenterを注入 • VCの遷移表示も管理 29
30.
Copyright © Classmethod,
Inc. Before VIPER View Controller Model 30
31.
After VIPER Copyright
© Classmethod, Inc. 31 View Presenter Routing Interactor Entity DataStore
32.
After VIPER Copyright
© Classmethod, Inc. 32 View Presenter Routing Interactor Entity DataStore
33.
Copyright © Classmethod,
Inc. 33
34.
参考資料 objc-io 13
http://www.objc.io/issue-13/viper.html Clean Architecture http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean- architecture.html Forked Sample Code https://github.com/UsrNameu1/VIPER-SWIFT Copyright © Classmethod, Inc. 34
Download