---
name: react-native-best-practices
description: React Native development. Cross-platform code, native modules, performance. Use when building mobile apps.
compatibility: opencode
---
# React Native Best Practices
Cross-platform mobile development with React Native.
## Core Principles
- **Cross-platform first**: 80%+ shared code
- **Native when needed**: Platform-specific modules
- **Performance**: Cold start < 1.5s, memory < 120MB
- **Offline-first**: Local data, sync later
## Cross-Platform Code
```typescript
// Platform.select for different implementations
import { Platform } from 'react-native';
const styles = Platform.select({
ios: { paddingTop: 48 },
android: { paddingTop: 24 },
});
```
## Navigation
```typescript
// React Navigation
import { NavigationContainer } from '@react-navigation/native';
```
## State Management
```typescript
// Zustand for simple state
import { create } from 'zustand';
const useStore = create((set) => ({
count: 0,
increment: () => set((s) => ({ count: s.count + 1 })),
}));
```
## Offline Storage
```typescript
// WatermelonDB for offline-first
import { Database } from '@nozbe/watermelondb';
const database = new Database({
schema: appSchema,
modelClasses: [User, Post],
});
```
## Native Modules
```typescript
// TurboModule for New Architecture
import type { TurboModule } from 'react-native';
import { TurboModuleRegistry } from 'react-native';
export interface Spec extends TurboModule {
startActivity(options: string): Promise;
}
export default TurboModuleRegistry.getEnforcing('CameraModule');
```
## Push Notifications
```typescript
// @notifee/react-native
import messaging from '@react-native-firebase/messaging';
await messaging().requestPermission();
const token = await messaging().getToken();
```
## Build Commands
```bash
# iOS
cd ios && pod install && cd ..
npm run build:ios
# Android
cd android && ./gradlew assembleRelease
```
## Quality Gates
- [ ] 80%+ cross-platform code
- [ ] Cold start < 1.5s
- [ ] Memory baseline < 120MB
- [ ] Battery drain < 4%/hour
- [ ] 60+ FPS (120 for ProMotion)
- [ ] Crash rate < 0.1%