> react-native
Assists with building iOS and Android applications from a single TypeScript codebase using React Native. Use when implementing mobile UI components, navigation, native device APIs, performance optimization, or setting up testing and CI pipelines for mobile apps. Trigger words: react native, mobile app, ios, android, flatlist, reanimated.
curl "https://skillshub.wtf/TerminalSkills/skills/react-native?format=md"React Native
Overview
React Native is a framework for building native iOS and Android applications from a single TypeScript codebase. It provides core UI components (View, Text, FlatList), integrates with Expo for managed development and cloud builds, supports performant animations via Reanimated, and offers access to native device APIs through Expo SDK modules.
Instructions
- When starting a project, use Expo (
npx create-expo-app) unless you need a native module Expo does not support, since ejecting adds significant complexity. - When building lists, use
FlatListfor any list over 20 items withgetItemLayoutandkeyExtractor; avoidScrollViewfor large datasets since it renders all items at once. - When implementing navigation, use Expo Router for file-based routing or React Navigation for programmatic control, with stack, tab, drawer, and modal patterns.
- When styling components, use
StyleSheet.create({})for performant styles with Flexbox layout,Platform.select()for platform-specific styles, and NativeWind for Tailwind CSS syntax. - When managing state, use React Query or TanStack Query for server state, Zustand or Jotai for client state, and
expo-secure-storefor auth tokens and secrets. - When optimizing performance, use Reanimated for 60fps UI-thread animations, Gesture Handler for touch gestures,
React.memoto prevent unnecessary re-renders, and the Hermes engine (default in Expo SDK 50+). - When testing, use Jest with React Native Testing Library for unit and component tests, and Detox or Maestro for end-to-end testing on simulators.
Examples
Example 1: Build a social feed with infinite scroll
User request: "Create a social media feed with infinite scrolling and pull-to-refresh"
Actions:
- Set up a
FlatListwithonEndReachedfor pagination andrefreshControlfor pull-to-refresh - Use React Query with infinite query for server state management
- Implement post cards with
expo-imagefor optimized image loading - Add Reanimated-based like animation on double-tap gesture
Output: A performant social feed with infinite scroll, pull-to-refresh, optimized images, and smooth animations.
Example 2: Add biometric login to a finance app
User request: "Implement Face ID and fingerprint login for my React Native banking app"
Actions:
- Use
expo-local-authenticationto check biometric availability and authenticate - Store auth tokens in
expo-secure-store(backed by Keychain on iOS, Keystore on Android) - Add fallback to PIN/password when biometrics are unavailable
- Handle authentication state with Zustand and persist session securely
Output: A banking app with biometric login, secure token storage, and graceful fallback authentication.
Guidelines
- Use Expo unless a specific native module requires ejecting; the managed workflow reduces complexity significantly.
- Use
expo-imageoverImagefor better caching, transitions, and format support. - Use
FlatListfor lists over 20 items sinceScrollViewrenders all items at once and can crash on large datasets. - Store auth tokens in
expo-secure-store, not AsyncStorage, since AsyncStorage is unencrypted. - Use Reanimated for animations instead of the
AnimatedAPI since Reanimated runs on the UI thread without JS bridge bottleneck. - Test on real devices because simulators miss performance issues, permission flows, and push notifications.
> related_skills --same-repo
> zustand
You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.
> zoho
Integrate and automate Zoho products. Use when a user asks to work with Zoho CRM, Zoho Books, Zoho Desk, Zoho Projects, Zoho Mail, or Zoho Creator, build custom integrations via Zoho APIs, automate workflows with Deluge scripting, sync data between Zoho apps and external systems, manage leads and deals, automate invoicing, build custom Zoho Creator apps, set up webhooks, or manage Zoho organization settings. Covers Zoho CRM, Books, Desk, Projects, Creator, and cross-product integrations.
> zod
You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.
> zipkin
Deploy and configure Zipkin for distributed tracing and request flow visualization. Use when a user needs to set up trace collection, instrument Java/Spring or other services with Zipkin, analyze service dependencies, or configure storage backends for trace data.