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
アプリ起動時間を80%高速化した話 / Talk about 80% faster app s...
Search
nekowen
December 20, 2024
Technology
0
180
アプリ起動時間を80%高速化した話 / Talk about 80% faster app startup time.
Ebisu.mobile #8 大忘年会 STORES kubell Kyash asken での発表資料です
https://hey.connpass.com/event/335971/
nekowen
December 20, 2024
Tweet
Share
More Decks by nekowen
See All by nekowen
AccessorySetupKitで実現するシームレスなペアリング体験 / Seamless pairing with AccessorySetupKit
nekowen
0
330
健康第一!MetricKitで始めるアプリの健康診断 / App Health Checkups Starting with MetricKit
nekowen
5
6.2k
5分で理解するAccessorySetupKit / Understanding AccessorySetupKit in 5 minutes
nekowen
0
450
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
1.1k
SwiftUI/Jetpack Composeを採用してよかったこと悪かったこと
nekowen
2
1.5k
iOS13向けに位置情報周りを対応しようとしたら苦労した話
nekowen
1
510
Other Decks in Technology
See All in Technology
設計に疎いエンジニアでも始めやすいアーキテクチャドキュメント
phaya72
26
17k
書籍『実践 Apache Iceberg』の歩き方
ishikawa_satoru
0
450
最近読んで良かった本 / Yokohama North Meetup #10
mktakuya
0
350
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
890
GTC 2025 : 가속되고 있는 미래
inureyes
PRO
0
150
可観測性は開発環境から、開発環境にもオブザーバビリティ導入のススメ
layerx
PRO
4
2.6k
サブドメインテイクオーバー事例紹介と対策について
mikit
13
6.2k
新米エンジニアをTech Leadに任命する ー 成長を支える挑戦的な人と組織のマネジメント
naopr
1
340
Observability — Extending Into Incident Response
nari_ex
2
740
アノテーション作業書作成のGood Practice
cierpa0905
PRO
1
390
re:Invent 2025の見どころと便利アイテムをご紹介 / Highlights and Useful Items for re:Invent 2025
yuj1osm
0
650
re:Inventに行くまでにやっておきたいこと
nagisa53
0
990
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Navigating Team Friction
lara
190
15k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
700
Mobile First: as difficult as doing things right
swwweet
225
10k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
Become a Pro
speakerdeck
PRO
29
5.6k
A better future with KSS
kneath
239
18k
Site-Speed That Sticks
csswizardry
13
940
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Producing Creativity
orderedlist
PRO
348
40k
Transcript
STORES 株式会社 Ebisu.mobile #8 大忘年会 STORES kubell Kyash asken 2024年
12月 20日 @nekowen アプリ起動時間を80%高速化した話
自己紹介 小櫃 遼也 a.k.a nekowen STORES 株式会社 所属 iOSアプリエンジニア ねことポップコーンが好き
X: @n3k0w3n 2
今日話すこと 3 レジアプリの起動時間を改善したよ!という話をします ※ここでいう起動時間とは「アプリを立ち上げてユーザーが利用可能な状態に なるまでの時間」を指します
レジアプリについて 4
始まりはCSからのご相談 5
まずはヒアリングを行う 6 ・アプリを起動して商品の読み込みが完了するまで数十分かかる ・途中でネットワークが切れてしまい度々リトライが発生している ・通信環境が原因ではなさそう
アイテムリストを全件取得し切るまでの流れ 7 アイテムリストを50件取得 数秒待機 次のPage Cursorを取得
リクエスト状況の確認 8 秒単位でリクエストに時間がかかっている
アイテムクエリの調査 9
アイテムクエリの調査 10
アイテムクエリの調査 11
アイテムクエリの調査 12 取得にかかるコスト = アイテム数xアイテムバリエーションx店舗数
検証 13 ・パターンA: 全く変更していないアイテムクエリの実行時間 ・パターンB: 在庫情報をログイン中店舗のみに絞ったときの実行時間
結果 14
その後… 15 他にも不必要な処理を見直した ・RemoteConfigによる待機時間の制御 ・アイテムリストのループ処理をSwift Concurrencyに置き換えてリファクタ リング
その後… 16 CSから起動時間が劇的に早くなったと連絡をもらった ・改善前と改善後の秒数としておよそ80%改善 ・副次的効果としてアイテム取得処理中のクラッシュが改善した
まとめ 17 ・GraphQLはクエリの書き方によってパフォーマンスが大きく変わる ・アプリの起動時間はユーザー体験に大きく関わってくる ・計測、大事