> react-native-performance
Optimize React Native rendering for smooth 60fps mobile experiences. Use when optimizing React Native app performance, reducing re-renders, or fixing frame drops. (triggers: **/*.tsx, **/*.ts, FlatList, memo, useMemo, useCallback, performance, optimization)
curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/react-native-performance?format=md"React Native Performance
Priority: P0 (CRITICAL)
Tune FlatList for 60fps
windowSize: Reduce to 5-10 for memory-heavy lists (default 21).initialNumToRendershould cover the first viewport.getItemLayout: Provide for fixed-height items. Skips runtime measurement.removeClippedSubviews: Enable for Android (default true) to offload clipped items.maxToRenderPerBatch: Limit to 5-10 items per frame to prevent JS thread blockage.keyExtractor: Use stable unique IDs, never array index.
See optimization guide for FlatList configuration examples with getItemLayout, windowSize, and memoization patterns.
Accelerate Core Rendering
- The Engine: Ensure Hermes engine is enabled (default in 0.7x). Verify via
global.HermesInternal. - Animations: Use Native Driver (
useNativeDriver: true) or Reanimated 3 for GPU-accelerated 60fps animations. - Re-renders: Use
React.memoanduseMemofor expensive props. Profile via Flipper (React DevTools) for flamegraphs. - Network: Batch API calls. Use React Query/Zustand to prevent unnecessary screen refreshes.
- Images: Use
react-native-fast-imagefor caching and priority. Avoid large PNGs; use WebP.
Reduce Bundle and Startup Time
- Hermes: Enable for faster startup (default in RN 0.70+).
- Tree Shaking: Remove unused imports.
- ProGuard/R8: Enable code shrinking on Android.
- Lazy Screens: Use
lazyprop for stack screens (enabled by default).
Anti-Patterns
- No ScrollView for Large Lists: Use FlatList.
- No Inline Styles: Use
StyleSheet.create(optimized). - No console.log in Production: Strip with babel plugin.
References
See references/optimization-guide.md for FlatList configuration, memoization rules, and bundle analysis.
> related_skills --same-repo
> common-store-changelog
Generate user-facing release notes for the Apple App Store and Google Play Store by collecting git history, triaging user-impacting changes, and drafting store-compliant changelogs. Enforces character limits (App Store ≤4000, Google Play ≤500), tone, and bullet format. Use when generating release notes, app store changelog, play store release, what's new, or version release notes for any mobile app. (triggers: generate changelog, app store notes, play store release, what's new, release notes, ve
> golang-tooling
Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code. (triggers: gopls, golangci-lint, golangci.yml, go vet, goimports, staticcheck, go tooling, go lint)
> common-ui-design
Design distinctive, production-grade frontend UI with bold aesthetic choices. Use when building web components, pages, interfaces, dashboards, or applications in any framework (React, Next.js, Angular, Vue, HTML/CSS). (triggers: build a page, create a component, design a dashboard, landing page, UI for, build a layout, make it look good, improve the design, build UI, create interface, design screen)
> common-owasp
OWASP Top 10 audit checklist for Web Applications (2021) and APIs (2023). Load during any security review, PR review, or codebase audit touching web, mobile backend, or API code. (triggers: security review, OWASP, broken access control, IDOR, BOLA, injection, broken auth, API review, authorization, access control)