$30 off During Our Annual Pro Sale. View details »

20220713-kauche-techtalk-lt

 20220713-kauche-techtalk-lt

Akifumi Fukaya

July 13, 2022
Tweet

More Decks by Akifumi Fukaya

Other Decks in Programming

Transcript

  1. © KAUCHE, Inc. シェア買いアプリ「カウシェ」iOSの裏側とこれから

  2. © KAUCHE, Inc. 自己紹介 • 名前 ◦ 深谷哲史 (ふかや あきふみ)

    • 会社 ◦ 株式会社カウシェ (2020/07 ~ ) • 役職 ◦ 取締役CPO • アカウント ◦ Twitter: @akifumifukaya ◦ Facebook: Akifumi Fukaya ◦ GitHub: akifumi
  3. © KAUCHE, Inc. アジェンダ • カウシェiOSの概要 • Architecture • Multi

    Modules • iOS開発体制 • まとめ
  4. © KAUCHE, Inc. カウシェiOSのこれまで

  5. © KAUCHE, Inc. カウシェiOSのこれまで リリース時は、iOS 13.0+ 現在は、iOS 14.0+ サポートiOSバージョン 2ヶ月

    初期開発期間 2022/09/01 リリース日 1年10ヶ月 リリースから 52回 リリース数 13.15日 平均リリース間隔
  6. © KAUCHE, Inc. リリース時の詳細は https://note.com/akifumifukaya/n/n0173d78ab821

  7. © KAUCHE, Inc. 内部実装

  8. © KAUCHE, Inc. • SwiftUI と UIKit の両方を使用 • 可能な限り

    SwiftUI を使用し開発 • 実現できないところは UIKit を使用 • UIKit ◦ UIRefreshControl / 認証画面 / CollectionView / 設定画面 / WebView など • SwiftUI ◦ 大半の画面は SwiftUI.View で作成 View
  9. © KAUCHE, Inc. Architecture

  10. © KAUCHE, Inc. MVVM

  11. © KAUCHE, Inc. MVVM > 商品詳細画面

  12. © KAUCHE, Inc. 簡易的な Clean Architecture

  13. © KAUCHE, Inc. さらに詳細は Proposal: https://fortee.jp/iosdc-japan-2021/proposal/c7021c6b-2732-4a20-9f8a-a82d53e89526 YouTube: https://youtu.be/Ym8CXbk3y8Q

  14. © KAUCHE, Inc. Multi Modules

  15. © KAUCHE, Inc. Multi Modules

  16. © KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit •

    KaucheShopifyKit • KaucheDesignKit • KaucheMockKit • Kauche
  17. © KAUCHE, Inc. Multi Modules • KaucheCoreKit ◦ 全モジュール/全レイヤーから参照され、基盤となる Framework

    ◦ 全モジュールの共通言語となるインターフェースや ツールを搭載している ◦ インターフェース ▪ Models ▪ Protocols ◦ ツール ▪ Extensions ▪ Utilities • KaucheAPIKit • KaucheShopifyKit • KaucheDesignKit • KaucheMockKit • Kauche
  18. © KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit ◦

    API通信を行うFramework ◦ 役割 ▪ KAUCHE サーバーとの通信を担っている ▪ 通信プロトコルの隠蔽 ▪ KaucheCoreKit.Models にマッピングし、返 す • KaucheShopifyKit • KaucheDesignKit • KaucheMockKit • Kauche
  19. © KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit •

    KaucheShopifyKit ◦ Shopifyとの通信を行うFramework ◦ 役割 ▪ Shopifyとの通信を隠蔽 ▪ KaucheCoreKit.Models にマッピングし、返 す • KaucheDesignKit • KaucheMockKit • Kauche
  20. © KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit •

    KaucheShopifyKit • KaucheDesignKit ◦ カウシェのデザインコンポーネントを保持 ◦ Colors, Styles, UI Components を有する • KaucheMockKit • Kauche
  21. © KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit •

    KaucheShopifyKit • KaucheDesignKit • KaucheMockKit ◦ カウシェのモックデータを定義する Framework ◦ Previews, Unit Tests などで使用 • Kauche
  22. © KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit •

    KaucheShopifyKit • KaucheDesignKit • KaucheMockKit • Kauche ◦ カウシェのアプリケーション ◦ 現在は、全Featureのコードが置いてある ◦ 将来的には、各 Featureごとにモジュールを分割し、 Kauche モジュールはアプリケーションのみにできる ように薄くしていきたい ◦ そうすることで、よりチーム開発がしやすい状態を目 指す
  23. © KAUCHE, Inc. 未来の Multi Modules

  24. © KAUCHE, Inc. iOS開発体制

  25. © KAUCHE, Inc. iOS開発体制 akifumi 1人 複業 3人 2020.09 2022.07

  26. © KAUCHE, Inc. 未来のiOS開発体制 Customer Team Commerce UX Team Social

    UX Team Growth Team 現在 未来
  27. © KAUCHE, Inc. まとめ

  28. © KAUCHE, Inc. まとめ • カウシェiOSのこれまでを紹介 • カウシェiOSの Architecture や

    Multi Modules 事例を紹介 • 今後のカウシェアプリの開発体制 ◦ 1チーム → 3チーム へ • 開発体制の拡大に伴い、Architecture 再考や Multi Modules 化を促進していきたい
  29. © KAUCHE, Inc.