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
4.8k
Wantedly Peopleがたどり着いたアーキテクチャ
Yu Tawata
March 16, 2017
Tweet
Share
More Decks by Yu Tawata
See All by Yu Tawata
SwiftUIを導入したアプリ設計
yuta24
4
2.5k
try! Serverless App with Swift
yuta24
2
480
再利用可能なUI Componentsを利用したアプリ開発
yuta24
12
3k
Wantedly Peopleの連絡先一覧について
yuta24
1
5.3k
Other Decks in Technology
See All in Technology
AWS アーキテクチャクイズ
yuu26
2
700
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
12
2.8k
Oracle Database で機械学習を始めよう! Oracle Machine Learning
oracle4engineer
PRO
1
140
長文から長文を生成するLLMツールをオープンソースで作ってみた。
tomohisa
2
140
関数型DDDの理論と実践:「決定を遅らせる」を先につくり、 ビジネスの機動力と価値をあげる
knih
2
470
実務への応用例から考える 変更に強いオブジェクト指向設計 / 20240324-ooc2024
bengo4com
7
5k
データマネジメントを支える武器としてのメタデータ管理
10xinc
1
290
どう買う?Azure
kuniteru
1
190
エンジニアブランディングチームの KPI / KPI's of engineer branding team
chaspy
1
140
期待しすぎずに取り組む両面 TypeScript
shozawa
2
290
オブジェクトのおしゃべり大失敗 メッセージングアンチパターン集 / messaging anti-pattern collection
ytake
0
330
LLM + RAG を使った SORACOM Support Bot の裏側の歴史
soracom
PRO
1
640
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
28
46k
What’s in a name? Adding method to the madness
productmarketing
PRO
14
2.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Adopting Sorbet at Scale
ufuk
66
8.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
355
22k
Why Our Code Smells
bkeepers
PRO
330
56k
Design by the Numbers
sachag
274
18k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
242
20k
A designer walks into a library…
pauljervisheath
199
23k
Statistics for Hackers
jakevdp
789
220k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
The Language of Interfaces
destraynor
150
23k
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