Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
React Native × GraphQLで TanStack Queryを 選んだ理由
Search
Tsubasa SEKIGUCHI
July 15, 2026
Programming
90
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
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
250
エンジニアでも捗る デザイナー的思考入門(bitA Edit 新ver)
tinykitten
1
640
第3木曜LT会 #28
tinykitten
0
180
スモールスタートでいこう 自作テレメトリシステム概論
tinykitten
0
83
TrainLCD v10リリース記念 TrainLCDを支える技術
tinykitten
1
640
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
0
330
初めてのハッカソンを「紙芝居」で終わらせた話
tinykitten
0
91
これならできる!個人開発のすゝめ
tinykitten
0
630
今日から使える AI駆動開発のすゝめ
tinykitten
1
140
Other Decks in Programming
See All in Programming
ジョジョの世界をXRで再現する
mofurune
0
160
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
210
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
180
Workers Cache を知る
syumai
0
360
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.6k
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
390
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
370
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
410
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Typedesign – Prime Four
hannesfritz
42
3.2k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Bash Introduction
62gerente
615
220k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
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