Expo Data Fetching
Practical networking guidance for Expo apps, covering API calls, caching, offline behavior, and authentication.
The skill warns against placing secrets in EXPO_PUBLIC_ variables, recommends SecureStore for tokens, and mentions validation and server-side secrets, providing useful data-flow guidance. It lacks user confirmation, least-privilege controls, rollback guidance, and systematic dependency-security notes; authentication examples also rely on undefined refreshToken and isTokenExpired behavior, so points are deducted.
The material is internally organized and covers basic requests, errors, retries, cancellation, offline behavior, and environment variables. However, it contains only static snippets, no committed tests for key paths, and several behaviors depend on unspecified library versions or project context. Failure feedback for malformed responses, token-refresh failures, and concurrency edge cases is incomplete; under static calibration the score stays at or below 10.
Trigger conditions and scenarios are clear enough for Expo networking, React Query, SWR, authentication, offline requests, and web loaders, with an explicit native-versus-web distinction. Chinese-language support, mainland-China reachability, and detailed non-fit boundaries are not addressed, while the requirement to use the skill for any networking work is broad, so points are deducted.
The skill has a name, description, version, MIT license, references, decision tree, common mistakes, and invocation examples. The repository README adds installation, update guidance, and a stated source of truth. The selected skill lacks a changelog, named maintenance responsibility, dependency-install notes, stability commitments, and a systematic FAQ; some referenced behavior is described as subject to future change, so points are deducted.
The examples are directly adaptable for fetch, React Query, SWR, SecureStore, EXPO_PUBLIC_ configuration, loaders, offline support, and cancellation, covering the core task well. Static evidence does not verify actual outputs, execution results, or comparative benefit over manual alternatives, and several snippets require project-specific completion, so the score is conservatively limited.
Evidence consists mainly of the skill text, code examples, repository README, license, and limited CI workflows. There are no committed tests covering the skill's key paths, third-party execution records, or meaningful cross-source corroboration, so only limited auditable evidence is credited.
- Verify API behavior, package versions, and Expo SDK 55+ loader details against current official documentation.
- Do not place high-privilege secrets, database passwords, or write-capable API keys in EXPO_PUBLIC_; loader results are serialized and must not expose sensitive data.
- Authentication, retry, offline persistence, and token-refresh snippets still need timeouts, input validation, concurrency-failure handling, and diagnosable logging.
- This assessment is based only on static files; no code or tests were executed.
What does this skill do, and when should you use it?
Expo Data Fetching is an open-source framework skill in the expo/skills collection for networking in Expo and React Native applications. It covers fetch, React Query, SWR, error handling, caching, offline support, authentication, environment variables, and Expo Router data loaders. It prefers fetch or expo/fetch over axios. It is a good fit for teams building or debugging networked Expo features, although the source does not provide a test suite or a standalone installation procedure.
It guides an agent through GET and POST fetch requests, HTTP status checks, and response parsing; React Query queries, mutations, caching, retries, and invalidation; SWR or custom hooks for simpler needs; typed API errors, exponential backoff, cancellation, and offline approaches; SecureStore-based token storage and refresh flows; EXPO_PUBLIC_ configuration and environment-specific API URLs; and reference-based decisions for Expo Router loaders and offline cancellation.
- An Expo developer needs to connect a React Native screen to a GET or POST API.
- A team wants React Query or SWR to manage query state, caching, and refetching.
- A developer is diagnosing HTTP failures, connectivity errors, timeouts, or retry behavior.
- An app needs secure authentication-token storage and token refresh handling.
- An application must detect offline status, cache data, or support an offline-first flow.
- A team needs separate API URLs for development and production builds.
What are this skill's strengths and limitations?
- Covers API requests, caching, error handling, authentication, and offline scenarios.
- Includes practical TypeScript and TSX examples.
- Clearly warns against placing secrets in EXPO_PUBLIC_ variables.
- Points to focused references for Expo Router loaders, NetInfo, and AbortController.
- Released under MIT as part of an official Expo-maintained skill collection.
- It is instructional content, not an executable data-fetching library.
- The README documents collection-wide installation rather than standalone installation for this skill.
- The source provides no test suite, benchmark, or platform-coverage evidence.
- Detailed offline and Expo Router loader behavior is delegated to reference files not included here.
How do you install this skill?
This skill is distributed as part of the expo/skills collection. Install all Expo skills with the Skills CLI: npx skills@latest add expo/skills --skill '*'. Follow the CLI prompts to select the target agent, then restart or refresh the agent session. In Codex, install the containing official plugin with: codex plugin add expo@openai-curated. The source does not document a separate install command or destination for only expo-data-fetching.
How do you use this skill?
After installation, give the agent a concrete networking request, such as: “How do I fetch a user profile in Expo with React Query and handle API errors?” or “How do I configure data loading for an Expo Router page?” The skill directs the agent toward fetch, React Query, SWR, SecureStore, environment variables, offline support, or loaders as appropriate. Its Expo Router loader guidance is scoped to web and SDK 55+; for native, it points to React Query or fetch.
How does this skill compare with similar options?
Compared with axios, the skill explicitly prefers fetch or expo/fetch. For data-state management, it recommends React Query for complex applications and SWR or custom hooks for simpler requirements.