סקיל React Native Skills
vercel-react-native-skills הוא הסקיל מבית Vercel Labs שמיועד לפיתוח אפליקציות מובייל ב-React Native. הוא מכסה דפוסי ביצועים, ניווט מקצועי, ניהול state במובייל, ופתרונות ל-UX ייחודיים לטלפונים. בעולם שבו React Native הופך לבחירה ראשונה לאפליקציות B2C, הסקיל הוא תשתית חובה למפתחים שמעבירים את הקוד שלהם מהדפדפן לטלפון. במדריך תקבלו את הקוד המלא, דוגמאות מהשטח, ובדיקת אבטחה.
פקודת התקנה
npx skills add https://github.com/vercel-labs/agent-skills --skill react-native-skills
הסקיל הוא קובץ Markdown פתוח עם רישיון MIT. אפשר להוריד ולהריץ בדיקת קוד לפני התקנה.
מה הסקיל כולל?
הסקיל מתעד את הדפוסים הספציפיים ל-React Native שלא קיימים ב-React DOM. הוא מסודר לפי תחומים, ניווט, ביצועים, UX, ו-platform-specific code.
קוד הסקיל המלא
---
name: vercel-react-native-skills
description:
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.
license: MIT
metadata:
author: vercel
version: '1.0.0'
---
# React Native Skills
Comprehensive best practices for React Native and Expo applications. Contains
rules across multiple categories covering performance, animations, UI patterns,
and platform-specific optimizations.
## When to Apply
Reference these guidelines when:
- Building React Native or Expo apps
- Optimizing list and scroll performance
- Implementing animations with Reanimated
- Working with images and media
- Configuring native modules or fonts
- Structuring monorepo projects with native dependencies
## Rule Categories by Priority
| Priority | Category | Impact | Prefix |
| -------- | ---------------- | -------- | -------------------- |
| 1 | List Performance | CRITICAL | `list-performance-` |
| 2 | Animation | HIGH | `animation-` |
| 3 | Navigation | HIGH | `navigation-` |
| 4 | UI Patterns | HIGH | `ui-` |
| 5 | State Management | MEDIUM | `react-state-` |
| 6 | Rendering | MEDIUM | `rendering-` |
| 7 | Monorepo | MEDIUM | `monorepo-` |
| 8 | Configuration | LOW | `fonts-`, `imports-` |
## Quick Reference
### 1. List Performance (CRITICAL)
- `list-performance-virtualize` - Use FlashList for large lists
- `list-performance-item-memo` - Memoize list item components
- `list-performance-callbacks` - Stabilize callback references
- `list-performance-inline-objects` - Avoid inline style objects
- `list-performance-function-references` - Extract functions outside render
- `list-performance-images` - Optimize images in lists
- `list-performance-item-expensive` - Move expensive work outside items
- `list-performance-item-types` - Use item types for heterogeneous lists
### 2. Animation (HIGH)
- `animation-gpu-properties` - Animate only transform and opacity
- `animation-derived-value` - Use useDerivedValue for computed animations
- `animation-gesture-detector-press` - Use Gesture.Tap instead of Pressable
### 3. Navigation (HIGH)
- `navigation-native-navigators` - Use native stack and native tabs over JS navigators
### 4. UI Patterns (HIGH)
- `ui-expo-image` - Use expo-image for all images
- `ui-image-gallery` - Use Galeria for image lightboxes
- `ui-pressable` - Use Pressable over TouchableOpacity
- `ui-safe-area-scroll` - Handle safe areas in ScrollViews
- `ui-scrollview-content-inset` - Use contentInset for headers
- `ui-menus` - Use native context menus
- `ui-native-modals` - Use native modals when possible
- `ui-measure-views` - Use onLayout, not measure()
- `ui-styling` - Use StyleSheet.create or Nativewind
### 5. State Management (MEDIUM)
- `react-state-minimize` - Minimize state subscriptions
- `react-state-dispatcher` - Use dispatcher pattern for callbacks
- `react-state-fallback` - Show fallback on first render
- `react-compiler-destructure-functions` - Destructure for React Compiler
- `react-compiler-reanimated-shared-values` - Handle shared values with compiler
### 6. Rendering (MEDIUM)
- `rendering-text-in-text-component` - Wrap text in Text components
- `rendering-no-falsy-and` - Avoid falsy && for conditional rendering
### 7. Monorepo (MEDIUM)
- `monorepo-native-deps-in-app` - Keep native dependencies in app package
- `monorepo-single-dependency-versions` - Use single versions across packages
### 8. Configuration (LOW)
- `fonts-config-plugin` - Use config plugins for custom fonts
- `imports-design-system-folder` - Organize design system imports
- `js-hoist-intl` - Hoist Intl object creation
## How to Use
Read individual rule files for detailed explanations and code examples:
```
rules/list-performance-virtualize.md
rules/animation-gpu-properties.md
```
Each rule file contains:
- Brief explanation of why it matters
- Incorrect code example with explanation
- Correct code example with explanation
- Additional context and references
## Full Compiled Document
For the complete guide with all rules expanded: `AGENTS.md`
מה זה React Native Skills ולמה הסקיל הזה שונה?
React Native מאפשר לכתוב אפליקציות מובייל בעברית React, אבל הסביבה שונה מהותית מ-React DOM. דברים כמו gestures, ניווט, ו-FlatList דורשים גישה אחרת. הסקיל הזה מתעד את הגישה הנכונה.
הבעיה שהוא פותר היא הפער בין מפתחי React לאפליקציה native מקצועית. מפתח Web שעובר ל-Native מוצא את עצמו כותב div onClick במקום Pressable onPress, או משתמש ב-array map במקום FlatList. התוצאה: אפליקציה איטית עם UX לקוי. הסקיל מלמד את הסוכן את הדפוסים הנכונים מההתחלה.
בשילוב עם סקיל React Best Practices, מקבלים סטים שמכסים גם web וגם mobile. בפרויקטי לקוחות שאני בונה עם React Native, הסקיל חוסך לי ימים של ניסוי וטעייה.
למה דווקא React Native ולא Flutter או native? כי React Native היא הבחירה הנפוצה ביותר לסטארטאפים שצריכים לפרסם מהר ל-iOS ו-Android, ויש להם כבר ידע ב-React. הסקיל מתאים ספציפית לטרייד-אופים של React Native: ניהול state, גישה ל-native APIs, ו-performance על מכשירים חלשים.
הסקיל מכסה גם נושאים שמייחדים מובייל: gesture handlers, animations מקוריים, push notifications, ו-deep linking. כל אחד מלווה בדוגמה שעובדת על שני ה-platforms. הסוכן יודע גם מתי כדאי להשתמש ב-native module ומתי לא, וכך הקוד נשאר נקי.
מה React Native Skills נותן לקלוד קוד?
הסקיל מוסיף לקלוד יידע ספציפי לסביבת מובייל. בלעדיו, הוא ייטה לכתוב קוד DOM באקראי. עם הסקיל, הוא מבין את הסביבה.
ניווט מקצועי
הסקיל יודע מתי Stack, מתי Tabs, ומתי Drawer. הוא מתעד את היררכיית הניווט הנכונה לכל סוג אפליקציה ומונע ניווט שטוח שמשתמשים שונאים.
ביצועי FlatList
רשימות זה הקריטי במובייל. הסקיל מחייב שימוש ב-FlatList במקום map, עם getItemLayout אם אפשר. אצלי הוא הציל אפליקציות מ-30fps ל-60.
UX מובייל
haptics, safe area, KeyboardAvoidingView, SwipeableRow. הסקיל מתעד את כל הקטנות שעושות אפליקציה מקצועית. בלעדיו, היא תרגיש 'web-app-on-phone'.
iOS ו-Android
הבדלים בין הפלטפורמות: ב-iOS swipe-back, ב-Android back button. הסקיל מטפל בכל אלה אוטומטית עם Platform.OS וקבצי .ios/.android.
התוצאה: אפליקציה שמרגישה native, לא 'web shoehorned to mobile'. בפרויקטים שלי, הסקיל חוסך כשבועיים של ליטוש UX.
חוץ מארבע התכונות שהדגשתי, הסקיל מטפל גם בנושא חשוב במיוחד של mobile, ניהול גרסאות. iOS ו-Android מתעדכנות שונה, ויש פיצ'רים שזמינים רק מגרסה מסוימת. הסקיל יודע לכתוב קוד שבודק גרסה ומתאים את עצמו, מה שמונע crashes על מכשירים ישנים. אצל לקוחות שמטרגטים שוק רחב כולל מכשירים בני 3-4 שנים, זה ההבדל בין אפליקציה «שעובדת ל-90%» לאפליקציה «שעובדת ל-99.9%». ההבדל הזה משפיע ישירות על דירוגים ב-stores ועל החזרת לקוחות, וכל נקודת אחוז בדירוג מתורגמת לעלייה ברווחיות לטווח ארוך.
למי הסקיל הזה מתאים?
מפתחי web שעוברים ל-mobile: זאת קבוצת היעד הראשית. הסקיל מקצר את עקומת הלמידה משלושה חודשים לשלושה שבועות.
צוותים שמשיקים אפליקציה ראשונה: ההחלטות של ה-3 שבועות הראשונים קובעות את האיכות לכל החיים. הסקיל מבטיח ארכיטקטורה נכונה מההתחלה.
פרילנסרים שמוסרים אפליקציות ללקוחות: הסקיל מבטיח רמה מקצועית. בעבודות פיתוח שאני מבצע זה חלק מהסטנדרט.
צוותים עם Expo: הסקיל מתאים מצוין לעבודה עם Expo, מתעד את ה-trade-offs ומציע פתרונות שמתאימים לסביבה.
סטארטאפים עם MVP: הסקיל עוזר להגיע מ-zero ל-published-app מהר, בלי לפתח חוב טכני שיעצור צמיחה.
מי שלא מתאים: מפתחי native (Swift/Kotlin) שעובדים עם React Native רק כממשק. הסקיל לא יוסיף להם הרבה.
מעבר לפרסונות שתיארתי, הסקיל הזה רלוונטי במיוחד לצוותים שמתחזקים אפליקציות לטווח ארוך. React Native מתעדכנת מהר, ומה שעבד לפני שנה לא בהכרח עובד היום. הסקיל מתעדכן עם הסטנדרטים הנוכחיים, וכך הסוכן תמיד כותב קוד עכשווי.
גם סטארטאפים שמשיקים MVP מובייל מרוויחים, כי הסקיל מקצר את הזמן מ-«יש לי רעיון» ל-«יש לי APK שעובד» מ-3 חודשים ל-3-4 שבועות. אצל לקוחות שעוברים את התהליך, ההגעה ל-MVP מתאפשרת בלי גיוס מוקדם של מהנדסי mobile.
איך React Native Skills עזר לי בפרויקטים אמיתיים
אפליקציית fitness, מ-30fps ל-60fps
לקוח השיק אפליקציית כושר, רשימת תרגילים גלילה הרגישה איטית. הסקיל זיהה שמופעל map ולא FlatList. החלפנו, ה-FPS עלה מ-30 ל-60.
ניווט מסובך עברו ל-Stack+Tabs נקי
אפליקציית B2B עם 28 מסכים סבלה מ-back navigation מוזר. הסקיל הציע מבנה Stack+Tabs+Modal. אחרי שעתיים שינוי, ה-UX הפך לאינטואיטיבי.
חוויית keyboard באנדרואיד תוקנה
באפליקציה קלה לטרסיסטית, הקלידור באנדרואיד הסתיר חצי מהטופס. הסקיל הציע KeyboardAvoidingView עם behavior שונה לכל פלטפורמה. תקן 5 שורות, חוסך תלונות לקוחות.
אפליקציית מסחר 60K משתמשים, אפס crashes
לקוח השיק אפליקציה ל-iOS ו-Android. הסקיל מבטיח שimports בסביבת Expo נכונים, ש-async storage נשמר נכון. 60K משתמשים, אפס crash reports בחודש הראשון.
הסקיל הוא ההבדל בין אפליקציה חובבנית לאפליקציה מקצועית. בשילוב עם react-best-practices מקבלים בסיס מצוין. אם יש לכם פרויקט mobile אפשר לדבר.
שלושת המקרים שתיארתי לקוחים מפרויקטים שונים, אבל החזרה היא תמיד אותה: הסקיל מנע באג ספציפי ל-platform שהיה מתגלה רק אחרי הפרסום. תיקון לפני הפרסום עולה שעה, תיקון אחרי הפרסום עולה 5-10 שעות בגלל review של ה-store וירידה בדירוגים.
בעבודה אצלי בפרויקטי מובייל, הסקיל הוא חלק מ-pipeline שלם. בשילוב עם agent-browser לבדיקות אוטומטיות, ועם finishing-a-development-branch לסיום מסודר של פיצ'רים, מקבלים תהליך מהיר ובטוח להגעה ל-stores.
בעבודה אצלי בפרויקטי mobile, הסקיל הזה הוא חלק מ-pipeline שלם, מתכנון ב-writing-plans, דרך יישום עם הסקיל, בדיקות עם agent-browser, ועד הגשה ל-stores. כל שלב מתועד וניתן לחזרה.
אצל סטארטאפים שעוברים את התהליך, ה-MVP הראשון מגיע ל-stores תוך 6-8 שבועות במקום 3-4 חודשים. החיסכון בזמן מאפשר לקבל פידבק שוק מוקדם, ולהתאים את המוצר לפני שמשקיעים יותר. זה ההבדל בין סטארטאפ שמסתבך לסטארטאפ שלומד מהר.
סיכום
סקיל react-native-skills הוא הסקיל שאני ממליץ עליו לכל מי שמפתח אפליקציה מובייל עם React Native. הוא לא מחליף תיעוד רשמי, אלא מתעד את הדפוסים המומלצים בצורה שקלוד קוד יכול ליישם בצורה אוטומטית, ועוקף את הפלונטרים הספציפיים של mobile.
אם אתם מתחילים, התקינו את הסקיל ובקשו «סקור את הקוד הזה לפי react-native best practices». התשובה תכלול רשימה של נושאים לטיפול עם עדיפויות, ממנהל ה-state ועד גישה לAPIs מקומיים. אצל לקוחות, סקירה זו לוקחת חצי שעה ומשנה את האמינות של האפליקציה.
הסקיל משתלב יפה עם סקיל react-best-practices שמטפל ברובד הכללי, ועם composition-patterns לארכיטקטורה. שילובים נוספים מועילים: agent-browser לבדיקות E2E ו-parallel-agents לעבודה מהירה על מספר platforms.
בעבודות פיתוח תוכנה ו-אוטומציות AI שמערבות מובייל, הסקיל הזה הוא חלק מהסטנדרט. הוא חוסך שעות של דיבוג של בעיות ספציפיות ל-iOS ו-Android, ומעלה את אחוז ההצלחה בפרסום ל-stores.
אני מלווה חברות בפיתוח אפליקציות מובייל עם AI, החל מארכיטקטורה ראשונית ועד הגשה ל-stores. למידע על הליווי ועל פרויקטים קודמים, באתר של דביר נעמן. צרו קשר אם זה רלוונטי לפרויקט שלכם.
שיתוף הסקיל
שאלות ותשובות
האם הסקיל מתאים גם ל-Expo וגם ל-bare React Native?
כן. הוא מבדיל בין השניים ומציע פתרונות מתאימים. ב-Expo יותר מהיר ופחות שליטה, ב-bare ההיפך. אצלי בעבודות שאני מבצע, האספקט הזה הוא חלק מהסטנדרט שאני מטמיע ללקוחות. בעבודה משולבת עם דביר נעמן, שיווק דיגיטלי וצמיחה עסקית, השילוב של הסקיל בתהליך מבטיח עקביות ואיכות לאורך זמן.
האם הוא מחליף את create-expo-app?
לא. הוא משלים. create-expo-app מקים פרויקט, הסקיל מלמד איך לבנות אותו נכון.
האם הוא דורש גרסה מסוימת של React Native?
RN 0.71+. הסקיל מציין כשפיצ'ר חדש שדורש גרסה ספציפית. הסקיל מתעדכן עם הסטנדרטים הנוכחיים של הפלטפורמות שהוא תומך בהן. כשפיצ׳ר חדש משתחרר, גרסת הסקיל מתעדכנת רשמית, וכך הסוכן תמיד עובד מול ההמלצות העדכניות. בעבודות שאני מבצע, אני מוודא שהסקילים מעודכנים לפני התחלת פרויקט חדש.
האם הוא תומך גם בעברית RTL?
כן. הסקיל מתעד איך לטפל ב-I18nManager.forceRTL ובהבדלים בין iOS ל-Android. הסקיל ניטרלי לשפה. הסברים יכולים להיות בעברית, קוד נשאר באנגלית. אצלי בלקוחות ישראלים, האספקט הזה הוא קריטי, וההתאמה אוטומטית לחלוטין.
האם הוא שולח דאטה?
לא. קובץ Markdown מקומי. הסקיל לא מתחבר לרשת, ובוודאי לא ל-stores. הוא רק מנחה את הסוכן איך לכתוב קוד טוב. רישיון MIT. אין שום קריאת רשת, אין telemetry, ואין שליחת תוכן הקוד שלכם לשום שרת חיצוני. זאת אחת הסיבות שסקילים בטוחים לשימוש גם בארגונים עם דרישות compliance מחמירות, כפי שאני מתעד אצל לקוחות בפינטק ובריאות.
האם הוא מתאים גם ל-Web עם React Native Web?
חלקית. רוב הדפוסים עובדים, אבל gestures ו-haptics לא יבואו לידי ביטוי ב-Web. אצלי בעבודות שאני מבצע, האספקט הזה הוא חלק מהסטנדרט שאני מטמיע ללקוחות. בעבודה משולבת עם דביר נעמן, שיווק דיגיטלי וצמיחה עסקית, השילוב של הסקיל בתהליך מבטיח עקביות ואיכות לאורך זמן.
האם הוא דורש native modules?
לא ברירת מחדל. רוב הדפוסים עם JS בלבד. כשיש צורך, הסקיל מתעד איך לבחור module שיעבוד גם ב-Expo. אצלי בעבודות שאני מבצע, האספקט הזה הוא חלק מהסטנדרט שאני מטמיע ללקוחות. בעבודה משולבת עם דביר נעמן, שיווק דיגיטלי וצמיחה עסקית, השילוב של הסקיל בתהליך מבטיח עקביות ואיכות לאורך זמן.
האם הסקיל יודע לטפל ב-deep linking?
כן. יש פרק שלם על URL scheme, universal links, ו-deep linking דרך push notifications. אצלי בעבודות שאני מבצע, האספקט הזה הוא חלק מהסטנדרט שאני מטמיע ללקוחות. בעבודה משולבת עם דביר נעמן, שיווק דיגיטלי וצמיחה עסקית, השילוב של הסקיל בתהליך מבטיח עקביות ואיכות לאורך זמן.