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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Akifumi Fukaya
July 13, 2022
Programming
400
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
190
iOSDC21
akifumifukaya
7
10k
MVVM with Combine
akifumifukaya
2
830
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
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
380
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
280
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
2
200
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
610
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
1.2k
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
210
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.1k
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
Hono + Inertia + React で LP を構築した話
oukayuka
2
160
Go 1.27 における memory allocation の高速化
andpad
0
320
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.2k
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
110
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
270
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
30 Presentation Tips
portentint
PRO
1
380
Product Roadmaps are Hard
iamctodd
55
12k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
740
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
We Are The Robots
honzajavorek
0
310
Paper Plane
katiecoart
PRO
2
53k
How STYLIGHT went responsive
nonsquared
100
6.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
250
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
310
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
450
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.