[ > ] رياكت نيتف إكسبو / Expo
وصف عام
إطار عمل (Framework) مبني على React Native يسهل عملية بناء تطبيقات الهواتف الذكية لنظامي Android و iOS. يوفر Expo ميزات قوية وجاهزة وتجربة تطوير (DX) متفوقة بفضل أدوات مثل Expo Router و EAS (Expo Application Services)، مما يقلل الحاجة للتعامل مع كود Java أو Objective-C الأصلي.
تم إطلاق Expo في عام 2015 كمجموعة من الأدوات لتسهيل تجربة تطوير React Native الصعبة آنذاك. تطور المشروع من كونه مجرد طبقة فوقية إلى نظام متكامل يدعم المزامنة اللحظية وتحميل التحديثات عبر الهواء (OTA). اليوم، يعتبر Expo الخيار الرسمي والموصى به من قبل فريق React للحصول على أفضل تجربة تطوير تطبيقات المحمول.
- استخدم Expo Router لإدارة المسارات بشكل تلقائي ومنظم (File-based Routing).
- اعتمد على NativeWind لتنسيق الواجهات باستخدام لغة Tailwind CSS بشكل محلي وسريع.
- قم بإنشاء Development Builds مخصصة بدلاً من الاعتماد الكلي على تطبيق Expo Go للمشاريع الكبيرة.
- استخدم React-Native-Reanimated للرسوم المتحركة للحصول على أداء 60 إطار في الثانية.
- طبق SafeAreaView لضمان ظهور المحتوى بشكل صحيح بعيداً عن النتوءات (Notches) في الشاشات الحديثة.
طريقة الكتابة والبنية
SYNTAX_ARCH
01.بناء واجهة أساسية (Core UI)
import { View, Text, StyleSheet } from 'react-native';
export default function App() {
return (
<View style={styles.container}>
<Text style={styles.text}>مرحباً إكسبو</Text>
</View>
);
}
const styles = StyleSheet.create({
container: { flex: 1, backgroundColor: '#000', alignItems: 'center', justifyContent: 'center' },
text: { color: 'white', fontSize: 24, fontWeight: 'bold' }
});في React Native، يتم استبدال عناصر الـ HTML (مثل div, h1) بمكونات أصلية (Native Components) مثل View و Text و StyleSheet لضمان تحويلها لعناصر حقيقية في النظام الأصلي لهواتف الأندرويد والآيفون.
02.إدارة المسارات (Expo Router - File Based)
// app/index.tsx
import { Link } from 'expo-router';
export default function Home() {
return (
<Link href="/profile">انتقل إلى الحساب</Link>
);
}بفضل Expo Router، يتم إنشاء مسارات التطبيق تلقائياً بناءً على هيكلية الملفات في مجلد app، بنفس طريقة عمل Next.js في الويب.
المنظومة التقنية
ECOSYSTEM_MODULES
إطارات العمل (Frameworks)
المكتبات المشهورة (Libraries)
هيكلية الملفات الشائعة
FILE_SYSTEM_TREE
Project Root/├── app/ (المسارات والصفحات - Expo Router)│ ├── (tabs)/ (تبويبات التطبيق)│ ├── [id].tsx (صفحة ديناميكية)│ └── _layout.tsx (تخطيط عام)├── components/ (مكونات الواجهة المشتركة)├── constants/ (الثوابت والألوان)├── assets/ (الصور والأيقونات والخطوط)├── hooks/ (المنطق البرمجي المخصص)├── app.json (إعدادات المشروع والمنصة)├── package.json (إدارة المكتبات والتبعيات)└── tsconfig.json (إعدادات TypeScript)