Wantedly Peopleがたどり着いたアーキテクチャ

E387c487b4fea568909cf805f91afe92?s=47 Yu Tawata
March 16, 2017

Wantedly Peopleがたどり着いたアーキテクチャ

E387c487b4fea568909cf805f91afe92?s=128

Yu Tawata

March 16, 2017
Tweet

Transcript

  1. Yu TAWATA 8BOUFEMZ1FPQMF͕ ͨͲΓண͍ͨΞʔΩςΫνϟ CAMPFIRE iOS #1

  2. シゴトでココロオドル w ܦྺ w ΧʔφϏϛυϧ΢ΣΞ։ൃɹ̎೥ w ιʔγϟϧήʔϜ։ൃʢαʔόαΠυʣɹ̎೥ w *P5αʔϏε։ൃʢαʔόαΠυɺJ04ʣɹ̍೥ w

    ໊ࢗ؅ཧΞϓϦ։ൃʢJ04ʣɹϲ݄ ଟ࿨ాɹါ :V5"8"5" (JU)VCZVUB ࣗݾ঺հ
  3. シゴトでココロオドル

  4. シゴトでココロオドル

  5. シゴトでココロオドル アプリ設計

  6. シゴトでココロオドル 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
  7. シゴトでココロオドル 0 → 1

  8. シゴトでココロオドル × MVVM ×

  9. シゴトでココロオドル w "1*ͷ௚ྻɺฒྻϦΫΤετΛѻ͑Δ w Χʔυը૾Ξοϓ w Ϛονϯά w ໊ࢗొ࿥ʜFUD w

    σʔλͷมߋΛଞը໘ʹ൓өͰ͖Δ w ΦϑϥΠϯ࣌΋໊ࢗ৘ใΛӾཡͰ͖Δ Requirements
  10. シゴトでココロオドル w ը໘ఔ౓ w εΩϟϯ w औΓࠐΈ֬ೝ w ϓϩϑΟʔϧࢀরʜFUD Minimal-Specification

  11. シゴトでココロオドル • 実装コストが低め • コードの重複は少ない • ViewModelの役割が⼤大きい MVVM+RxSwift+Realm

  12. シゴトでココロオドル 1 → 10

  13. シゴトでココロオドル MVVM + Interactor + Router × ×

  14. シゴトでココロオドル

  15. シゴトでココロオドル

  16. シゴトでココロオドル • 20画⾯面以上 • 複数の画⾯面に同じ操作を⼊入れる • 連絡先への追加、削除 • カード画像アップ •

    DeepLink Minimal-Specification
  17. シゴトでココロオドル View (Controller) ViewModel

  18. シゴトでココロオドル View (Controller) ViewModel Interactor View (Controller) ViewModel

  19. シゴトでココロオドル • コードの重複を抑えることができた • ViewModelの役割が⼩小さくなった MVVM+Interactor+Router+RxSwift+Realm

  20. シゴトでココロオドル 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
  21. シゴトでココロオドル End • 0 → 1 • 最⼩小の仕様を実装する • MVVM

    • アプリ設計は必要最低限 • 1 → 10 • 機能を拡充、ユーザ体験をあげる • MVVM + Interactor + Router • より責務を明確にしたアプリ設計へ
  22. シゴトでココロオドル THANK YOU