React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.
Install with Tessl CLI
npx tessl i github:vercel-labs/agent-skills --skill vercel-react-native-skills87
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillEvaluation — 99%
↑ 2.15xAgent success when using this skill
Validation for skill structure
Performant virtualized list with heterogeneous items
Uses virtualizer
33%
100%
getItemType provided
0%
100%
No pre-list mapping
80%
100%
No inline objects in renderItem
100%
100%
Primitive props to items
25%
100%
No data fetching in items
100%
100%
expo-image used
0%
100%
CDN resize params used
60%
100%
Hoisted root callback
100%
100%
No likeCount && pattern
100%
100%
Strings in Text components
100%
100%
Without context: $0.3652 · 1m 19s · 19 turns · 26 in / 5,121 out tokens
With context: $0.6865 · 2m 1s · 30 turns · 29 in / 8,546 out tokens
Native UI patterns and modern styling
Pressable not Touchable
100%
100%
zeego dropdown menu
0%
100%
Native modal formSheet
0%
100%
expo-image for avatar
0%
100%
Galeria for lightbox
0%
100%
contentInsetAdjustmentBehavior
0%
100%
gap not margin
100%
100%
boxShadow CSS syntax
0%
100%
borderCurve continuous
0%
100%
Consistent font sizes
0%
100%
No gradient library import
100%
100%
Strings in Text
100%
100%
Without context: $0.4029 · 1m 57s · 11 turns · 16 in / 9,288 out tokens
With context: $0.5746 · 1m 34s · 27 turns · 4,601 in / 5,943 out tokens
Animation and scroll performance patterns
Transform not height animation
0%
100%
GestureDetector for press
0%
100%
No .value for shared values
0%
100%
Ground truth state
50%
70%
useDerivedValue for derived animation
50%
100%
No scroll useState
100%
100%
useAnimatedScrollHandler used
100%
100%
Opacity or transform for header fade
100%
100%
runOnJS for JS callbacks
100%
100%
Comments explaining decisions
50%
100%
Without context: $0.4637 · 2m 51s · 17 turns · 23 in / 9,554 out tokens
With context: $0.4408 · 1m 40s · 19 turns · 1,972 in / 5,812 out tokens
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.