Skip to content
rn-dev-agent
Search
Ctrl
K
Cancel
GitHub
Select theme
Dark
Light
Auto
Getting Started
Architecture
Commands
Overview
Core
rn-feature-dev
test-feature
build-and-test
debug-screen
check-env
Proof & Testing
proof-capture
nav-graph
Experience Engine
rn-agent-health
rn-agent-compact
rn-agent-export
rn-agent-import
send-feedback
MCP Tools
Overview
CDP Tools (19)
cdp_status
cdp_connect
cdp_disconnect
cdp_targets
cdp_evaluate
cdp_reload
cdp_component_tree
cdp_component_state
cdp_navigation_state
cdp_nav_graph
cdp_navigate
cdp_store_state
cdp_dispatch
cdp_dev_settings
cdp_interact
cdp_network_log
cdp_console_log
cdp_error_log
collect_logs
Device Tools (14)
device_list
device_screenshot
device_snapshot
device_find
device_press
device_fill
device_swipe
device_scroll
device_scrollintoview
device_back
device_longpress
device_pinch
device_permission
device_batch
Testing Tools (5)
cdp_auto_login
proof_step
maestro_run
maestro_generate
maestro_test_all
Agents
Overview
rn-tester
rn-debugger
rn-code-explorer
rn-code-architect
rn-code-reviewer
Skills
Overview
Device Control
Testing
Debugging
Best Practices
Best Practices
Rule Index
Rules
Use GestureDetector for Animated Press States
Prefer useDerivedValue Over useAnimatedReaction
Animate Transform and Opacity Instead of Layout Properties
Check Cheap Conditions Before Async Work
Promise.all() for Independent Operations
Destructure Functions Early in Render (React Compiler)
Use .get() and .set() for Reanimated Shared Values (not .value)
Use Compound Components Over Polymorphic Children
Load fonts natively at build time
Import from Design System Folder
Initialize App Once, Not Per Mount
Hoist Intl Formatter Creation
Build Index Maps for Repeated Lookups
Use Set/Map for O(1) Lookups
Keep List Items Lightweight
Optimize List Performance with Stable Object References
Avoid Inline Objects in renderItem
Hoist callbacks to the root of lists
Use Compressed Images in Lists
Pass Primitives to List Items for Memoization
Use Item Types for Heterogeneous Lists
Use a List Virtualizer for Any List
Install Native Dependencies in App Directory
Use Single Dependency Versions Across Monorepo
Use Native Navigators for Navigation
Use Reactive Query Hooks, Not Imperative Cache Reads
useState Dispatch updaters for State That Depends on Current Value
Use fallback state instead of initialState
Minimize State Variables and Derive Values
Avoid Reanimated Layout Animations in Virtualized Lists
Never Use && with Potentially Falsy Values
Wrap Strings in Text Components
Use Lazy State Initialization
Don't Define Components Inside Components
Never Track Scroll Position in useState
State Must Represent Ground Truth
Consume Theme Hooks Inside List Items, Not in renderItem
Use expo-image for Optimized Images
Use Galeria for Image Galleries and Lightbox
Measuring View Dimensions
Use Native Menus for Dropdowns and Context Menus
Use Native Modals Over JS-Based Bottom Sheets
Use Pressable Instead of Touchable Components
Use contentInsetAdjustmentBehavior for Safe Areas
Use contentInset for Dynamic ScrollView Spacing
Modern React Native Styling Patterns
Benchmarks
Troubleshooting
Changelog
GitHub
Select theme
Dark
Light
Auto
Troubleshooting
Connection issues
Section titled “Connection issues”
Store state issues
Section titled “Store state issues”
Plugin issues
Section titled “Plugin issues”
Device issues
Section titled “Device issues”