Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iOSのプロジェクトをキレイにする為のいくつかの考え方
Search
Satomi Suyama
November 12, 2016
Programming
0
92
iOSのプロジェクトをキレイにする為のいくつかの考え方
MVVM, MVC, MVP, DDD, Clean Architectureなどの考え方を紹介します。
Satomi Suyama
November 12, 2016
Tweet
Share
More Decks by Satomi Suyama
See All by Satomi Suyama
Some methods for who doesn't want to use Storyboard
satomix
0
35
RFIDを用いた通信とプラチナバンド
satomix
1
100
Introduction of Vimperator
satomix
0
130
リモートワークを中心とした札幌のスタートアップが幸せな開発をするためにRuby/Railsを選択してみて
satomix
0
300
Other Decks in Programming
See All in Programming
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
140
Vibe codingでおすすめの言語と開発手法
uyuki234
0
120
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
260
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
410
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
4k
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
970
Jetpack XR SDKから紐解くAndroid XR開発と技術選定のヒント / about-androidxr-and-jetpack-xr-sdk
drumath2237
1
190
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
150
AtCoder Conference 2025
shindannin
0
620
Deno Tunnel を使ってみた話
kamekyame
0
250
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
190
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
300
Featured
See All Featured
From π to Pie charts
rasagy
0
91
The agentic SEO stack - context over prompts
schlessera
0
560
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
400
The Language of Interfaces
destraynor
162
25k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
0
170
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
230
What's in a price? How to price your products and services
michaelherold
246
13k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
170
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
0
960
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
31
KATA
mclloyd
PRO
33
15k
Transcript
ϓϩδΣΫτΛ͓আ Satomi Suyama
Ωπ͍ಈݓ͠ ͪΌ͍ͬͯ·ͤΜ͔ʁ
Ҿ༻:http://blog.aus-ryugaku.com/wp/wp-content/uploads/2016/06/Hadouken-01.jpg
Ҿ༻:http://blog.aus-ryugaku.com/wp/wp-content/uploads/2016/06/Hadouken-01.jpg ֯ ≒ (σΟϨΫτϦ)ͷωετͷਂ
ͪΐͬͱΩπΊ
ϓϩδΣΫτ͕ෳࡶʹͳΔͱ Ҿ༻: https://image.hackadoll.com/thumbs?h=480&of=png&u=http%3A%2F%2Fappget.com%2Fc%2Fwp-content%2Fuploads%2F2016%2F05%2F0ccad452b5c1ce91252f469b99912411-650x440.png&w=480&s=98fd86486c0c04b99013eec3a204c239&t=1464074911
ϓϩδΣΫτ͕ෳࡶʹͳΔͱ Ҿ༻: https://image.hackadoll.com/thumbs?h=480&of=png&u=http%3A%2F%2Fappget.com%2Fc%2Fwp-content%2Fuploads%2F2016%2F05%2F0ccad452b5c1ce91252f469b99912411-650x440.png&w=480&s=98fd86486c0c04b99013eec3a204c239&t=1464074911 ৽نࢀՃऀ͋Δ ͍কདྷͷࣗ
ͬͪ͜దʹͳͬ ͍ͯ·ͤΜ͔ʁ
ཧ ਓੜͷجຊ
ϓϩδΣΫτ͕៉ྷͩͱɺ ετϨεܰݮʂ Δؾ্ʂ อकੑ্ʂ ޮUP!
ϓϩδΣΫτ͕៉ྷͩͱɺ ετϨεܰݮʂ Δؾ্ʂ อकੑ্ʂ ޮUP! ྑ͍͜ͱ͔ͬΓʂ
៉ྷͷج४
͍͍͢ ݟ͕͍͍ͨ ͔Γ͍͢ ग़དྷΔ͚ͩීวత ׳Ε͍͢
͍͍͢ ݟ͕͍͍ͨ ͔Γ͍͢ ग़དྷΔ͚ͩීวత ׳Ε͍͢ ਓͦΕͧΕ
ઌਓͷஐܛ σβΠϯύλʔϯ
MVC Ҿ༻: https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52#.r0hcfykx9
MVC of iOS Ҿ༻: https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52#.r0hcfykx9
MVCΛҙࣝ͢Δͱ • OsushiProject +-AppDelegate.swift +-ViewControllers +-Views +-Models +-Info.plist +-Resources
Ͱ • ModelͬͯDTO? Entity? • APIClientͱ͔Ͳ͏ͨ͠Β?
MVVM Ҿ༻: https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52#.r0hcfykx9
MVVMΛҙࣝ͢Δͱ • OsushiProject +-AppDelegate.swift +-Views +-ViewModels(DTO) +-Models +-Info.plist +-Resources
Ͱ • ModelͬͯDAO? Entity? • APIClientͱ͔Ͳ͏ͨ͠Β? • StateཧͲ͜Ͱ?
ݱ࣮తʹཉ͍͠υϝΠϯ • APIClients • Presenters(แׅతͳViewϨΠϠʔ) • DataStore(DAO) • Entities •
UseCase • Managers • Services • Common • Config
• APIClients • Presenters(แׅతͳViewϨΠϠʔ) • DataStore(DAO) • Entities • UseCase
• Managers • Services • Common • Config ݱ࣮తʹཉ͍͠υϝΠϯ ৭Μͳׂͷ৭ΜͳҙຯΛ࣋ͬ ͨΫϥε͕͍ͬͺ͍
• APIClients • Presenters(แׅతͳViewϨΠϠʔ) • DataStore(DAO) • Entities • UseCase
• Managers • Services • Common • Config ݱ࣮తʹཉ͍͠υϝΠϯ ৭Μͳׂͷ৭ΜͳҙຯΛ࣋ͬ ͨΫϥε͕͍ͬͺ͍ ͬͱॊೈͳͷ͕΄͍͠
͓͢͢Ί
VIPER Ҿ༻: https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52#.r0hcfykx9
VIPERͳΒ • OsushiProject +-AppDelegate.swift +-Views +-Presenters +-Routers +-Interactors +-Entities +-Info.plist
+-Resources
WAFΈ͍ͨͩͶ
Reduxͷ༷ͳ
RailsΈ͍ͨͳͷ͕΄͠ ͍ͳΒ
Clean Architecture Ҿ༻: https://qiita-image-store.s3.amazonaws.com/0/19097/903dd9be-6941-3a04-2e31-1a804
Ҿ༻: http://qiita.com/koutalou/items/07a4f9cf51a2d13e4cdc
• OsushiProject +-AppDelegate.swift +-Configurator +-Presentation +-Interactors +-Presenters +-ViewControllers +-Views +-Domains
+-UseCases +-Translators +-ViewModels +-Data +DBManagers +DataStore +-Entities +-APIs +-APIManagers +-APIClients +-Info.plist +-Resources
͖͛ͬͨAngularΈ ͍ͨ
JavaײͨͬΓͰ͢Ͷ
JavaײͨͬΓͰ͢Ͷ Clean ArchitectureAndroidք۾͔Βීٴ
ͱ͍͑ɺ ͬͺΓਖ਼ղͳ͍͠ Silver Bulletͳ͍
Γ͍ͨΑ͏ʹΔͷ ͕Ұ൪!
࠷ޙʹ
ٯʹྑ͔ͬͨߏ
ViewجຊͰ·ͱΊͪΌ͏ • OsushiProject +-Itamae +-ItamaeViewController.swift +-ItamaeViewModel.swift +-ItamaeEntity.swift +-ItamaeAPIClients.swift +-Nigiri +-NigiriVC.swift
+-NigiriVM.swift +-NigiriE.swift . .
ViewجຊͰ·ͱΊͪΌ͏ • OsushiProject +-Itamae +-ItamaeViewController.swift +-ItamaeViewModel.swift +-ItamaeEntity.swift +-ItamaeAPIClients.swift +-Nigiri +-NigiriVC.swift
+-NigiriVM.swift +-NigiriE.swift . . ͜ͷ͘Β͍͕Ұ൪ීวతʹ͍ ͍͔͢͠Εͳ͍Ͱ͢Ͷ