Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add vuralserhat86/antigravity-agentic-skills --skill "mobile_react_native"
Install specific skill from multi-skill repository
# Description
React Native best practices, hooks, navigation ve performance optimization.
# SKILL.md
name: mobile_react_native
router_kit: FullStackKit
description: React Native best practices, hooks, navigation ve performance optimization.
metadata:
skillport:
category: development
tags: [accessibility, api integration, backend, browser apis, client-side, components, css3, debugging, deployment, frameworks, frontend, fullstack, html5, javascript, libraries, mobile react native, node.js, npm, performance optimization, responsive design, seo, state management, testing, typescript, ui/ux, web development] - mobile-flutter
📱 Mobile React Native
React Native best practices ve performance optimization.
📁 1. Proje Yapısı
src/
├── components/
│ ├── common/ # Reusable
│ └── screens/ # Screen components
├── hooks/ # Custom hooks
├── services/ # API, storage
├── store/ # State (Zustand)
├── navigation/
└── App.tsx
⚡ 2. Performance
// FlatList optimizasyonu
<FlatList
data={items}
keyExtractor={(item) => item.id}
removeClippedSubviews={true}
maxToRenderPerBatch={10}
windowSize={5}
getItemLayout={(data, index) => ({
length: ITEM_HEIGHT,
offset: ITEM_HEIGHT * index,
index,
})}
/>
// Memoization
const Component = React.memo(({ data }) => { });
const callback = useCallback(() => {}, [deps]);
const value = useMemo(() => compute(), [deps]);
🔐 3. Secure Storage
// ❌ AsyncStorage güvenli değil
// ✅ SecureStore kullan
import * as SecureStore from 'expo-secure-store';
await SecureStore.setItemAsync('token', userToken);
const token = await SecureStore.getItemAsync('token');
🧭 4. Navigation
type RootStackParamList = {
Home: undefined;
Profile: { userId: string };
};
const Stack = createNativeStackNavigator<RootStackParamList>();
📦 5. State (Zustand)
import { create } from 'zustand';
import { persist } from 'zustand/middleware';
const useAuthStore = create(
persist(
(set) => ({
user: null,
login: (user) => set({ user }),
logout: () => set({ user: null }),
}),
{ name: 'auth-storage' }
)
);
📱 6. Platform-Specific
import { Platform } from 'react-native';
const padding = Platform.select({ ios: 20, android: 0 });
// Dosya bazlı: Button.ios.tsx, Button.android.tsx
Mobile React Native v1.1 - Enhanced
🔄 Workflow
Kaynak: React Native Performance Guide & Expo Guideline
Aşama 1: Setup & Architecture
- [ ] Framework: Expo (Managed Workflow) ile başla,
expo-routerv3 kullan. - [ ] State: Zustand veya TanStack Query ile server/client state ayrımını yap.
- [ ] Styling: NativeWind (Tailwind) veya Restyle ile tutarlı tasarım sistemi kur.
Aşama 2: Performance Optimization
- [ ] Lists:
FlatListyerineFlashList(Shopify) kullan (5x performans). - [ ] Images:
expo-imageile caching ve blurhash desteği ekle. - [ ] Bundle:
Hermesengine'i aktifleştir ve bundle size analizi yap.
Aşama 3: Native Modules & Release
- [ ] Native: Gerekirse Custom Native Module (Turbo Modules) yaz.
- [ ] Updates:
expo-updatesile store onayı beklemeden OTA (Over-the-Air) güncelleme yap. - [ ] Profiling: Flipper veya React DevTools ile FPS ve Memory Leak kontrolü yap.
Kontrol Noktaları
| Aşama | Doğrulama |
|---|---|
| 1 | UI thread (JS thread) 60fps'in altına düşüyor mu? |
| 2 | Uygulama boyutu (APK/IPA) optimize edildi mi? |
| 3 | Android ve iOS davranışları (Navigation, Keyboard) tutarlı mı? |
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.