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
350
20220713-kauche-techtalk-lt
Akifumi Fukaya
July 13, 2022
Tweet
Share
More Decks by Akifumi Fukaya
See All by Akifumi Fukaya
【iOSエンジニア特集】 iOSアプリ開発の裏側 開発組織が向き合う課題とこれから - 株式会社カウシェ
akifumifukaya
0
850
LT: KaucheMockKit 導入した話
akifumifukaya
0
140
iOSDC21
akifumifukaya
7
8.8k
MVVM with Combine
akifumifukaya
2
730
MVVM with Combine in SwiftUI
akifumifukaya
6
2.3k
MVVM overview
akifumifukaya
5
1.2k
UIViewController in XIB + IBDesignable
akifumifukaya
2
3.5k
Other Decks in Programming
See All in Programming
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
3
2.1k
Google I/O Extended Incheon 2025 ~ What's new in Android development tools
pluu
1
260
実践 Dev Containers × Claude Code
touyu
1
170
ワープロって実は計算機で
pepepper
2
1.3k
What's new in Adaptive Android development
fornewid
0
140
QA x AIエコシステム段階構築作戦
osu
0
260
パスタの技術
yusukebe
1
260
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
380
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
1.4k
Vibe coding コードレビュー
kinopeee
0
430
Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜
hiyanger
12
3k
Comparing decimals in Swift Testing
417_72ki
0
170
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Navigating Team Friction
lara
188
15k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
A Tale of Four Properties
chriscoyier
160
23k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
The Cult of Friendly URLs
andyhume
79
6.5k
Gamification - CAS2011
davidbonilla
81
5.4k
Building an army of robots
kneath
306
45k
Rails Girls Zürich Keynote
gr2m
95
14k
We Have a Design System, Now What?
morganepeng
53
7.7k
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.