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
Wantedly Peopleがたどり着いたアーキテクチャ
Search
Yu Tawata
March 16, 2017
Technology
1
5.2k
Wantedly Peopleがたどり着いたアーキテクチャ
Yu Tawata
March 16, 2017
Tweet
Share
More Decks by Yu Tawata
See All by Yu Tawata
SwiftUIを導入したアプリ設計
yuta24
4
3.1k
try! Serverless App with Swift
yuta24
2
560
再利用可能なUI Componentsを利用したアプリ開発
yuta24
12
3.6k
Wantedly Peopleの連絡先一覧について
yuta24
1
5.7k
Other Decks in Technology
See All in Technology
人はいかにして 確率的な挙動を 受け入れていくのか
vaaaaanquish
4
2.6k
プロダクトエンジニアこそ必要なPMスキル 〜デリバリー力を最大化し、価値を届け続けるために〜
layerx
PRO
0
130
BPaaSオペレーション・kubell社内 n8n活用による効率化検証事例紹介
kubell_hr
0
270
かわいい身体と声を持つ そういうものに私はなりたい
yoshimura_datam
0
480
2026/01/16_実体験から学ぶ 2025年の失敗と対策_Progate Bar
teba_eleven
1
220
習慣とAIと環境 — 技術探求を続ける3つの鍵
azukiazusa1
3
780
ビジュアルプログラミングIoTLT vol.22
1ftseabass
PRO
0
140
AI時代のPMに求められるのは 「Ops」と「Enablement」
shimotaroo
1
330
Exadata Database Service ソフトウェアのアップデートとアップグレードの概要
oracle4engineer
PRO
1
1.2k
Kaggleコンペティション「MABe Challenge - Social Action Recognition in Mice」振り返り
yu4u
1
760
これまでのネットワーク運用を変えるかもしれないアプデをおさらい
hatahata021
4
280
Data Intelligence on Lakehouse Paradigm
scotthsieh825
0
200
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
Odyssey Design
rkendrick25
PRO
0
470
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
83
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Rails Girls Zürich Keynote
gr2m
96
14k
The Spectacular Lies of Maps
axbom
PRO
1
450
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
61
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
150
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Transcript
Yu TAWATA 8BOUFEMZ1FPQMF͕ ͨͲΓண͍ͨΞʔΩςΫνϟ CAMPFIRE iOS #1
シゴトでココロオドル w ܦྺ w ΧʔφϏϛυϧΣΞ։ൃɹ̎ w ιʔγϟϧήʔϜ։ൃʢαʔόαΠυʣɹ̎ w *P5αʔϏε։ൃʢαʔόαΠυɺJ04ʣɹ̍ w
໊ཧΞϓϦ։ൃʢJ04ʣɹϲ݄ ଟాɹါ :V5"8"5" (JU)VCZVUB ࣗݾհ
シゴトでココロオドル
シゴトでココロオドル
シゴトでココロオドル アプリ設計
シゴトでココロオドル MVC MVP MVVM VIPER Clean Architecture View Controller Model
View (Controller) Presenter Model View (Controller) ViewModel Model View (Controller) Presenter Entity Presenter Layer Domain Layer Data Layer Interactor Router
シゴトでココロオドル 0 → 1
シゴトでココロオドル × MVVM ×
シゴトでココロオドル w "1*ͷྻɺฒྻϦΫΤετΛѻ͑Δ w Χʔυը૾Ξοϓ w Ϛονϯά w ໊ొʜFUD w
σʔλͷมߋΛଞը໘ʹөͰ͖Δ w ΦϑϥΠϯ໊࣌ใΛӾཡͰ͖Δ Requirements
シゴトでココロオドル w ը໘ఔ w εΩϟϯ w औΓࠐΈ֬ೝ w ϓϩϑΟʔϧࢀরʜFUD Minimal-Specification
シゴトでココロオドル • 実装コストが低め • コードの重複は少ない • ViewModelの役割が⼤大きい MVVM+RxSwift+Realm
シゴトでココロオドル 1 → 10
シゴトでココロオドル MVVM + Interactor + Router × ×
シゴトでココロオドル
シゴトでココロオドル
シゴトでココロオドル • 20画⾯面以上 • 複数の画⾯面に同じ操作を⼊入れる • 連絡先への追加、削除 • カード画像アップ •
DeepLink Minimal-Specification
シゴトでココロオドル View (Controller) ViewModel
シゴトでココロオドル View (Controller) ViewModel Interactor View (Controller) ViewModel
シゴトでココロオドル • コードの重複を抑えることができた • ViewModelの役割が⼩小さくなった MVVM+Interactor+Router+RxSwift+Realm
シゴトでココロオドル MVC MVP MVVM VIPER Clean Architecture View Controller Model
View (Controller) Presenter Model View (Controller) ViewModel Model View (Controller) Presenter Entity Presenter Layer Domain Layer Data Layer Interactor Router
シゴトでココロオドル End • 0 → 1 • 最⼩小の仕様を実装する • MVVM
• アプリ設計は必要最低限 • 1 → 10 • 機能を拡充、ユーザ体験をあげる • MVVM + Interactor + Router • より責務を明確にしたアプリ設計へ
シゴトでココロオドル THANK YOU