Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

© KAUCHE, Inc. 自己紹介 ● 名前 ○ 深谷哲史 (ふかや あきふみ) ● 会社 ○ 株式会社カウシェ (2020/07 ~ ) ● 役職 ○ 取締役CPO ● アカウント ○ Twitter: @akifumifukaya ○ Facebook: Akifumi Fukaya ○ GitHub: akifumi

Slide 3

Slide 3 text

© KAUCHE, Inc. アジェンダ ● カウシェiOSの概要 ● Architecture ● Multi Modules ● iOS開発体制 ● まとめ

Slide 4

Slide 4 text

© KAUCHE, Inc. カウシェiOSのこれまで

Slide 5

Slide 5 text

© KAUCHE, Inc. カウシェiOSのこれまで リリース時は、iOS 13.0+ 現在は、iOS 14.0+ サポートiOSバージョン 2ヶ月 初期開発期間 2022/09/01 リリース日 1年10ヶ月 リリースから 52回 リリース数 13.15日 平均リリース間隔

Slide 6

Slide 6 text

© KAUCHE, Inc. リリース時の詳細は https://note.com/akifumifukaya/n/n0173d78ab821

Slide 7

Slide 7 text

© KAUCHE, Inc. 内部実装

Slide 8

Slide 8 text

© KAUCHE, Inc. ● SwiftUI と UIKit の両方を使用 ● 可能な限り SwiftUI を使用し開発 ● 実現できないところは UIKit を使用 ● UIKit ○ UIRefreshControl / 認証画面 / CollectionView / 設定画面 / WebView など ● SwiftUI ○ 大半の画面は SwiftUI.View で作成 View

Slide 9

Slide 9 text

© KAUCHE, Inc. Architecture

Slide 10

Slide 10 text

© KAUCHE, Inc. MVVM

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

© KAUCHE, Inc. 簡易的な Clean Architecture

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

© KAUCHE, Inc. Multi Modules

Slide 15

Slide 15 text

© KAUCHE, Inc. Multi Modules

Slide 16

Slide 16 text

© KAUCHE, Inc. Multi Modules ● KaucheCoreKit ● KaucheAPIKit ● KaucheShopifyKit ● KaucheDesignKit ● KaucheMockKit ● Kauche

Slide 17

Slide 17 text

© KAUCHE, Inc. Multi Modules ● KaucheCoreKit ○ 全モジュール/全レイヤーから参照され、基盤となる Framework ○ 全モジュールの共通言語となるインターフェースや ツールを搭載している ○ インターフェース ■ Models ■ Protocols ○ ツール ■ Extensions ■ Utilities ● KaucheAPIKit ● KaucheShopifyKit ● KaucheDesignKit ● KaucheMockKit ● Kauche

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

© KAUCHE, Inc. 未来の Multi Modules

Slide 24

Slide 24 text

© KAUCHE, Inc. iOS開発体制

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

© KAUCHE, Inc. まとめ

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

© KAUCHE, Inc.