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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Akifumi Fukaya
July 13, 2022
Programming
390
0
Share
20220713-kauche-techtalk-lt
Akifumi Fukaya
July 13, 2022
More Decks by Akifumi Fukaya
See All by Akifumi Fukaya
【iOSエンジニア特集】 iOSアプリ開発の裏側 開発組織が向き合う課題とこれから - 株式会社カウシェ
akifumifukaya
0
1.1k
LT: KaucheMockKit 導入した話
akifumifukaya
0
180
iOSDC21
akifumifukaya
7
9.8k
MVVM with Combine
akifumifukaya
2
790
MVVM with Combine in SwiftUI
akifumifukaya
6
2.4k
MVVM overview
akifumifukaya
5
1.3k
UIViewController in XIB + IBDesignable
akifumifukaya
2
4k
Other Decks in Programming
See All in Programming
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.1k
Modding RubyKaigi for Myself
yui_knk
0
880
AIとRubyの静的型付け
ukin0k0
0
530
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
180
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
330
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
570
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
100
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
130
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
890
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.6k
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
180
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
190
Featured
See All Featured
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Statistics for Hackers
jakevdp
799
230k
Designing Experiences People Love
moore
143
24k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
310
Become a Pro
speakerdeck
PRO
31
6k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Claude Code のすすめ
schroneko
67
220k
4 Signs Your Business is Dying
shpigford
187
22k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
380
Tell your own story through comics
letsgokoyo
1
940
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.