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
110
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
280
エンジニアでも捗る デザイナー的思考入門(bitA Edit 新ver)
tinykitten
1
670
第3木曜LT会 #28
tinykitten
0
190
スモールスタートでいこう 自作テレメトリシステム概論
tinykitten
0
88
TrainLCD v10リリース記念 TrainLCDを支える技術
tinykitten
1
650
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
0
340
初めてのハッカソンを「紙芝居」で終わらせた話
tinykitten
0
96
これならできる!個人開発のすゝめ
tinykitten
0
650
今日から使える AI駆動開発のすゝめ
tinykitten
1
150
Other Decks in Programming
See All in Programming
Modernizing iOS Apps
seyfoyun
0
150
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
250
AIが実装を担う時代の「技術設計」と「チームマネジメント」
kamina_zzz
1
130
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
290
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
200
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.8k
Kotlinの15年とServer-Side Kotlin
n_takehata
1
190
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.6k
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
230
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
170
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
410
ChromeでローカルLLM
ryu1013
0
190
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3.1k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
WCS-LA-2024
lcolladotor
0
970
Mobile First: as difficult as doing things right
swwweet
225
10k
The SEO identity crisis: Don't let AI make you average
varn
0
630
KATA
mclloyd
PRO
35
16k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
520
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
620
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
380
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