مكونات واجهة المستخدم والتفاعل الأساسية في React Native

يوليو 1, 2025

مكونات واجهة المستخدم والتفاعل الأساسية في React Native

React Native بتوفرلك مجموعة قوية من المكونات الجاهزة اللي تقدر تستخدمها لبناء تطبيقات موبايل أصلية بدون أي مكتبات خارجية. المقالة دي فيها شرح تفصيلي لكل مكون، مع مثال عملي وسبب استخدامه.

📦 مكونات الواجهة الأساسية

1. View

عنصر أساسي بيستخدم كحاوية لعناصر تانية، زي div في HTML. بنستخدمه لتنظيم العناصر جوه التطبيق.

<View style={{ padding: 20 }}>
  <Text>أهلاً بالعالم!</Text>
</View>

2. Text

للعرض النصوص على الشاشة، وتقدر تتحكم في لونه وحجمه ومحاذاته.

<Text style={{ fontSize: 18, color: 'blue' }}>نص تجريبي</Text>

3. Image

لعرض الصور سواء من الإنترنت أو من ملفات محلية.

<Image source={{ uri: 'https://example.com/image.jpg' }} style={{ width: 100, height: 100 }} />

4. ScrollView

عنصر بيسمحلك تعمل Scroll لو المحتوى أطول من الشاشة.

<ScrollView>
  <Text>محتوى طويل...</Text>
</ScrollView>

5. FlatList

أفضل طريقة لعرض القوائم، خصوصًا لو الداتا كتير.

<FlatList
  data={[{ key: 'عنصر 1' }, { key: 'عنصر 2' }]}
  renderItem={({ item }) => <Text>{item.key}</Text>}
/>

6. TextInput

حقل لإدخال النصوص من المستخدم زي الاسم أو الباسورد.

<TextInput placeholder="اكتب اسمك" style={{ borderWidth: 1, padding: 10 }} />

7. Button

زر بسيط بيقوم بعمل معين عند الضغط عليه.

<Button title="اضغط هنا" onPress={() => alert('تم الضغط!')} />

8. Pressable

عنصر حديث للتفاعل مع الضغط، وبيتيح تحكم أكتر من الزر العادي.

<Pressable onPress={() => console.log('تم الضغط')}>
  <Text>اضغط هنا</Text>
</Pressable>

9. Modal

بيفتح نافذة منبثقة فوق التطبيق، زي التنبيهات أو الفورمات.

<Modal visible={true} transparent={true}>
  <View style={{ marginTop: 100 }}>
    <Text>دي نافذة منبثقة</Text>
  </View>
</Modal>

🎯 مكونات التفاعل

1. Alert

بيظهر رسالة تنبيه من النظام زي "هل أنت متأكد؟".

Alert.alert("تنبيه", "هل أنت متأكد؟")

2. BackHandler

بيتحكم في زر الرجوع في أجهزة أندرويد.

BackHandler.addEventListener('hardwareBackPress', () => {
  // من هنا تتحكم في الرجوع
  return true;
});

3. KeyboardAvoidingView

بيرفع العناصر لما الكيبورد يظهر عشان ميغطيش الفورم.

<KeyboardAvoidingView behavior="padding">...</KeyboardAvoidingView>

📱 مكونات الأنيميشن

1. Animated

API قوي لعمل أنيميشن احترافي للعناصر.

const fadeAnim = useRef(new Animated.Value(0)).current;

Animated.timing(fadeAnim, {
  toValue: 1,
  duration: 1000,
  useNativeDriver: true
}).start();

2. LayoutAnimation

بيعمل أنيميشن تلقائي للتغيرات في تصميم الصفحة.

LayoutAnimation.configureNext(LayoutAnimation.Presets.spring);

المدونة

تذكير بالمهام مع Laravel وMongoDB

يونيو 30, 2025

📌 بناء تطبيق تذكير مهام المقال ده بيشرح إزاي نعمل تطبيق Laravel يستخدم MongoDB علشان يذكرك بالمهمات بتاعتك، مع تسجيل دخول، CRUD، وتذكير بالإيميلات...

كيف تجعل موقعك "سريع جداً" خطوة بخطوة

يوليو 30, 2025

لماذا السرعة ليست رفاهية؟ في زمن الضغط والسرعة، ما فيش حد عنده وقت يستنى موقع يحمّل! المستخدمين على الموبايل بينسحبوا من الموقع إذا ما فتحش في أق...

وقّف نسخ الكود! اتعلم تستخدم Traits في Laravel صح

يوليو 01, 2025

🚫 وقّف نسخ الكود! لو عندك نفس المنطق في كذا Model أو Controller زي Slug أو Logging، Traits في Laravel هتوفر عليك تعب الكتابة والتكرار. 1. إيه هو...

لارافيل 12.16.0 - مميزات جديدة للمطورين

يونيو 03, 2025

لارافيل 12.16.0 - مميزات جديدة للمطورين 1. قاعدات تحقق جديدة: in_array_keys دلوقتي تقدر تتحقق إن الأراي فيه على الأقل مفتاح واحد من اللي انت محددهم...

Laravel 12.21.0 – تحديث ذكي لتسهيل الاستعلامات والتحقق الصارم للبيانات

أغسطس 03, 2025

أصدرت Laravel النسخة 12.21.0 بمزايا برمجية هامة تساهم في كتابة كود أنظف وأسهل في الصيانة. من أهمها دالة whereValueBetween() الجديدة، بالإضافة إلى...

لارافيل 12: كل جديد من 12.0 لـ 12.19 – دليل شامل

يوليو 20, 2025

🔧 1. لارافيل&nbsp;12.0 &ndash; ستارتر كيتس وتعديلات أساسية إصدار 12.0 جاب Starter Kits جاهزة للـ React، Vue، Livewire، وكمان دمج مع WorkOS AuthKit،...