Expo در مقابل React Native CLI
Expo یک لایه ابزار و مجموعهای از SDK های آماده روی React Native است که راهاندازی، build و انتشار اپ را بدون نیاز به تنظیم پروژههای native ساده میکند؛ React Native CLI رویکرد خامتر است که مستقیماً به پروژههای native (Xcode/Android Studio) دسترسی میدهد و کنترل کامل روی ماژولهای native را فراهم میکند.
| ویژگی | Expo | React Native CLI |
|---|---|---|
| سرعت راهاندازی اولیه | بسیار سریع | نیاز به تنظیم محیط native |
| دسترسی به ماژولهای native سفارشی | محدود (فقط Expo SDK یا Bare) | بدون محدودیت |
| تست روی دستگاه واقعی | آسان (با اپ Expo Go) | نیاز به build کامل native |
| مناسب برای | پروتوتایپ، MVP، اپهای ساده | اپهای پیچیده با نیاز native خاص |
کِی از Expo استفاده کنیم؟
برای شروع سریع، پروتوتایپ یا اپلیکیشنهایی که نیازی به ماژول native سفارشی خارج از اکوسیستم Expo ندارند، از Expo استفاده کنید — build و تست روی دستگاه واقعی بسیار سادهتر است.
کِی از React Native CLI استفاده کنیم؟
وقتی به ماژولهای native سفارشی (Native Module) که در Expo SDK موجود نیستند نیاز دارید یا کنترل کامل روی پیکربندی Xcode/Gradle ضروری است، از React Native CLI (یا Expo با "Bare Workflow") استفاده کنید.
مثال Expo
npx create-expo-app my-app
cd my-app
npx expo start # instantly test on device via Expo Go, no native setup
مثال React Native CLI
npx react-native init MyApp
cd MyApp
npx react-native run-android # requires Android Studio / Xcode configured locally
اشتباه رایج
شروع یک پروژه با Expo Managed Workflow و بعد کشف اینکه یک کتابخانه native ضروری (مثلاً یک SDK پرداخت خاص) در Expo پشتیبانی نمیشود، که مجبور به مهاجرت پرهزینه به Bare Workflow یا CLI میشوید — بهتر است نیازهای native از ابتدا بررسی شود.
جمعبندی
بدون نیاز خاص native → Expo برای سرعت توسعه؛ با نیاز به ماژولهای native سفارشی → React Native CLI (یا Expo Bare).
