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
React Native × GraphQLで TanStack Queryを 選んだ理由
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tsubasa SEKIGUCHI
July 15, 2026
Programming
68
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
React Native × GraphQLで TanStack Queryを 選んだ理由
第3木曜LT会 #31 にて発表させていただいたスライドです
Tsubasa SEKIGUCHI
July 15, 2026
More Decks by Tsubasa SEKIGUCHI
See All by Tsubasa SEKIGUCHI
エンジニアでも捗る デザイナー的思考入門(bitA Edit 新ver)
tinykitten
0
280
第3木曜LT会 #28
tinykitten
0
160
スモールスタートでいこう 自作テレメトリシステム概論
tinykitten
0
66
TrainLCD v10リリース記念 TrainLCDを支える技術
tinykitten
1
590
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
0
290
初めてのハッカソンを「紙芝居」で終わらせた話
tinykitten
0
77
これならできる!個人開発のすゝめ
tinykitten
0
590
今日から使える AI駆動開発のすゝめ
tinykitten
1
130
Reactで始める リグレッションテスト概論
tinykitten
0
92
Other Decks in Programming
See All in Programming
Building a Meta Ray-Ban display app
akkeylab
0
160
仕様駆動開発の消費期限
watany
20
8.5k
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
950
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
550
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
150
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.9k
AIを紡ぐPMのお話
swdtkuy
0
110
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
テーブルをDELETEした
yuzneri
0
140
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
150
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
300
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
120
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
670
Paper Plane
katiecoart
PRO
2
53k
Statistics for Hackers
jakevdp
799
230k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
210
Docker and Python
trallard
47
4.1k
GitHub's CSS Performance
jonrohan
1033
470k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
470
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
170
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Transcript
2026.07.16 | 第3木曜LT会 #31 React Native × GraphQLで TanStack Queryを
選んだ理由 Reasons for choosing: TanStack Query in React Native and GraphQL development Fullstack Creator Tsubasa SEKIGUCHI
2026.07.16 | 第3木曜LT会 #31 フルスタッククリエイター 関口 翼 関口 翼 Tsubasa
SEKIGUCHI aka TinyKitten Tsubasa SEKIGUCHI aka TinyKitten / きったん 2
2026.07.16 | 第3木曜LT会 #31 フルスタッククリエイター TinyKitten タイニーキトゥン aka 関口 翼
3
2026.07.16 | 第3木曜LT会 #31 電車のあの画面、持ち歩けます。 TrainLCD 今までありそうでなかった あなたのスマートフォンで使える トレインビジョン 4
2026.07.16 | 第3木曜LT会 #31 推定到着時間(ETA)機能 ストアリリースしました! 表示されている分数はあくまで推定です。 実際の経路とは多少の誤差があります。 5
2026.07.16 | 第3木曜LT会 #31 背景の説明 Background: TrainLCD & StationAPI 6
2026.07.16 | 第3木曜LT会 #31 TrainLCD 電車の「あの画面」を再現した モバイルアプリ 🚃 StationAPI 駅データを返す
自作gRPC API + GraphQL BFF 🗺 使い心地は? アプリをv10にアップデートした あたりから、なんか重い 🐢 今回扱うシステム 駅一覧を取るたび、 なんか遅い 7
2026.07.16 | 第3木曜LT会 #31 データの親元 駅データ.jpのCSVを 使用しています 📄 駅データの構造 station_cd
は路線ごとの駅 同一駅は station_g_cd でグループ 🔑 バス情報にも対応 ODPT*1のGTFSデータを 使用しています 🚌 *1 ODPTは公共交通オープンデータセンターのことです データ構造について 駅データ.jpの データをベースに 独自にアレンジ 8
2026.07.16 | 第3木曜LT会 #31 Apollo Clientを辞めた理由 The reasons why Apollo
Client was not the right fit 9
2026.07.16 | 第3木曜LT会 #31 Apollo Clientは書き込み時 ネスト全要素を再帰走査して キャッシュへ書く 🖋️ __typename
自動注入 全オブジェクト分ペイロードが膨らみ JSON.parseも重くなる 🏷 broadcastQueries 書き込みのたび、全useQueryを cache.diff で再評価 📡 Apollo Clientの内部処理 observerの数 × グラフの大きさで、 さらに走査が増える 10
2026.07.16 | 第3木曜LT会 #31 大前提として キャッシュ処理は JSのシングルスレッドで実行 🔁 シングルスレッドの中で タッチ・ジェスチャー・
画面遷移・アニメーションが動作 👆 その結果 駅一覧を取るたびスレッドを占有 タップや遷移が引っかかる 🌀 実際のところ 操作のレスポンスが 悪かった理由 11
2026.07.16 | 第3木曜LT会 #31 TanStack Queryを採用した理由 Reasons for adopting TanStack
Query 12
2026.07.16 | 第3木曜LT会 #31 前までは React Queryという 名前だったOSS ⚛️ 単なる通信ライブラリではない
データ取得に付随するキャッシュ、 再取得、通信状態などをまとめて扱う 🗃️ TanStack Query、実は... APIクライアントそのものではなく、 fetchなどで通信し、その結果と ライフサイクルを管理する 🌱 そもそも TanStack Query って何? 13
2026.07.16 | 第3木曜LT会 #31 Apollo Clientは 正規化したグラフを キャッシュする TanStack Queryは
クエリ結果を そのまま保存する 何をキャッシュするかの違い Apollo Clientが 悪いわけではない 設計の違い 14
2026.07.16 | 第3木曜LT会 #31 ライトウェイトな設計 graphql-requestで ただのfetchでのPOSTに 🤝 呼び出し側は Apollo
API互換フックで 書き換えを最小化 🎭 キャッシュ方針 staleTime: Infinity で cache-first を等価再現 ♻️ TanStack Queryに置き換える設計 通信の挙動はそのまま 走査コストを排除 15
2026.07.16 | 第3木曜LT会 #31 まとめ Conclusion 16
2026.07.16 | 第3木曜LT会 #31 今までは 正規化の恩恵ゼロのまま、 走査コストを負っていた 💸 JSの制約 巨大レスポンス
× React Native の JSスレッドでは致命傷に 📱 計算量的に言うと big-Oは同じでも、 定数項が体感を支配する 🧮 まとめ キャッシュは賢さより プロダクトとの 相性で選ぶ 17
2026.07.16 | 第3木曜LT会 #31 ご清聴ありがとうございました! Thank you for listening! Freelance
Frontend Engineer Tsubasa SEKIGUCHI