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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
1
170
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
360
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
22
22k
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
590
最近”作らせてる” ローカルAIアプリの話
akit37
0
460
Simple Storage Service(S3) is not simple
iwatsukayura
0
280
Agents on Rails - Rails at Scale 2026
irinanazarova
0
540
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
カツオ、ご期待ください
suneo3476
0
180
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
210
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Featured
See All Featured
Leo the Paperboy
mayatellez
10
2.4k
Site-Speed That Sticks
csswizardry
13
1.6k
Skip the Path - Find Your Career Trail
mkilby
1
250
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
First, design no harm
axbom
PRO
2
1.3k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Prompt Engineering for Job Search
mfonobong
0
510
Thoughts on Productivity
jonyablonski
76
5.4k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
520
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