الفرق بين المراجعتين لصفحة: «ReactNative/Topics»
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط إضافة المكونات والواجهات المهملة |
||
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 6: | سطر 6: | ||
===[[ReactNative/intro react|أساسيات مكتبة React]]=== | ===[[ReactNative/intro react|أساسيات مكتبة React]]=== | ||
تساعدك هذه الصفحة للبدء أو لاستذكار المفاهيم الأساسية من React. | تساعدك هذه الصفحة للبدء أو لاستذكار المفاهيم الأساسية من React. | ||
=== [[ReactNative/tutorial|أساسيات React Native]] === | |||
تعرض هذه الصفحة مثالًا بسيطًا في React Native وتشرح أساسيات هذه المكتبة للوافدين الجدد عليها. | |||
=== [[ReactNative/state|الحالة State]] === | |||
تشرح هذه الصفحة أحد نوعي البيانات التي تتحكم بالمكوّن ألا وهي الحالة <code>state</code>. | |||
=== [[ReactNative/props|الخاصيات Props]] === | |||
تشرح هذه الصفحة أحد نوعي البيانات التي تتحكم بالمكوّن ألا وهي الخاصيات <code>props</code>. | |||
===[[ReactNative/handling text input|التعامل مع المدخلات النصية]]=== | ===[[ReactNative/handling text input|التعامل مع المدخلات النصية]]=== | ||
توضيح كيفية التعامل مع المكوّن <code>TextInput</code> في React Native، وهو مكونٌ أساسيّ يسمح للمستخدم بإدخال النّصوص. | توضيح كيفية التعامل مع المكوّن <code>TextInput</code> في React Native، وهو مكونٌ أساسيّ يسمح للمستخدم بإدخال النّصوص. | ||
سطر 72: | سطر 82: | ||
===[[ReactNative/performance|تحسين الأداء]]=== | ===[[ReactNative/performance|تحسين الأداء]]=== | ||
تهدف هذه الصفحة إلى تعليمك بعض الأساسيات لمساعدتك على استكشاف مشاكل الأداء وإصلاحها، وسنناقش كذلك المصادر الشائعة للمشاكل والحلول المقترحة لها. | تهدف هذه الصفحة إلى تعليمك بعض الأساسيات لمساعدتك على استكشاف مشاكل الأداء وإصلاحها، وسنناقش كذلك المصادر الشائعة للمشاكل والحلول المقترحة لها. | ||
===[[ReactNative/optimizing flatlist configuration|تحسين إعداد | ===[[ReactNative/optimizing flatlist configuration|تحسين إعداد المكون Flatlist]]=== | ||
تعرض هذه الصفحة الخاصيات ومكونات عناصر القائمة التي يمكن أن تساعد في تحسين أداء المكون <code>FlatList</code>. | تعرض هذه الصفحة الخاصيات ومكونات عناصر القائمة التي يمكن أن تساعد في تحسين أداء المكون <code>FlatList</code>. | ||
===[[ReactNative/ram bundles inline requires|حُزم وحدات RAM والمتطلبات المُضمَّنة Inline Requires]]=== | ===[[ReactNative/ram bundles inline requires|حُزم وحدات RAM والمتطلبات المُضمَّنة Inline Requires]]=== | ||
سطر 80: | سطر 90: | ||
===[[ReactNative/profile hermes|فحص الأداء Profiling باستخدام هيرميس Hermes]]=== | ===[[ReactNative/profile hermes|فحص الأداء Profiling باستخدام هيرميس Hermes]]=== | ||
ستتعلم في هذه الصفحة كيفية فحص أداء تطبيق React Native الذي يعمل على Hermes وكيفية تصوّر فاحص الأداء باستخدام تبويب الأداء Performance في أدوات تطوير كروم Chrome DevTools. | ستتعلم في هذه الصفحة كيفية فحص أداء تطبيق React Native الذي يعمل على Hermes وكيفية تصوّر فاحص الأداء باستخدام تبويب الأداء Performance في أدوات تطوير كروم Chrome DevTools. | ||
=== [[ReactNative/improvingux|تحسين تجربة المستخدم]] === | |||
تعرض هذه الصفحة أبرز الممارسات التي تسهم في تحسين تجربة المستخدم في التطبيقات. | |||
==مشغل جافاسكربت الآني JavaScript runtime== | ==مشغل جافاسكربت الآني JavaScript runtime== | ||
=== [[ReactNative/javascript environment|بيئة JavaScript في React Native]] === | |||
ستتعرّف من خلال هذه الصفحة على برنامج وقت التشغيل JavaScript Runtime و محولات بنية Syntax Transformers لغة JavaScript وشيفرات Polyfill. | ستتعرّف من خلال هذه الصفحة على برنامج وقت التشغيل JavaScript Runtime و محولات بنية Syntax Transformers لغة JavaScript وشيفرات Polyfill. | ||
[[ReactNative/timers|المؤقتات Timers]] | === [[ReactNative/timers|المؤقتات Timers]] === | ||
الموقتات جزءٌ مهم من أجزاء التطبيق، إذ يوفّر إطار React Native مؤقتات المتصفّح. | الموقتات جزءٌ مهم من أجزاء التطبيق، إذ يوفّر إطار React Native مؤقتات المتصفّح. | ||
[[ReactNative/hermes|استخدام محرك Hermes]] | === [[ReactNative/hermes|استخدام محرك Hermes]] === | ||
تشرح هذه الصفحة كيفية تفعيل محرك Hermes الذي يفيد في تحسين وقت بدء التشغيل وتقليل استخدام الذاكرة وتصغير حجم التطبيق. | تشرح هذه الصفحة كيفية تفعيل محرك Hermes الذي يفيد في تحسين وقت بدء التشغيل وتقليل استخدام الذاكرة وتصغير حجم التطبيق. | ||
==الاتصال== | ==الاتصال== | ||
=== [[ReactNative/network|الاتصال بالشبكة]] === | |||
يوفر React Native واجهة Fetch البرمجية للتعامل مع الشبكات، كما أنه يستخدم مكتبات تشبيك أخرى، ويدعم بروتوكول WebSockets. | يوفر React Native واجهة Fetch البرمجية للتعامل مع الشبكات، كما أنه يستخدم مكتبات تشبيك أخرى، ويدعم بروتوكول WebSockets. | ||
[[ReactNative/security| | === [[ReactNative/security|الأمان Security في React Native]] === | ||
ستتعرف من خلال هذه الصفحة على أفضل الممارسات لتخزين المعلومات الحساسة والاستيثاق authentication وأمان الشبكة والأدوات التي ستساعدك على تأمين تطبيقك. | ستتعرف من خلال هذه الصفحة على أفضل الممارسات لتخزين المعلومات الحساسة والاستيثاق authentication وأمان الشبكة والأدوات التي ستساعدك على تأمين تطبيقك. | ||
==الوحدات الأصيلة== | ==الوحدات الأصيلة== | ||
===[[ReactNative/native modules intro|مدخل إلى الوحدات الأصيلة]]=== | ===[[ReactNative/native modules intro|مدخل إلى الوحدات الأصيلة]]=== | ||
توضَح هذه الصفحة كيفية إعداد وحدة أصيلة لتطبيق React Native. | توضَح هذه الصفحة كيفية إعداد وحدة أصيلة لتطبيق React Native. | ||
===[[ReactNative/native modules android| | ===[[ReactNative/native modules android|وحدات Android الأصيلة]]=== | ||
تشرح هذه الصفحة عملية إنشاء وحدة التقويم الأصيلة كمثال عن الوحدات الأصيلة في نظام Android. | تشرح هذه الصفحة عملية إنشاء وحدة التقويم الأصيلة كمثال عن الوحدات الأصيلة في نظام Android. | ||
===[[ReactNative/native modules ios| | ===[[ReactNative/native modules ios|وحدات iOS الأصيلة]]=== | ||
تشرح هذه الصفحة عملية إنشاء وحدة التقويم الأصيلة كمثال عن الوحدات الأصيلة في نظام iOS. | تشرح هذه الصفحة عملية إنشاء وحدة التقويم الأصيلة كمثال عن الوحدات الأصيلة في نظام iOS. | ||
===[[ReactNative/native modules setup|إعداد الوحدات الأصيلة]]=== | ===[[ReactNative/native modules setup|إعداد الوحدات الأصيلة]]=== | ||
كيفية إعداد الوحدات الأصيلة في مشروع React Native. | كيفية إعداد الوحدات الأصيلة في مشروع React Native. | ||
==المكونات الأصيلة== | ==المكونات الأصيلة== | ||
===[[ReactNative/native components android|مكونات واجهة المستخدم الأصيلة | ===[[ReactNative/native components android|مكونات واجهة المستخدم الأصيلة لنظام Android]]=== | ||
توضح هذه الصفحة كيفية إنشاء مكون واجهة مستخدم أصيل، وترشدك إلى كتابة مجموعة فرعيّة من مكون <code>ImageView</code> الموجود في مكتبة React Native الأساسية. | توضح هذه الصفحة كيفية إنشاء مكون واجهة مستخدم أصيل، وترشدك إلى كتابة مجموعة فرعيّة من مكون <code>ImageView</code> الموجود في مكتبة React Native الأساسية. | ||
===[[ReactNative/native components ios|مكونات واجهة المستخدم الأصيلة | ===[[ReactNative/native components ios|مكونات واجهة المستخدم الأصيلة لنظام iOS]]=== | ||
توضّح هذه الصفحة كيفية إنشاء مكون واجهة مستخدم أصيل، وترشدك إلى كتابة مجموعة فرعيّة من مكون <code>MapView</code> الموجود في مكتبة React Native الأساسية. | توضّح هذه الصفحة كيفية إنشاء مكون واجهة مستخدم أصيل، وترشدك إلى كتابة مجموعة فرعيّة من مكون <code>MapView</code> الموجود في مكتبة React Native الأساسية. | ||
===[[ReactNative/direct manipulation|المعالجة المباشرة]]=== | ===[[ReactNative/direct manipulation|المعالجة المباشرة]]=== | ||
تشرح هذه الصفحة عملية المعالجة المباشرة باستخدام <code>setNativeProps</code> في React Native لضبط الخاصيات مباشرة على عقدة DOM. | تشرح هذه الصفحة عملية المعالجة المباشرة باستخدام <code>setNativeProps</code> في React Native لضبط الخاصيات مباشرة على عقدة DOM. | ||
==دليل آندرويد== | ==دليل آندرويد== | ||
=== [[ReactNative/headless js android|تشغيل JavaScript في الخلفية (Headless JS)]] === | |||
Headless JS هي طريقة لتشغيل المهام في JavaScript أثناء وجود التطبيق في الخلفية، إذ يمكن استخدامها مثلًا لمزامنة البيانات الجديدة أو التعامل مع إشعارات الدفع push notifications أو تشغيل الموسيقى. | Headless JS هي طريقة لتشغيل المهام في JavaScript أثناء وجود التطبيق في الخلفية، إذ يمكن استخدامها مثلًا لمزامنة البيانات الجديدة أو التعامل مع إشعارات الدفع push notifications أو تشغيل الموسيقى. | ||
[[ReactNative/signed apk android|نشر التطبيق إلى متجر Google Play]] | === [[ReactNative/signed apk android|نشر التطبيق إلى متجر Google Play]] === | ||
توضَح هذه الصفحة خطوات نشر التطبيق إلى متجر Google Play في React Native. | توضَح هذه الصفحة خطوات نشر التطبيق إلى متجر Google Play في React Native. | ||
==دليل iOS== | ==دليل iOS== | ||
=== [[ReactNative/linking libraries ios|ربط المكتبات]] === | |||
تشرح هذه الصفحة خطوات ربط المكتبات التي تحتوي على شيفرات أصيلة في React Native باستخدام الربط التلقائي والربط اليدوي. | تشرح هذه الصفحة خطوات ربط المكتبات التي تحتوي على شيفرات أصيلة في React Native باستخدام الربط التلقائي والربط اليدوي. | ||
[[ReactNative/running on simulator ios|تشغيل التطبيق على محاكي iOS]] | === [[ReactNative/running on simulator ios|تشغيل التطبيق على محاكي iOS]] === | ||
إذا أُعِدّ مشروعك إعدادًا صحيحًا، فيُفترض أن ترى تطبيقك الجديد يعمل في محاكي iOS بعد تنفيذ الأمر <code>npx react-native run-ios</code> داخل مجلّد المشروع. | إذا أُعِدّ مشروعك إعدادًا صحيحًا، فيُفترض أن ترى تطبيقك الجديد يعمل في محاكي iOS بعد تنفيذ الأمر <code>npx react-native run-ios</code> داخل مجلّد المشروع. | ||
[[ReactNative/communication ios|التواصل بين المكون الأصيل | === [[ReactNative/communication ios|التواصل بين المكون الأصيل ومكونات React Native]] === | ||
توضّح هذه الصقحة الآليات الخاصة متعددة اللغات cross-language التي ستسمح لنا بتمرير المعلومات بين المكونات الأصيلة ومكونات React Native. | توضّح هذه الصقحة الآليات الخاصة متعددة اللغات cross-language التي ستسمح لنا بتمرير المعلومات بين المكونات الأصيلة ومكونات React Native. | ||
[[ReactNative/app extensions|ملحقات التطبيقات]] | === [[ReactNative/app extensions|ملحقات التطبيقات]] === | ||
تتحدّث هذه الصفحة بإيجاز عن كيفية الاستفادة من ملحقات التطبيقات على نظام التشغيل iOS. | تتحدّث هذه الصفحة بإيجاز عن كيفية الاستفادة من ملحقات التطبيقات على نظام التشغيل iOS. | ||
[[ReactNative/publishing to app store|النشر في متجر تطبيقات آبل]] | === [[ReactNative/publishing to app store|النشر في متجر تطبيقات آبل]] === | ||
توضّح هذه الصفحة بعض الأمور الإضافية التي يجب أخذها في الحسبان عند نشر تطبيق iOS أصيل في متجر تطبيقات آبل. | توضّح هذه الصفحة بعض الأمور الإضافية التي يجب أخذها في الحسبان عند نشر تطبيق iOS أصيل في متجر تطبيقات آبل. | ||
==المكونات== | ==المكونات== | ||
سطر 155: | سطر 161: | ||
==== [[ReactNative/button|Button]] ==== | ==== [[ReactNative/button|Button]] ==== | ||
تقدّم هذه الصفحة مثالًا عن مكون الزر Button في React Native، وتشرح الخاصيات المتعلقة به. | تقدّم هذه الصفحة مثالًا عن مكون الزر Button في React Native، وتشرح الخاصيات المتعلقة به. | ||
==== [[ReactNative/datepickerandroid|DatePickerAndroid]] (مهمل) ==== | |||
يستخدم هذا المكون لإظهار مُنتقي الوقت، والتاريخ على منصة Android. | |||
==== [[ReactNative/datepickerios|DatePickerIOS]] (مهمل) ==== | |||
يستخدم هذا المكون لإظهار مُنتقي الوقت، والتاريخ على منصة iOS. | |||
==== [[ReactNative/flatlist|FlatList]] ==== | ==== [[ReactNative/flatlist|FlatList]] ==== | ||
سطر 164: | سطر 176: | ||
==== [[ReactNative/imagebackground|ImageBackground]] ==== | ==== [[ReactNative/imagebackground|ImageBackground]] ==== | ||
تتحدّث هذه الصفحة عن المكون ImageBackground في React Native، وتشرح الخاصيات المتعلقة به. | تتحدّث هذه الصفحة عن المكون ImageBackground في React Native، وتشرح الخاصيات المتعلقة به. | ||
==== [[ReactNative/imagepickerios|ImagePickerIOS]] (مهمل) ==== | |||
منتقي صور خاص بمنصة iOS. | |||
==== [[ReactNative/keyboardavoidingview|KeyboardAvoidingView]] ==== | ==== [[ReactNative/keyboardavoidingview|KeyboardAvoidingView]] ==== | ||
سطر 173: | سطر 188: | ||
==== [[ReactNative/pressable|Pressable]] ==== | ==== [[ReactNative/pressable|Pressable]] ==== | ||
تتحدّث هذه الصفحة عن المكون Pressable وكيفية عمله في React Native، وتشرح الخاصيات المتعلقة به. | تتحدّث هذه الصفحة عن المكون Pressable وكيفية عمله في React Native، وتشرح الخاصيات المتعلقة به. | ||
==== [[ReactNative/progressbarandroid|ProgressBarAndroid]] (مهمل) ==== | |||
مكوّن [[React]] يعمل على نظام Android فقط، يُستخدم للإشارة إلى أن التطبيق قيد التحميل (loading) أو أن هناك بعض الأنشطة قيد التنفيذ في التطبيق. | |||
==== [[ReactNative/progressviewios|ProgressViewIOS]] (مهمل) ==== | |||
اِستخدم المكوّن ProgressViewIOS لتصيير واجهة UIProgressView على iOS. | |||
==== [[ReactNative/picker|Picker]] (مهمل) ==== | |||
يُصيّر مكون الانتقاء الأصيل على iOS وAndroid. | |||
==== [[ReactNative/pickerios|PickerIOS]] (مهمل) ==== | |||
مكون منتقي على منصة iOS. | |||
==== [[ReactNative/refreshcontrol|RefreshControl]] ==== | ==== [[ReactNative/refreshcontrol|RefreshControl]] ==== | ||
سطر 182: | سطر 209: | ||
==== [[ReactNative/sectionlist|SectionList]] ==== | ==== [[ReactNative/sectionlist|SectionList]] ==== | ||
تعرض هذه الصفحة مثالًا عن المكون SectionList لتصيير القوائم المقسّمة في React Native، وتشرح الخاصيات والتوابع المتعلقة به. | تعرض هذه الصفحة مثالًا عن المكون SectionList لتصيير القوائم المقسّمة في React Native، وتشرح الخاصيات والتوابع المتعلقة به. | ||
==== [[ReactNative/segmentedcontrolios|SegmentedControlIOS]] (مهمل) ==== | |||
يُستخدم هذا المكون لتصيير الواجهة UISegmentedControl على منصّة iOS. | |||
==== [[ReactNative/statusbar|StatusBar]] ==== | ==== [[ReactNative/statusbar|StatusBar]] ==== | ||
تتحدّث هذه الصفحة عن المكون StatusBar في React Native، وتشرح الخاصيات والتوابع المتعلقة به. | تتحدّث هذه الصفحة عن المكون StatusBar في React Native، وتشرح الخاصيات والتوابع المتعلقة به. | ||
==== [[ReactNative/statusbarios|StatusBarIOS]] (مهمل) ==== | |||
مماثل للمكون السابق ولكن خاص بمنصة iOS. | |||
==== [[ReactNative/slider|Slider]] (مهمل) ==== | |||
يُستخدم مكوّن شريط التمرير (Slider) لاختيار قيمةٍ من مجال قيم. | |||
==== [[ReactNative/switch|Switch]] ==== | ==== [[ReactNative/switch|Switch]] ==== | ||
سطر 263: | سطر 299: | ||
=== [[ReactNative/alert|Alert]] === | === [[ReactNative/alert|Alert]] === | ||
تعمل واجهة برمجة تطبيقات Alert على كل من Android و iOS ويمكنها إظهار تنبيهات ثابتة. | تعمل واجهة برمجة تطبيقات Alert على كل من Android و iOS ويمكنها إظهار تنبيهات ثابتة. | ||
=== [[ReactNative/alertios|AlertIOS]] (مهملة) === | |||
تمكنك هذه الواجهة من إنشاء صناديق تنبيهات أو صناديق إدخال لاستقبال بيانات من المستخدم على أنظمة iOS. | |||
=== [[ReactNative/animated|Animated]] === | === [[ReactNative/animated|Animated]] === | ||
سطر 277: | سطر 316: | ||
=== [[ReactNative/appregistry|AppRegistry]] === | === [[ReactNative/appregistry|AppRegistry]] === | ||
تمثل هذه الواجهة نقطة دخول [[JavaScript|جافاسكربت]] لتشغيل جميع تطبيقات [[ReactNative|React Native]]. | |||
=== [[ReactNative/appstate|AppState]] === | === [[ReactNative/appstate|AppState]] === | ||
طريقة استخدام الواجهة البرمجيّة <code>AppState</code> التي تعمل على إخبار المستخدم بوجود التّطبيق في الواجهة الأماميّة foreground، أو الخلفية (background)، وإشعاره عند تغيّر ذلك. | طريقة استخدام الواجهة البرمجيّة <code>AppState</code> التي تعمل على إخبار المستخدم بوجود التّطبيق في الواجهة الأماميّة foreground، أو الخلفية (background)، وإشعاره عند تغيّر ذلك. | ||
=== [[ReactNative/asyncstorage|AsyncStorage]] (مهملة) === | |||
هو نظام تخزين مستمر غير مشفّر وغير متزامن لنخزين البيانات. | |||
=== [[ReactNative/clipboard|Clipboard]] (مهملة) === | |||
توفر واجهةً لتعيين المحتوى والحصول عليه من الحافظة على كل من Android و iOS. | |||
=== [[ReactNative/devsettings|DevSettings]] === | === [[ReactNative/devsettings|DevSettings]] === | ||
سطر 314: | سطر 359: | ||
=== [[ReactNative/platformcolor|PlatformColor]] === | === [[ReactNative/platformcolor|PlatformColor]] === | ||
استخدام الدالة <code>PlatformColor</code> للوصول إلى الألوان الأصيلة على المنصة الهدف. | استخدام الدالة <code>PlatformColor</code> للوصول إلى الألوان الأصيلة على المنصة الهدف. | ||
=== [[ReactNative/pushnotificationios|PushNotificatonIOS]] (مهملة) === | |||
يعالج إشعارات الدّفع push notifications في التطبيقات، بما فيها الأذونات، ورقم شارة الأيقونة (badge number). | |||
=== [[ReactNative/share|Share]] === | === [[ReactNative/share|Share]] === | ||
سطر 326: | سطر 374: | ||
=== [[ReactNative/transforms|Transforms]] === | === [[ReactNative/transforms|Transforms]] === | ||
تُعَدّ التّحويلات Transforms من خاصيّات التنسيق style التي تساعد على تعديل مظهر المكوّنات، وموقعها، وذلك باستخدام التحويلات الثّنائيّة 2D، أو ثّلاثيّة الأبعاد 3D. | تُعَدّ التّحويلات Transforms من خاصيّات التنسيق style التي تساعد على تعديل مظهر المكوّنات، وموقعها، وذلك باستخدام التحويلات الثّنائيّة 2D، أو ثّلاثيّة الأبعاد 3D. | ||
=== [[ReactNative/timepickerandroid|TimePickerAndroid]] (مهملة) === | |||
تفتح صندوق حوار مُنتقي الوقت (time picker) المعياريّ لمنصة Android. | |||
=== [[ReactNative/vibration|Vibration]] === | === [[ReactNative/vibration|Vibration]] === |
المراجعة الحالية بتاريخ 15:19، 9 أكتوبر 2021
الأساسيات
مقدمة
تحتوي المقدمة مدخلًا إلى توثيق React Native والمكونات الأصيلة ومكتبة React.
المكونات الأساسية والمكونات الأصيلة
كيفية عمل مكونات React Native الأساسية والأصيلة.
أساسيات مكتبة React
تساعدك هذه الصفحة للبدء أو لاستذكار المفاهيم الأساسية من React.
أساسيات React Native
تعرض هذه الصفحة مثالًا بسيطًا في React Native وتشرح أساسيات هذه المكتبة للوافدين الجدد عليها.
الحالة State
تشرح هذه الصفحة أحد نوعي البيانات التي تتحكم بالمكوّن ألا وهي الحالة state
.
الخاصيات Props
تشرح هذه الصفحة أحد نوعي البيانات التي تتحكم بالمكوّن ألا وهي الخاصيات props
.
التعامل مع المدخلات النصية
توضيح كيفية التعامل مع المكوّن TextInput
في React Native، وهو مكونٌ أساسيّ يسمح للمستخدم بإدخال النّصوص.
استخدام المكون ScrollView
شرح كيفية استخدام المكوّن ScrollView
في React Native للتمرير أفقيًا أو عموديًا، وهذا المكوّن فعّالٌ لعرض بيانات قليلة ذات حجم محدود.
استخدام عروض القوائم List views
يُوفِّر React Native مجموعةً من المكوّنات لتقديم البيانات في قوائم، إذ ستستخدم في تطبيقك إمّا FlatList
أو SectionList
لعرض القوائم عمومًا.
استكشاف الأخطاء وإصلاحها في React Native
تعرض هذه الصفحة بعضًا من المشاكل الشائعة التي قد تواجهها أثناء إعداد React Native، مع تقديم حل لها.
كتابة شيفرة حسب المنصة
يقدّم React Native طريقتين لتنظيم الشيفرة وفصلها حسب المنصّة بسهولة، إما باستخدام وحدة Platform
، أو باستخدام امتدادات ملفّات file extensions محدّدة حسب المنصّة.
مصادر أخرى في React Native
الموارد والمصادر لتعلّم React Native، والأدوات اللازمة لذلك.
ضبط البيئة
إعداد بيئة التطوير
ستساعدك هذه الصفحة في تثبيت وبناء أول تطبيق React Native خاص بك.
الدمج مع تطبيقات قائمة
يُمكنك استخدام React Native لإضافة عرضٍ view واحدٍ أو ميّزة إلى التطبيقات الأصيلة الموجودة بالفعل من خلال اتّباع بضعة خطواتٍ لإضافة ميّزات جديدة باستخدام إلى تطبيقك، وتختلف هذه الخطوات حسب النظام الأساسي الذي تستهدفه (iOS أو Android).
الدمج مع جزء Android
خطوات استخدام مكونات React Native داخل أجزاء Fragments في تطبيق قائم لدمج مكونات React Native مع الأجزاء الأصيلة.
بناء تطبيقات أجهزة التلفزيون
تشغيل تطبيقات React Native الحالية على نظامَي Apple TV و Android TV مع إجراء تغييرات قليلة أو معدومة على شيفرة JavaScript الخاصة بتلك التطبيقات.
منصات مدعومة من طرف المجتمع
إطار React Native ليس فقط لنظامَي التشغيل Android و iOS، إذ هناك مشاريع مدعومة من المجتمع يمكنك بها استعمال React Native على منصات أخرى.
سير العمل
تشغيل التطبيق على جهاز
الخطوات اللازمة لتشغيل تطبيق React Native على جهاز وإعداده لبيئة الإنتاج production.
التحديث السريع
تتحدث هذه الصفحة عن ميزة التحديث السريع في React Native التي تسمح لك بالحصول على ردود فعل شبه فورية عن تغييرات مكونات React الخاصة بك.
التنقيح في React Native
التنقيح Debugging عمليّةٌ لا بد منها لإصلاح الأخطاء والعلل البرمجيّة، إذ سنتعرف في هذه الصفحة على كيفية تنقيح تطبيقات React Native وبعض الأساليب والحيل المفيدة.
ترجمة عناوين Symbolicating تعقب المكدس
كيفية ترجمة أسماء الدوال المصغرة والشيفرة الثنائية إلى اسم الملف الفعلي مع دالة.
الاختبار Testing في React Native
تشرح هذه الصفحة طرقًا آلية مختلفة لضمان عمل تطبيقك كما هو متوقع من خلال اختبار شيفرتك قبل إصدارها كالتحليل الساكن static analysis والاختبارات الشاملة end-to-end tests.
استخدام المكتبات
يمتلك React Native مجتمعًا من آلاف المطورين. إن لم تجد ما تبحث عنه في المكونات الأساسية وواجهات برمجة التطبيقات، فقد تتمكن من العثور على مكتبة وتثبيتها من مجتمع React Native لإضافتها إلى تطبيقك.
استخدام لغة TypeScript
تُعَد لغة TypeScript توسعةً للغة JavaScript، إذ يدعم React Native لغة TypeScript افتراضيًا.
الترقية إلى إصدارات جديدة
ستمنحك الترقية إلى إصدارات جديدة من React Native إمكانية الوصول إلى المزيد من واجهات برمجة التطبيقات API والعروض وأدوات المطورين وغير ذلك من الميّزات. تتطلب الترقية بذل القليل من المجهود، لكنّ فريق React Native يعمل على تسهيل الأمر.
التصميم
التنسيق والأنماط
يُنسَّق التطبيق في React Native باستخدام JavaScript ، إذ تقبل جميع المكوّنات الأساسيّة خاصيّةً تُسمّى style
تحدد تنسيق المكوّن بتمرير قيمٍ لها.
الارتفاع والعرض في React Native
تحديد ارتفاع وعرض مكوّن إما باستخدام الأبعاد الثابتة أو باستخدام أبعاد Flex.
التخطيط باستخدام Flexbox
سنعتمد على كلّ من الخاصيّات flexDirection
، وalignItems
، وjustifyContent
وبالإضافة إلى خاصيات أخرى للحصول على التصميم الصحيح.
إدارة الصور
توضّح هذه الصفحة كيفية إدارة صور تطبيقك في React Native.
الألوان
تُنسَّق المكونات في React Native باستخدام JavaScript، وتتوافق خاصيات الألوان عادة مع كيفية عمل CSS على الويب.
التفاعل
التعامل مع اللمسات
يتفاعل المستخدمون مع تطبيقات الجوال من خلال اللمس، ويمكنهم استخدام مزيجٍ من الإيماءات gestures. يوفّر React Native مكوّناتٍ للتعامل مع مختلف أنواع الإيماءات الشائعة، بالإضافة إلى نظام مجيب إيماءات gesture responder system شاملٍ يسمح بالتعرف على إيماءاتٍ أكثر تقدمًا، ولكن الزر البسيط هو الأهم في البداية.
التنقل بين الشاشات
تشرح هذه الصفحة مكونات التنقّل بين الشاشات المتوفرة في React Native مثل مكتبة React Navigation.
التحريكات Animations
يوفر React Native نظامي تحريك يُكمِّلان بعضهما البعض هما: واجهة Animated
، وواجهة LayoutAnimation
.
نظام مستجيب الإيماءات
يدير نظام مستجيب الإيماءات دورة حياة الإيماءات في تطبيقك.
الشمولية Accessibility
سهولة استخدام تطبيقات React Native
يحتوي إطار عمل React Native على عروض برمجيّة مُصمّمة لتزويد المطورين بأدوات تساعد على تسهيل الوصول إلى التطبيقات للأشخاص ذوي الإعاقات.
الأداء
تحسين الأداء
تهدف هذه الصفحة إلى تعليمك بعض الأساسيات لمساعدتك على استكشاف مشاكل الأداء وإصلاحها، وسنناقش كذلك المصادر الشائعة للمشاكل والحلول المقترحة لها.
تحسين إعداد المكون Flatlist
تعرض هذه الصفحة الخاصيات ومكونات عناصر القائمة التي يمكن أن تساعد في تحسين أداء المكون FlatList
.
حُزم وحدات RAM والمتطلبات المُضمَّنة Inline Requires
حُزم وحدات RAM والمتطلبات المُضمَّنة Inline Requires مفيدة للتطبيقات التي تحتوي على عدد كبير من الشاشات التي قد لا تُفتَح أبدًا أثناء استخدام التطبيق المعتاد، وللتطبيقات التي تحتوي على كميات كبيرة من الشيفرة التي لا تحتاج إليها لفترة من الوقت بعد بدء التشغيل.
فحص الأداء Profiling
فحص أداء واجهة مستخدم Android باستخدام الأداة systrace
، بالإضافة ‘اى تحديد المسؤول عن المشاكل، ثم حل مشاكل جافا سكريبت وواجهة المستخدم الأصيلة.
فحص الأداء Profiling باستخدام هيرميس Hermes
ستتعلم في هذه الصفحة كيفية فحص أداء تطبيق React Native الذي يعمل على Hermes وكيفية تصوّر فاحص الأداء باستخدام تبويب الأداء Performance في أدوات تطوير كروم Chrome DevTools.
تحسين تجربة المستخدم
تعرض هذه الصفحة أبرز الممارسات التي تسهم في تحسين تجربة المستخدم في التطبيقات.
مشغل جافاسكربت الآني JavaScript runtime
بيئة JavaScript في React Native
ستتعرّف من خلال هذه الصفحة على برنامج وقت التشغيل JavaScript Runtime و محولات بنية Syntax Transformers لغة JavaScript وشيفرات Polyfill.
المؤقتات Timers
الموقتات جزءٌ مهم من أجزاء التطبيق، إذ يوفّر إطار React Native مؤقتات المتصفّح.
استخدام محرك Hermes
تشرح هذه الصفحة كيفية تفعيل محرك Hermes الذي يفيد في تحسين وقت بدء التشغيل وتقليل استخدام الذاكرة وتصغير حجم التطبيق.
الاتصال
الاتصال بالشبكة
يوفر React Native واجهة Fetch البرمجية للتعامل مع الشبكات، كما أنه يستخدم مكتبات تشبيك أخرى، ويدعم بروتوكول WebSockets.
الأمان Security في React Native
ستتعرف من خلال هذه الصفحة على أفضل الممارسات لتخزين المعلومات الحساسة والاستيثاق authentication وأمان الشبكة والأدوات التي ستساعدك على تأمين تطبيقك.
الوحدات الأصيلة
مدخل إلى الوحدات الأصيلة
توضَح هذه الصفحة كيفية إعداد وحدة أصيلة لتطبيق React Native.
وحدات Android الأصيلة
تشرح هذه الصفحة عملية إنشاء وحدة التقويم الأصيلة كمثال عن الوحدات الأصيلة في نظام Android.
وحدات iOS الأصيلة
تشرح هذه الصفحة عملية إنشاء وحدة التقويم الأصيلة كمثال عن الوحدات الأصيلة في نظام iOS.
إعداد الوحدات الأصيلة
كيفية إعداد الوحدات الأصيلة في مشروع React Native.
المكونات الأصيلة
مكونات واجهة المستخدم الأصيلة لنظام Android
توضح هذه الصفحة كيفية إنشاء مكون واجهة مستخدم أصيل، وترشدك إلى كتابة مجموعة فرعيّة من مكون ImageView
الموجود في مكتبة React Native الأساسية.
مكونات واجهة المستخدم الأصيلة لنظام iOS
توضّح هذه الصفحة كيفية إنشاء مكون واجهة مستخدم أصيل، وترشدك إلى كتابة مجموعة فرعيّة من مكون MapView
الموجود في مكتبة React Native الأساسية.
المعالجة المباشرة
تشرح هذه الصفحة عملية المعالجة المباشرة باستخدام setNativeProps
في React Native لضبط الخاصيات مباشرة على عقدة DOM.
دليل آندرويد
تشغيل JavaScript في الخلفية (Headless JS)
Headless JS هي طريقة لتشغيل المهام في JavaScript أثناء وجود التطبيق في الخلفية، إذ يمكن استخدامها مثلًا لمزامنة البيانات الجديدة أو التعامل مع إشعارات الدفع push notifications أو تشغيل الموسيقى.
نشر التطبيق إلى متجر Google Play
توضَح هذه الصفحة خطوات نشر التطبيق إلى متجر Google Play في React Native.
دليل iOS
ربط المكتبات
تشرح هذه الصفحة خطوات ربط المكتبات التي تحتوي على شيفرات أصيلة في React Native باستخدام الربط التلقائي والربط اليدوي.
تشغيل التطبيق على محاكي iOS
إذا أُعِدّ مشروعك إعدادًا صحيحًا، فيُفترض أن ترى تطبيقك الجديد يعمل في محاكي iOS بعد تنفيذ الأمر npx react-native run-ios
داخل مجلّد المشروع.
التواصل بين المكون الأصيل ومكونات React Native
توضّح هذه الصقحة الآليات الخاصة متعددة اللغات cross-language التي ستسمح لنا بتمرير المعلومات بين المكونات الأصيلة ومكونات React Native.
ملحقات التطبيقات
تتحدّث هذه الصفحة بإيجاز عن كيفية الاستفادة من ملحقات التطبيقات على نظام التشغيل iOS.
النشر في متجر تطبيقات آبل
توضّح هذه الصفحة بعض الأمور الإضافية التي يجب أخذها في الحسبان عند نشر تطبيق iOS أصيل في متجر تطبيقات آبل.
المكونات
المكونات الأساسية Core Components
المكونات والواجهات البرمجية
يوفر React Native عددًا من المكونات الأساسيّة ومكونات واجهة المستخدم وعروض القوائم، بالإضافة إلى ميّزات خاصّة بمنصّة iOS وأخرى خاصّة بمنصّة Android وميّزات أخرى.
ActivityIndicator
تعرض هذه الصفحة مثالًا عن المكوّن ActivityIndicator الذي يعرض مؤشّر تحميل دائريّ في React Native، وتشرح الخاصيات المتعلقة به.
Button
تقدّم هذه الصفحة مثالًا عن مكون الزر Button في React Native، وتشرح الخاصيات المتعلقة به.
DatePickerAndroid (مهمل)
يستخدم هذا المكون لإظهار مُنتقي الوقت، والتاريخ على منصة Android.
DatePickerIOS (مهمل)
يستخدم هذا المكون لإظهار مُنتقي الوقت، والتاريخ على منصة iOS.
FlatList
تعرض هذه الصفحة مثالًا عن المكون FlatList لتصيير قوائم مسطحة بسيطة في React Native، وتشرح الخاصيات والتوابع المتعلقة به.
Image
تقدّم هذه الصفحة أمثلة عن المكون Image لإظهار مختلف أنواع الصّور في React Native، وتشرح الخاصيات والتوابع المتعلقة به.
ImageBackground
تتحدّث هذه الصفحة عن المكون ImageBackground في React Native، وتشرح الخاصيات المتعلقة به.
ImagePickerIOS (مهمل)
منتقي صور خاص بمنصة iOS.
KeyboardAvoidingView
تقدّم هذه الصفحة مثالًا عن المكون KeyboardAvoidingView في React Native، وتشرح الخاصيات المتعلقة به.
Modal
تعرض هذه الصفحة مثالًا عن المكون Modal لإظهار محتوىً فوق واجهة تحتويه في React Native، وتشرح الخاصيات المتعلقة به.
Pressable
تتحدّث هذه الصفحة عن المكون Pressable وكيفية عمله في React Native، وتشرح الخاصيات المتعلقة به.
ProgressBarAndroid (مهمل)
مكوّن React يعمل على نظام Android فقط، يُستخدم للإشارة إلى أن التطبيق قيد التحميل (loading) أو أن هناك بعض الأنشطة قيد التنفيذ في التطبيق.
ProgressViewIOS (مهمل)
اِستخدم المكوّن ProgressViewIOS لتصيير واجهة UIProgressView على iOS.
Picker (مهمل)
يُصيّر مكون الانتقاء الأصيل على iOS وAndroid.
PickerIOS (مهمل)
مكون منتقي على منصة iOS.
RefreshControl
تعرض هذه الصفحة مثالًا عن المكون RefreshControl لإضافة وظيفة التحديث بالسحب في React Native، وتشرح الخاصيات المتعلقة به.
ScrollView
تتحدّث هذه الصفحة عن المكون ScrollView في React Native، وتشرح الخاصيات والتوابع المتعلقة به.
SectionList
تعرض هذه الصفحة مثالًا عن المكون SectionList لتصيير القوائم المقسّمة في React Native، وتشرح الخاصيات والتوابع المتعلقة به.
SegmentedControlIOS (مهمل)
يُستخدم هذا المكون لتصيير الواجهة UISegmentedControl على منصّة iOS.
StatusBar
تتحدّث هذه الصفحة عن المكون StatusBar في React Native، وتشرح الخاصيات والتوابع المتعلقة به.
StatusBarIOS (مهمل)
مماثل للمكون السابق ولكن خاص بمنصة iOS.
Slider (مهمل)
يُستخدم مكوّن شريط التمرير (Slider) لاختيار قيمةٍ من مجال قيم.
Switch
توضّح هذه الصفحة المكون Switch في React Native، وتشرح الخاصيات المتعلقة به.
Text
تتحدّث هذه الصفحة عن المكون Text لعرض النصوص في React Native، وتشرح الخاصيات المتعلقة به.
TextInput
توضّح هذه الصفحة المكون TextInput في React Native، وتشرح الخاصيات والتوابع المتعلقة به.
TouchableHighlight
تتحدّث هذه الصفحة عن المكون TouchableHighlight في React Native، وتشرح الخاصيات المتعلقة به.
TouchableOpacity
تعرض هذه الصفحة المكون TouchableOpacity في React Native، وتشرح الخاصيات والتوابع المتعلقة به.
TouchableWithoutFeedback
تعرض هذه الصفحة مثالًا عن المكون TouchableWithoutFeedback في React Native، وتشرح الخاصيات المتعلقة به.
View
تتحدّث هذه الصفحة عن المكون View وهو المكوِّن الأساسي لبناء واجهة مستخدم في React Native، وتشرح الخاصيات المتعلقة به.
VirtualizedList
توضّح هذه الصفحة المكون VirtualizedList في React Native، وتشرح الخاصيات والتوابع المتعلقة به.
مكونات أندرويد
DrawerLayoutAndroid
توضّح هذه الصفحة مثالًا عن المكون DrawerLayoutAndroid الخاص بنظام أندرويد في React Native، وتشرح الخاصيات والتوابع المتعلقة به.
TouchableNativeFeedback
تعرض هذه الصفحة مثالًا عن المكون TouchableNativeFeedback الخاص بنظام أندرويد في React Native، وتشرح الخاصيات والتوابع المتعلقة به.
مكونات iOS
InputAccessoryView
توضّح هذه الصفحة المكون InputAccessoryView الخاص بنظام iOS في React Native، وتشرح الخاصيات المتعلقة به.
SafeAreaView
تعرض هذه الصفحة مثالًا عن المكون SafeAreaView الخاص بنظام iOS في React Native، وتشرح الخاصيات المتعلقة به.
الخاصيات Props
خاصيات تنسيق الصور
أمثلة عن خاصيات تنسيق الصور في React Native.
خاصيات تخطيط المكونات
توضيح خاصيات التخطيط في React Native.
خاصيات الظل
شرح خاصيات الظل في React Native.
خاصيات تنسيق النصوص
تعرض هذه الصفحة مثالًا يوضح خاصيات تنسيق النصوص في React Native، مع شرح كل خاصية منها.
خاصيات تنسيق الواجهة
شرح خاصّيات تنسيق الواجهة View Style Props في React Native.
أنواع الكائن Object Types
LayoutEvent
تتحدّث هذه الصفحة عن نوع الكائن LayoutEvent في React Native، مع شرح المفاتيح والقيم المتعلقة به.
PressEvent
تشرح هذه الصفحة نوع الكائن PressEvent في React Native، مع شرح المفاتيح والقيم المتعلقة به.
React Node
توضّح هذه الصفحة أنواع عقد React.
Rect
تشرح هذه الصفحة نوع الكائن Rect في React Native، مع شرح المفاتيح والقيم المتعلقة به.
ViewToken
تشرح هذه الصفحة نوع الكائن ViewToken في React Native، مع شرح المفاتيح والقيم المتعلقة به.
الواجهة البرمجية API
AccessibilityInfo
استخدام واجهة AccessibilityInfo للاستعلام عن الحالة الحالية لقارئ الشاشة وكذلك للتسجيل لإعلامك عند تغيّر حالة قارئ الشاشة.
Alert
تعمل واجهة برمجة تطبيقات Alert على كل من Android و iOS ويمكنها إظهار تنبيهات ثابتة.
AlertIOS (مهملة)
تمكنك هذه الواجهة من إنشاء صناديق تنبيهات أو صناديق إدخال لاستقبال بيانات من المستخدم على أنظمة iOS.
Animated
تساعدك هذه الصفحة على إنشاء وضبط وتركيب التأثيرات الحركية في React Native، وتشرح التوابع والخاصيات المتعلقة بالمكون Animated.
Animated.Value
تشرح هذه الصفحة المتغير Animated.Value والتوابع المتعلقة به في React Native.
Animated.ValueXY
تشرح هذه الصفحة المتغير Animated.ValueXY والتوابع المتعلقة به في React Native.
Appearance
تعرض هذه الصفحة الوحدة Appearance التي تظهر معلومات حول تفضيلات المظهر الخاصة بالمستخدم، وتشرح التوابع المتعلقة بها في React Native.
AppRegistry
تمثل هذه الواجهة نقطة دخول جافاسكربت لتشغيل جميع تطبيقات React Native.
AppState
طريقة استخدام الواجهة البرمجيّة AppState
التي تعمل على إخبار المستخدم بوجود التّطبيق في الواجهة الأماميّة foreground، أو الخلفية (background)، وإشعاره عند تغيّر ذلك.
AsyncStorage (مهملة)
هو نظام تخزين مستمر غير مشفّر وغير متزامن لنخزين البيانات.
Clipboard (مهملة)
توفر واجهةً لتعيين المحتوى والحصول عليه من الحافظة على كل من Android و iOS.
DevSettings
تعرض وحدة DevSettings
توابعًا لتخصيص الإعدادات للمطورين خلال عملية التطوير.
Dimensions
تشرح هذه الصفحة الأبعاد Dimensions والتوابع المتعلقة بها في React Native.
Easing
تشرح هذه الصفحة وحدة التخفيف Easing
التي تُستخدَم لعرض حركة معقولة فيزيائيًّا في التحريكات في React Native.
InteractionManager
توضّح هذه الصفحة InteractionManager الذي يسمح بجدولة الأعمال طويلة الأمد بعد انتهاء أيّ تفاعل، أو حركة، ممّا يسمح لمحركات JavaScript بالعمل بسلاسة.
Keyboard
تشرح هذه الصفحة كيفية استخدام وحدة Keyboard
للتّحكّم بأحداث لوحة المفاتيح، والتوابع المتعلقة بها.
LayoutAnimation
تتحدّث هذه الصفحة عن الواجهة البرمجية LayoutAnimation في React Native، مع شرح التوابع والخاصيات المتعلقة بها.
Linking
شرح مفصل للروابط والتوابع المتعلقة بها في React Native.
PanResponder
توحِّد PanResponder
العديد من اللمسات ضمن إيماءة واحدة، وتجعل الإيماءة أحاديّة اللّمسة متجاوبة مع اللّمسات الإضافيّة، ويمكن استخدامها للتعرُّف على الإيماءات الأساسيّة متعدّدة اللّمسات.
PixelRatio
يسمح PixelRatio
بالوصول إلى كثافة البكسل pixel density ومقياس الخط الخاصّ بالجهاز.
Platform
تشرح هذه الصفحة المكون Platform والخصائص والتوابع المتعلقة به في React Native.
PlatformColor
استخدام الدالة PlatformColor
للوصول إلى الألوان الأصيلة على المنصة الهدف.
PushNotificatonIOS (مهملة)
يعالج إشعارات الدّفع push notifications في التطبيقات، بما فيها الأذونات، ورقم شارة الأيقونة (badge number).
توضح هذه الصفحة Share والتوابع المتعلقة به في React Native.
StyleSheet
توضّح هذه الصفحة StyleSheet والتوابع المتعلقة به في React Native.
Systrace
شرح أداة تعريف الأداء Systrace والتوابع المتعلقة بها.
Transforms
تُعَدّ التّحويلات Transforms من خاصيّات التنسيق style التي تساعد على تعديل مظهر المكوّنات، وموقعها، وذلك باستخدام التحويلات الثّنائيّة 2D، أو ثّلاثيّة الأبعاد 3D.
TimePickerAndroid (مهملة)
تفتح صندوق حوار مُنتقي الوقت (time picker) المعياريّ لمنصة Android.
Vibration
استخدام Vibration
لتشغيل التّنبيه بالاهتزاز في الجهاز.
الخطافات Hooks
useColorScheme
يوفّر الخطّاف useColorScheme
تحديثات نظام الألوان في React Native.
useWindowDimensions
يحدّث الخطّاف useWindowDimensions
تلقائيًا قيم العرض width
والارتفاع height
عندما يتغير حجم الشاشة في React Native.
واجهات Android
BackHandler
اكتشاف الضغطات على زر الجهاز الخاص بالتنقل للوراء back navigation في React Native.
PermissionsAndroid
يسمح PermissionsAndroid
بالوصول إلى نموذج الأُذونات permissions الجديد الخاص بالنظام Android M
ToastAndroid
تعرض الواجهة البرمجيّة ToastAndroid API في React Native وحدة ToastAndroid الخاصّة بمنصّات Android على شكل وحدة جافا سكريبت JS.
واجهات iOS
ActionSheetIOS
تعرض هذه الصفحة توابع ActionSheetIOS الخاصة بنظام iOS.
DynamicColorIOS
الدالة DynamicColorIOS
هي نوع لون منصة خاص بنظام iOS.
Settings
Settings
هي مخزنٌ دائمٌ لقيمة المفتاح key-value المتوفّر على منصّة iOS فقط.