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
Tsubasa SEKIGUCHI
July 15, 2026
Programming
76
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
1
460
第3木曜LT会 #28
tinykitten
0
170
スモールスタートでいこう 自作テレメトリシステム概論
tinykitten
0
68
TrainLCD v10リリース記念 TrainLCDを支える技術
tinykitten
1
600
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
0
300
初めてのハッカソンを「紙芝居」で終わらせた話
tinykitten
0
82
これならできる!個人開発のすゝめ
tinykitten
0
610
今日から使える AI駆動開発のすゝめ
tinykitten
1
140
Reactで始める リグレッションテスト概論
tinykitten
0
93
Other Decks in Programming
See All in Programming
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
250
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
280
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
340
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
620
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
110
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
650
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
Flow は今どうなっているか
mizdra
PRO
0
870
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
110
AIエージェント時代のコードレビューを設計する
nogu66
5
2.4k
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
260
Featured
See All Featured
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Test your architecture with Archunit
thirion
2
2.4k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
KATA
mclloyd
PRO
35
15k
4 Signs Your Business is Dying
shpigford
187
23k
Six Lessons from altMBA
skipperchong
29
4.5k
Fireside Chat
paigeccino
42
4k
Designing Powerful Visuals for Engaging Learning
tmiket
1
530
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
970
A designer walks into a library…
pauljervisheath
211
24k
Designing for Timeless Needs
cassininazir
1
470
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