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
20220713-kauche-techtalk-lt
Search
Akifumi Fukaya
July 13, 2022
Programming
0
300
20220713-kauche-techtalk-lt
Akifumi Fukaya
July 13, 2022
Tweet
Share
More Decks by Akifumi Fukaya
See All by Akifumi Fukaya
LT: KaucheMockKit 導入した話
akifumifukaya
0
120
iOSDC21
akifumifukaya
6
8.5k
MVVM with Combine
akifumifukaya
2
700
MVVM with Combine in SwiftUI
akifumifukaya
6
2.2k
MVVM overview
akifumifukaya
5
1.2k
UIViewController in XIB + IBDesignable
akifumifukaya
2
3.1k
Other Decks in Programming
See All in Programming
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
8
1.7k
ISUCON14公式反省会LT: 社内ISUCONの話
astj
PRO
0
180
TokyoR116_BeginnersSession1_環境構築
kotatyamtema
0
110
Unity Android XR入門
sakutama_11
0
140
SRE、開発、QAが協業して挑んだリリースプロセス改革@SRE Kaigi 2025
nealle
3
4.1k
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
370
チームリードになって変わったこと
isaka1022
0
190
ASP. NET CoreにおけるWebAPIの最新情報
tomokusaba
0
360
技術を根付かせる / How to make technology take root
kubode
1
240
定理証明プラットフォーム lapisla.net
abap34
1
1.7k
Pythonでもちょっとリッチな見た目のアプリを設計してみる
ueponx
1
480
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
890
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Scaling GitHub
holman
459
140k
The Cult of Friendly URLs
andyhume
78
6.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
Typedesign – Prime Four
hannesfritz
40
2.5k
Code Review Best Practice
trishagee
66
17k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Transcript
© KAUCHE, Inc. シェア買いアプリ「カウシェ」iOSの裏側とこれから
© KAUCHE, Inc. 自己紹介 • 名前 ◦ 深谷哲史 (ふかや あきふみ)
• 会社 ◦ 株式会社カウシェ (2020/07 ~ ) • 役職 ◦ 取締役CPO • アカウント ◦ Twitter: @akifumifukaya ◦ Facebook: Akifumi Fukaya ◦ GitHub: akifumi
© KAUCHE, Inc. アジェンダ • カウシェiOSの概要 • Architecture • Multi
Modules • iOS開発体制 • まとめ
© KAUCHE, Inc. カウシェiOSのこれまで
© KAUCHE, Inc. カウシェiOSのこれまで リリース時は、iOS 13.0+ 現在は、iOS 14.0+ サポートiOSバージョン 2ヶ月
初期開発期間 2022/09/01 リリース日 1年10ヶ月 リリースから 52回 リリース数 13.15日 平均リリース間隔
© KAUCHE, Inc. リリース時の詳細は https://note.com/akifumifukaya/n/n0173d78ab821
© KAUCHE, Inc. 内部実装
© KAUCHE, Inc. • SwiftUI と UIKit の両方を使用 • 可能な限り
SwiftUI を使用し開発 • 実現できないところは UIKit を使用 • UIKit ◦ UIRefreshControl / 認証画面 / CollectionView / 設定画面 / WebView など • SwiftUI ◦ 大半の画面は SwiftUI.View で作成 View
© KAUCHE, Inc. Architecture
© KAUCHE, Inc. MVVM
© KAUCHE, Inc. MVVM > 商品詳細画面
© KAUCHE, Inc. 簡易的な Clean Architecture
© KAUCHE, Inc. さらに詳細は Proposal: https://fortee.jp/iosdc-japan-2021/proposal/c7021c6b-2732-4a20-9f8a-a82d53e89526 YouTube: https://youtu.be/Ym8CXbk3y8Q
© KAUCHE, Inc. Multi Modules
© KAUCHE, Inc. Multi Modules
© KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit •
KaucheShopifyKit • KaucheDesignKit • KaucheMockKit • Kauche
© KAUCHE, Inc. Multi Modules • KaucheCoreKit ◦ 全モジュール/全レイヤーから参照され、基盤となる Framework
◦ 全モジュールの共通言語となるインターフェースや ツールを搭載している ◦ インターフェース ▪ Models ▪ Protocols ◦ ツール ▪ Extensions ▪ Utilities • KaucheAPIKit • KaucheShopifyKit • KaucheDesignKit • KaucheMockKit • Kauche
© KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit ◦
API通信を行うFramework ◦ 役割 ▪ KAUCHE サーバーとの通信を担っている ▪ 通信プロトコルの隠蔽 ▪ KaucheCoreKit.Models にマッピングし、返 す • KaucheShopifyKit • KaucheDesignKit • KaucheMockKit • Kauche
© KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit •
KaucheShopifyKit ◦ Shopifyとの通信を行うFramework ◦ 役割 ▪ Shopifyとの通信を隠蔽 ▪ KaucheCoreKit.Models にマッピングし、返 す • KaucheDesignKit • KaucheMockKit • Kauche
© KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit •
KaucheShopifyKit • KaucheDesignKit ◦ カウシェのデザインコンポーネントを保持 ◦ Colors, Styles, UI Components を有する • KaucheMockKit • Kauche
© KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit •
KaucheShopifyKit • KaucheDesignKit • KaucheMockKit ◦ カウシェのモックデータを定義する Framework ◦ Previews, Unit Tests などで使用 • Kauche
© KAUCHE, Inc. Multi Modules • KaucheCoreKit • KaucheAPIKit •
KaucheShopifyKit • KaucheDesignKit • KaucheMockKit • Kauche ◦ カウシェのアプリケーション ◦ 現在は、全Featureのコードが置いてある ◦ 将来的には、各 Featureごとにモジュールを分割し、 Kauche モジュールはアプリケーションのみにできる ように薄くしていきたい ◦ そうすることで、よりチーム開発がしやすい状態を目 指す
© KAUCHE, Inc. 未来の Multi Modules
© KAUCHE, Inc. iOS開発体制
© KAUCHE, Inc. iOS開発体制 akifumi 1人 複業 3人 2020.09 2022.07
© KAUCHE, Inc. 未来のiOS開発体制 Customer Team Commerce UX Team Social
UX Team Growth Team 現在 未来
© KAUCHE, Inc. まとめ
© KAUCHE, Inc. まとめ • カウシェiOSのこれまでを紹介 • カウシェiOSの Architecture や
Multi Modules 事例を紹介 • 今後のカウシェアプリの開発体制 ◦ 1チーム → 3チーム へ • 開発体制の拡大に伴い、Architecture 再考や Multi Modules 化を促進していきたい
© KAUCHE, Inc.