loading...

دورة برمجة React Native

أساسيات للطلاب الذين يحتاجون إلى تعزيز معرفتهم من أجل الدراسة الذاتية المتعمقة في وقت لاحق.

React Native هي إحدى لغات برمجة تطبيقات الجوال الشائعة والقوية، حيث تُمكّنك من تطوير تطبيقات عالية السرعة، وسهلة التطوير والصيانة. لذلك، يُعدّ إتقان هذه اللغة أمرًا بالغ الأهمية لبدء مسيرتك المهنية.

# ابدأ React Native من الصفر # استخدم React Native بنفسك # افهم كيفية عمله # دعم طويل الأمد للطلاب

الدردشة معنا

دورة React Native والمعلومات ذات الصلة

دورة React Native من الأساسي إلى المتقدم

React Native هو إطار عمل قوي يساعد المطورين على إنشاء تطبيقات جوال لنظامي iOS وAndroid باستخدام قاعدة برمجية واحدة. صُممت الدورة من المستوى الأساسي إلى المتقدم، وهي مناسبة للمبتدئين.

يتعلم الطلاب من إعداد بيئة المعرض، وهيكلة المشروع، إلى بناء تطبيقات عملية. بعد الدورة، ستكتسب المعرفة الكافية لنشر منتج كامل والتقدم بثقة لوظيفة برمجة جوال.

لماذا نتعلم React Native؟

يوفر React Native الوقت والمال عند تطوير تطبيقات متعددة المنصات. وقد اختارته العديد من شركات التكنولوجيا الكبرى، مثل فيسبوك وإنستغرام وShopee، لمنتجاتها.

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

من هو الشخص المناسب لدورة React Native؟

هذه الدورة مناسبة لطلاب تكنولوجيا المعلومات، ومبرمجي الويب الذين يرغبون في التحول إلى تطبيقات الهاتف المحمول، ومطوري التطبيقات المستقلين والشركات التي تريد إنشاء تطبيقاتها الخاصة.

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

محتوى تعلم React Native الأساسي

يركز قسم الأساسيات على بيئة البرمجة مع Expo، وNavigation، وAsyncStorage، ومعالجة الأحداث، وتصميم واجهة المستخدم.

سيتدرب الطلاب على الفور على تطبيقات صغيرة مثل تطبيق To-do وSimple Chat، وبالتالي إتقان المعرفة الأساسية وتطوير التطبيقات الأساسية بثقة.

محتوى تعليمي متقدم لـ React Native

يتم توجيه الطلاب إلى دمج واجهة برمجة التطبيقات وإدارة البيانات واستخدام مكتبة BLEManager وGiftedChat ودفع VNPAY وتحسين أداء التطبيق.

يتضمن هذا الجزء أيضًا نشر التطبيق على متجر التطبيقات وجوجل بلاي. بعد المرحلة المتقدمة، يمكنك تطوير تطبيق حقيقي جاهز للمشاريع أو البدء بالعمل فورًا.

مسار تعلم React Native الفعال

تم بناء مسار التعلم بشكل منطقي: من المعرفة الأساسية إلى التطبيق المتقدم، من خلال الجمع بين النظرية والممارسة بالتوازي.

يُنجز الطلاب مشاريع صغيرة ومشروعًا نهائيًا أثناء الدراسة. هذه هي الطريقة الأكثر فعالية لتعلم الحفظ طويل الأمد، ولعرض منتجهم على أصحاب العمل.

الخط الساخن / زالو: 08.6713.0208

مقارنة React Native بالمنصات الأخرى

بالمقارنة مع Flutter أو Kotlin، يتمتع React Native بميزة المجتمع الكبير والتوثيق الغني وسهولة الوصول للأشخاص الذين يعرفون ReactJS.

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

فرص العمل عند تعلم React Native

يشهد سوق برمجة الأجهزة المحمولة نموًا سريعًا. الطلب على توظيف مبرمجي React Native مرتفع جدًا في الشركات الناشئة والوكالات وشركات التكنولوجيا.

بعد الدراسة، يمكنك التقدم لوظيفة مطور جوال، أو العمل كعامل مستقل، أو بدء مشروعك الخاص بمنتجاتك. هذه مهارة تُدرّ دخلاً جيدًا وفرصًا طويلة الأمد.

هل تعلم React Native صعب؟

React Native متاح لمن لديهم خبرة في JavaScript أو ReactJS. صُممت الدورة التدريبية للمبتدئين لتكون سهلة الاستخدام، وتتضمن تعليمات خطوة بخطوة.

يتم شرح المفاهيم المعقدة بأمثلة مرئية. يمكن للمتعلمين التقدم بسرعة وتطوير تطبيقاتهم الخاصة بقليل من الممارسة.

التوثيق ودعم المجتمع لتعلم React Native

بالإضافة إلى المنهج الدراسي، يمكن للطلاب الوصول إلى مواد غنية ومحدثة باستمرار من المجتمع الدولي.

نظام React Native البيئي واسعٌ جدًا، ويضم آلاف المكتبات والمنتديات ومجموعات الدعم. لن يواجه المتعلمون أي صعوبة عند تطوير تطبيقات حقيقية.

+
-

ما هو React Native؟ الدليل الشامل لبرمجة تطبيقات الجوال متعددة المنصات

سيقدم لك هذا القسم نظرة شاملة على React Native، بدءًا من تعريفه، ونشأته، ومبادئ تشغيله الأساسية، وصولًا إلى مزاياه وعيوبه الواضحة. ستفهم لماذا أصبح React Native الخيار الأمثل لتطوير تطبيقات الجوال، وكيف يختلف عن التقنيات الشائعة الأخرى.

نظرة عامة: من ReactJS إلى React Native

React Native هو إطار عمل مفتوح المصدر طورته شركة فيسبوك (المعروفة الآن باسم Meta) يتيح للمطورين بناء تطبيقات جوال لكل من iOS وAndroid من قاعدة برمجية واحدة. اللغة الأساسية المستخدمة في React Native هي JavaScript، بالإضافة إلى صيغة JSX (JavaScript XML) - وهي صيغة برمجية موسعة تتيح كتابة أكواد تشبه HTML داخل JavaScript.

تعود جذور React Native إلى ReactJS، وهي مكتبة JavaScript لبناء واجهات المستخدم (UI) لتطبيقات الويب. إدراكًا لنجاح وكفاءة نموذج التطوير القائم على المكونات في ReactJS، سعت فيسبوك إلى تطبيق الفلسفة نفسها على تطوير تطبيقات الجوال. وكانت النتيجة React Native، الذي جلب قوة React إلى عالم الجوال. هذا يعني أنه إذا كنتَ مُلِمًّا بـ ReactJS، فسيكون الانتقال إلى برمجة React Native أسهل بكثير.

مبدأ التشغيل الأساسي: "تعلم مرة واحدة، واكتب في أي مكان"

شعار React Native الشهير هو "تعلم مرة واحدة، واكتب في أي مكان". وهذا يعكس تمامًا آلية عمله. فبدلاً من تجميع شيفرة JavaScript في شيفرة أصلية لكل منصة (كما هو الحال في بعض أطر العمل الأخرى)، يعتمد React Native على "جسر".

عند تشغيل تطبيقك، يعمل كود جافا سكريبت على سلسلة منفصلة (سلسلة جافا سكريبت). عند الحاجة لعرض واجهة المستخدم أو الوصول إلى ميزات الجهاز (مثل الكاميرا ونظام تحديد المواقع العالمي (GPS))، يرسل كود جافا سكريبت رسائل غير متزامنة عبر الجسر إلى السلسلة الأصلية (السلسلة الأصلية). تفسر السلسلة الأصلية هذه الرسائل وتستخدم مكونات واجهة المستخدم الأصلية لنظام التشغيل (مثل UIView على iOS وView على Android) لعرضها على الشاشة.

تقدم هذه الآلية فائدتين رئيسيتين:

  1. تجربة مستخدم سلسة: نظرًا لأن الواجهة يتم تقديمها باستخدام مكونات أصلية حقيقية، فسوف يشعر المستخدمون بأنهم "حقيقيون" ومألوفون كما لو كانوا يستخدمون تطبيقًا مكتوبًا باللغة الأصلية للجهاز.

  2. أداء عالي: تتم معالجة المهام التي تعتمد على المنطق بشكل كبير على مؤشر ترابط JS، دون التأثير على مؤشر ترابط واجهة المستخدم الأصلية، مما يجعل التطبيق أكثر استجابة.

مقارنة React Native بالتقنيات الأخرى

لفهم مكانة React Native بشكل أفضل، من المهم مقارنتها بالتقنيات الأخرى.

  • React Native مقابل ReactJS: هذا هو السؤال الأكثر شيوعًا. ReactJS هي مكتبة لبناء واجهات مستخدم للويب، باستخدام وسوم HTML افتراضية مثل

    في الوقت نفسه، يُستخدم React Native لبناء واجهات تطبيقات الجوال، باستخدام مكونات مُرتبطة بواجهة مستخدم أصلية مثل React Native. يشترك كلاهما في بنية JSX نفسها، ومفهوم المكونات، والخصائص، والحالة. لذا، يمكن القول إن ReactJS وReact Native هما شركتان من نفس المؤسسة، لكنهما يخدمان غرضين مختلفين.
  • React Native مقابل Flutter: Flutter هو المنافس الأكثر مباشرة لـ React Native، الذي طورته Google.

    • اللغة: يستخدم React Native JavaScript/TypeScript، بينما يستخدم Flutter Dart.

    • البنية: يستخدم React Native واجهة Bridge للتواصل مع المنصة الأصلية. يرسم Flutter واجهته بالكامل باستخدام محرك الرسومات Skia، دون استخدام مكونات واجهة المستخدم الأصلية لنظام التشغيل. هذا يمنح Flutter أداءً رسوميًا عاليًا جدًا وواجهة متناسقة تمامًا على جميع الأجهزة، ولكنه قد يُعطي أحيانًا شعورًا "غريبًا" مقارنةً بالتطبيقات الأصلية.

  • React Native والبرمجة الأصلية (Swift/Kotlin):

    • الأداء: تُعدّ البرمجة الأصلية الأكثر كفاءةً دائمًا، لأن الكود يُكتب ويُحسّن مباشرةً لنظام التشغيل. على الرغم من كفاءته العالية، يحتوي React Native على طبقة وسطى تُسمى Bridge، مما قد يُبطئ العمل في المهام شديدة التعقيد أو التي تتطلب رسومات عالية.

    • الوقت والتكلفة: هذه هي الميزة الأبرز لـ React Native. فبدلاً من الاضطرار إلى بناء فريقين منفصلين وصيانتهما لنظامي iOS وAndroid، ستحتاج فقط إلى فريق JavaScript واحد للتطوير لكلا المنصتين، مما يوفر الكثير من الوقت والتكلفة.

مسار تعلم React Native من المستوى الأساسي إلى المستوى المتقدم للمبتدئين

ستتلقى دليلًا تفصيليًا خطوة بخطوة لإتقان React Native. يبدأ هذا المسار التعليمي المُصمم علميًا لـ React Native من المعرفة الأساسية الأساسية، وصولًا إلى بناء تطبيق كامل وإدارته وتحسينه ونشره في السوق بثقة.

المرحلة 1: أساسيات JavaScript وReactJS لإتقانها

هذه هي الخطوة الأهم، وغالبًا ما يغفل عنها الكثيرون. React Native ليست تقنية مستقلة، بل هي مبنية على JavaScript وReact. إذا حاولت تعلم React Native دون أساس متين، فستواجه صعوبة.

  • JavaScript (ES6+): يجب أن يكون لديك فهم قوي لمفاهيم JavaScript الحديثة، بما في ذلك:

    • المتغيرات والنطاق: let، const، var.

    • أنواع البيانات: المصفوفة، الكائن.

    • الوظيفة: وظائف السهم ( => ).

    • البرمجة غير المتزامنة: الوعود، async/await.

    • مشغلي التفكيك والانتشار والراحة.

    • الوحدات: الاستيراد والتصدير.

  • ReactJS: بعد إتقان JavaScript، عليك تعلّم المفاهيم الأساسية لـ React. إليك أفضل دليل لتعلم React:

    • JSX: قواعد اللغة لكتابة واجهة المستخدم.

    • المكونات: المكونات الوظيفية ومكونات الفئة (المكونات الوظيفية هي الأكثر شعبية في الوقت الحاضر).

    • الدعائم: كيفية نقل البيانات من المكون الرئيسي إلى المكون الفرعي.

    • الحالة: كيفية إدارة الحالة الداخلية للمكون.

    • طرق دورة الحياة (في مكونات الفئة) وخطافات React (في المكونات الوظيفية) مثل useState وuseEffect وuseContext.

المرحلة الثانية: البدء باستخدام React Native - البيئة والأدوات

بمجرد حصولك على الأساس، يمكنك البدء في الغوص في عالم React Native.

  • فهم بيئات التطوير: تعرف على الاختلافات بين النهجين الرئيسيين:

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

    • Expo: مجموعة من الأدوات والخدمات المبنية على React Native تُبسّط عملية التطوير. لا حاجة لتثبيت Android Studio أو Xcode. مثالية للمبتدئين والمشاريع التي لا تتطلب تكاملاً عميقًا مع الكود الأصلي.

  • إعداد البيئة: بناءً على اختيارك، قم بإعداد البيئة يدويًا باتباع الإرشادات التفصيلية وإنشاء مشروعك الأول.

المرحلة 3: بناء الواجهة والتفاعل مع المستخدم

هذه هي المرحلة التي ستتعلم فيها كيفية تحويل أفكارك إلى واجهات حقيقية على هاتفك.

  • المكونات الأساسية: تعرف على المكونات الأساسية مثل ، ، , , .

  • التصميم: تعلّم كيفية تصميم المكونات باستخدام واجهة برمجة تطبيقات StyleSheet، وهي مشابهة لـ CSS ولكن بقواعد JavaScript. أتقن Flexbox لإنشاء تخطيطات مرنة ومتجاوبة عبر أحجام شاشات متعددة.

  • القوائم: تعلم كيفية عرض قوائم البيانات بكفاءة باستخدام و.

  • التنقل: يُعدّ هذا جزءًا أساسيًا من كل تطبيق. تعرّف على كيفية استخدام مكتبة React Navigation، وهي المكتبة الأكثر شيوعًا، لإنشاء تدفقات تنقل بين الشاشات، بما في ذلك Stack Navigator وTab Navigator (createMaterialTopTabNavigator) وDrawer Navigator.

المرحلة 4: إدارة البيانات وحالة التطبيق

مع تزايد تعقيد التطبيقات، أصبح إدارة الحالة والبيانات أمرًا صعبًا.

  • إدارة الحالة: استكشف حلول إدارة الحالة العالمية مثل:

    • سياق React: الحل المدمج في React، مناسب للتطبيقات الصغيرة والمتوسطة الحجم.

    • Redux / Redux Toolkit: مكتبة إدارة الحالة الأكثر شهرة وقوة، وهي مناسبة للتطبيقات الكبيرة.

    • حلول أخرى مثل MobX، Zustand.

  • العمل مع واجهات برمجة التطبيقات: تعلم كيفية استدعاء واجهات برمجة التطبيقات من الخادم باستخدام واجهة برمجة التطبيقات (API) أو المكتبات مثل axios لجلب البيانات وإرسالها.

  • التخزين المحلي: تعرف على كيفية تخزين البيانات على أجهزة المستخدم باستخدام AsyncStorage، وهو حل تخزين القيمة الرئيسية البسيط والفعال.

المرحلة 5: تحسين التطبيق ونشره

بمجرد إنشاء تطبيقك، فإن الخطوة الأخيرة هي التأكد من أنه يعمل بسلاسة وتقديمه إلى أيدي المستخدمين.

  • الأداء: تعلم تقنيات التحسين مثل useMemo وuseCallback وReact.memo لتجنب إعادة العرض غير الضرورية وتحسين أداء FlatList وتصحيح أخطاء الأداء باستخدام Flipper.

  • النشر: تعرف على عملية إنشاء تطبيق في ملف .apk (Android) و.ipa (iOS) والخطوات اللازمة لوضع التطبيق على متجر Google Play ومتجر تطبيقات Apple.

دليل إعداد البيئة وإنشاء أول مشروع React Native

ملخص: يقدم هذا القسم دليلاً عملياً مفصلاً لمساعدتك في إعداد بيئة التطوير الخاصة بك وتشغيل مشروع "Hello World" الأول بنجاح. سنحلل بوضوح طريقتين شائعتين، Expo وReact Native CLI، لمساعدتك في اتخاذ الخيار الأنسب وبدء رحلة البرمجة الخاصة بك.

اختيار البيئة: React Native CLI مقابل Expo - أيهما تختار؟

قبل البدء، عليك اتخاذ قرار مهم: هل ستستخدم Expo أم React Native CLI؟ هذان هما الطريقتان الرئيسيتان لتطوير تطبيقات React Native، ولكل منهما مزاياه وعيوبه.

  • المعرض (الموصى به للمبتدئين):

    • ميزة:

      • إعداد سريع: ما عليك سوى تثبيت Node.js وExpo CLI. لا حاجة لتثبيت Android Studio أو Xcode (لأن حجمه كبير جدًا).

      • التطوير السهل: يمكنك تشغيل التطبيق مباشرة على هاتف حقيقي عن طريق مسح رمز الاستجابة السريعة عبر تطبيق Expo Go.

      • واجهات برمجة التطبيقات المضمنة: يوفر Expo مجموعة من المكتبات المحسنة والمختبرة (SDKs)، مما يجعل من السهل الوصول إلى الكاميرات وأجهزة الاستشعار وإشعارات الدفع...

    • العيوب:

      • القيود: لا يمكنك استخدام مكتبات React Native التي تتطلب روابط أصلية غير مضمنة في Expo SDK. على الرغم من أن Expo يحتوي الآن على عميل Expo dev للمساعدة، إلا أن هناك بعض القيود.

      • حجم تطبيق أكبر: عادةً ما يكون حجم التطبيقات المبنية باستخدام Expo أوليًا أكبر قليلًا.

  • React Native CLI (للمشاريع المهنية والمعقدة):

    • ميزة:

      • أقصى قدر من المرونة: لديك التحكم الكامل في المشروع، ويمكنك دمج أي مكتبة أصلية وكتابة وحداتك الأصلية إذا لزم الأمر.

      • تحسين حجم التطبيق: قم بتعبئة ما هو ضروري فقط، مما يجعل التطبيق النهائي أخف وزناً.

    • العيوب:

      • إعداد معقد: يتطلب تثبيت وتكوين Android Studio (لنظام Android) وXcode (لنظام iOS)، وهي عملية تستغرق وقتًا طويلاً وعرضة للأخطاء.

      • يعتمد على الجهاز الافتراضي/الجهاز الحقيقي: هناك حاجة لتشغيل الجهاز الافتراضي (المحاكي/المحاكاة) أو توصيل الجهاز الحقيقي عبر كابل للتطوير.

الخلاصة: إذا كنت جديدًا على React Native أو تعمل على مشروع ليس معقدًا، فابدأ بـ Expo. سيساعدك هذا على التركيز على تعلم منطق React Native دون تشتيت انتباهك بمشاكل تكوين البيئة.

تعليمات مفصلة مع Expo (Expo Go، Expo Dev Client)

طلب:

  1. تثبيت Node.js (إصدار LTS).

  2. قم بتثبيت تطبيق Expo Go على هاتفك الذي يعمل بنظام Android أو iOS.

الخطوات الواجب اتباعها:

  1. تثبيت Expo CLI: افتح Terminal (على macOS/Linux) أو موجه الأوامر/PowerShell (على Windows) وقم بتشغيل الأمر التالي:

    npm install -g expo-cli
  2. إنشاء مشروع جديد:

    معرض init MyFirstApp

    عند المطالبة، حدد "قالب فارغ" (للمشروع الفارغ) أو "علامات التبويب" (للمشروع الذي يحتوي على شريط تنقل علامات التبويب). ثم انتقل إلى مجلد المشروع:

    قرص مضغوط MyFirstApp
  3. تشغيل المشروع:

    بدء تشغيل npm

    سيؤدي هذا الأمر إلى بدء تشغيل Metro Bundler وعرض رمز الاستجابة السريعة QR في المحطة الطرفية.

  4. عرض التطبيق على هاتفك: افتح تطبيق Expo Go على هاتفك، ثم اختر "مسح رمز الاستجابة السريعة" وامسح الرمز في الجهاز. سيتم تنزيل التطبيق وتشغيله على هاتفك. الأمر بهذه البساطة!

تعليمات مفصلة باستخدام React Native CLI (Android Studio، Xcode)

تعتبر هذه العملية أكثر تعقيدًا وتتطلب تكوينًا لكل نظام تشغيل.

المتطلبات العامة:

  1. تثبيت Node.js (إصدار LTS).

  2. قم بتثبيت Watchman (الموصى به لنظام macOS).

التثبيت لنظام Android (على Windows/macOS/Linux):

  1. تثبيت Java Development Kit (JDK).

  2. تثبيت Android Studio .

  3. في Android Studio، انتقل إلى SDK Manager وقم بتثبيت منصة Android SDK المطلوبة.

  4. قم بتكوين متغير البيئة ANDROID_HOME.

  5. إنشاء وتشغيل آلة افتراضية تعمل بنظام Android (AVD) من Android Studio.

التثبيت لنظام iOS (macOS فقط):

  1. قم بتثبيت Xcode من App Store.

  2. تثبيت أدوات سطر الأوامر في Xcode.

  3. قم بتثبيت CocoaPods.

إنشاء المشروع وتشغيله:

  1. إنشاء مشروع جديد:

    npx react-native init MyFirstCliApp
  2. يعمل على أندرويد:

    تأكد من تشغيل جهاز أندرويد الافتراضي أو توصيل جهاز فعلي. ثم، شغّل الأمر:

    تشغيل npx react-native على Android
  3. يعمل على نظام التشغيل iOS (macOS فقط):

    تأكد من تشغيل جهاز iOS الافتراضي لديك. ثم شغّل الأمر:

    npx react-native run-ios

قد يستغرق البناء الأول بعض الوقت. بعد نجاحه، سيظهر تطبيق React Native الافتراضي قيد التشغيل في الجهاز الافتراضي.

المفاهيم الأساسية في React Native التي يجب أن تعرفها

ملخص: سيتناول هذا القسم أساسيات كل تطبيق React Native. ستفهم طبيعة المكونات، والخصائص، والحالة، وكيفية عملها معًا، وكيفية تصميم واجهتك بفعالية، وكيفية التعامل مع أحداث المستخدم والتنقل المعقد داخل تطبيقك.

المكونات والدعائم والحالة: أساس كل تطبيق

كما هو الحال في ReactJS، كل شيء في React Native هو مُكوِّن. والمُكوِّن هو جزء مستقل من واجهة المستخدم وقابل لإعادة الاستخدام. يمكنك اعتبار كل شاشة، وكل زر، وكل حقل إدخال مُكوِّنًا.

  • المكونات: هي وظائف JavaScript (المكونات الوظيفية) أو فئات (المكونات الصفية) التي ترجع عناصر React لوصف الشكل الذي يجب أن تبدو عليه الواجهة.

  • الخصائص (Properties): طريقة لنقل البيانات من مكون رئيسي إلى مكون فرعي. الخصائص هي كائنات للقراءة فقط، مما يعني أن المكون الفرعي لا يمكنه تغيير الخصائص التي يتلقاها. في المثال أعلاه، العنوان خاصية.

  • الحالة: هي بيانات يديرها المكوّن نفسه، ويمكن تغييرها بمرور الوقت. عند تغيير الحالة، يُعيد المكوّن عرضها تلقائيًا لتحديث الواجهة. في المكونات الوظيفية، نستخدم هوك useState لإدارة الحالة.

التصميم: إنشاء واجهات جميلة ومرنة

في React Native، لا تستخدم CSS، بل تستخدم JavaScript لإنشاء الأنماط. الطريقة الأكثر شيوعًا هي استخدام StyleSheet.create لتحديد الأنماط وتطبيقها على خاصية style للمكون.

  • StyleSheet: يساعد على تحسين الأداء وإنشاء كود أنظف.

  • Flexbox: هذا هو محرك التخطيط الرئيسي في React Native. إذا كنتَ مُلِمًّا باستخدام Flexbox على الويب، فستشعر بالراحة التامة. فهو يُتيح لك ترتيب العناصر بمرونة وسهولة إنشاء واجهات مُعقّدة تتكيف مع أحجام شاشات مُتعددة.

معالجة أحداث المستخدم (إدخال النص، اللمسات، BackHandler)

تحتاج تطبيقات الجوال إلى التفاعل مع المستخدمين. يوفر React Native نظام أحداث قويًا.

  • اللمسات: تسمح لك المكونات مثل TouchableOpacity وTouchableHighlight وPressable بالتعامل مع أحداث اللمس والضغطات الطويلة وما إلى ذلك، من خلال الدعائم مثل onPress وonLongPress.

  • إدخال النص: يسمح هذا المكون للمستخدم بإدخال نص. يمكنك استخدام خاصية onChangeText لالتقاط حدث تغيير النص وتحديث الحالة وفقًا لذلك.

  • BackHandler: واجهة برمجة تطبيقات خاصة بنظام أندرويد، تتيح لك رصد سلوك المستخدم وتخصيصه عند ضغطه على زر "رجوع". يمكنك استخدامها لعرض نافذة تأكيد قبل الخروج من التطبيق أو للعودة إلى الشاشة السابقة ضمن مسار مُعقد.

التنقل داخل التطبيق باستخدام React Navigation

تحتوي معظم التطبيقات على أكثر من شاشة واحدة. تُسمى إدارة التنقل بين الشاشات بالتنقل. المكتبة الأكثر شيوعًا والموصى بها هي React Navigation.

  • حاوية التنقل: هي المكون الجذري الذي يُغطي بنية التنقل الكاملة للتطبيق. تُدير شجرة التنقل وتحتوي على حالة التنقل.

  • المتصفحون: يوفر React Navigation أنواعًا مختلفة من المتصفحات لإنشاء تدفقات مختلفة:

    • متصفح التكديس: تُركّب الشاشات فوق بعضها. عند الانتقال إلى شاشة جديدة، تُوضع في الأعلى. وعند العودة، تُزال. هذا هو النوع الأكثر شيوعًا.

    • متصفح علامات التبويب: يعرض شريط علامات التبويب في الجزء السفلي أو العلوي من الشاشة، مما يسمح بالتبديل بين الشاشات المختلفة. createMaterialTopTabNavigator هو مثال على ذلك، والذي يقوم بإنشاء شريط علامات تبويب في الجزء العلوي من الشاشة، والذي يُرى عادةً في تطبيقات Android.

    • مستعرض الدرج: يعرض قائمة تنزلق للخارج من حافة الشاشة.

يتيح لك الجمع بين هذه المتصفحات إنشاء تدفقات تنقل معقدة تلبي معظم متطلبات التطبيقات الحديثة.

العمل مع واجهات برمجة التطبيقات والميزات المتقدمة

استكشف كيفية توسيع إمكانيات تطبيقك. سيرشدك هذا القسم إلى كيفية تخزين البيانات محليًا بكفاءة باستخدام AsyncStorage، والتفاعل مع أجهزة الجهاز عبر مكتبات مثل BLEManager، وبناء ميزات معقدة مثل واجهات الدردشة، ودمج خدمات خارجية مثل بوابة الدفع VNPAY.

تخزين البيانات محليًا باستخدام AsyncStorage

عندما تحتاج إلى تخزين بيانات بسيطة والاحتفاظ بها حتى بعد إغلاق المستخدم للتطبيق (مثل حفظ رموز تسجيل الدخول، وإعدادات المستخدم، وحالة التطبيق)، فإن AsyncStorage هو الأداة المناسبة لك. إنه نظام تخزين قيم مفتاحية غير مشفر وغير متزامن، يعمل على نظامي iOS وAndroid.

إنه يعمل مثل localStorage على الويب ولكنه غير متزامن تمامًا، مما يعني أن عمليات القراءة/الكتابة تعيد Promise.

  • جلسة:

    تثبيت npm @react-native-async-storage/async-storage
  • مثال الاستخدام:

    استيراد AsyncStorage من '@react-native-async-storage/async-storage'؛ // حفظ البيانات const storeData = async (value) => { try { await AsyncStorage.setItem( '@storage_Key' , value); } catch (e) { // خطأ في الحفظ } }؛ // قراءة البيانات const getData = async () => { try { const value = await AsyncStorage.getItem( '@storage_Key' ); if (value !== null) { // القيمة المخزنة مسبقًا } } catch (e) { // خطأ في قراءة القيمة } }؛

تكامل واجهة برمجة التطبيقات (API) للأجهزة والنظام (BLEManager، والكاميرا، وتحديد الموقع الجغرافي)

تكمن القوة الحقيقية لتطبيقات الجوال في قدرتها على التفاعل مع الأجهزة وخدمات نظام التشغيل. يتيح لك React Native، من خلال بيئة مكتبات غنية، القيام بذلك بسهولة.

  • بلوتوث منخفض الطاقة (BLE): للعمل مع أجهزة BLE (مثل الساعات الذكية والأجهزة الطبية)، يمكنك استخدام مكتبات مثل react-native-ble-manager (BLEManager). توفر هذه المكتبة وظائف لمسح البيانات وتوصيلها وقراءتها وكتابتها على أجهزة BLE.

  • مكتبة الكاميرا والصور: تتيح لك المكتبات مثل react-native-vision-camera أو react-native-image-picker الوصول إلى كاميرا الجهاز لالتقاط الصور أو تسجيل مقاطع الفيديو أو تحديد الصور/مقاطع الفيديو من مكتبة المستخدم.

  • الموقع (Geolocation): توفر مكتبة react-native-geolocation-service إمكانية الوصول إلى موقع GPS الخاص بالجهاز، وهو أمر مفيد لتطبيقات رسم الخرائط أو التسليم أو تسجيل الوصول.

إنشاء واجهات الدردشة مع GiftedChat

قد يكون إنشاء واجهة دردشة من الصفر مهمة شاقة. لحسن الحظ، أنشأ مجتمع GiftedChat، وهي مكتبة قوية وسهلة الاستخدام تساعدك على إنشاء واجهة دردشة متكاملة الميزات في دقائق معدودة.

يوفر GiftedChat مكونات لـ:

  • فقاعة الدردشة

  • إظهار الصورة الرمزية

  • تغيير حجم حقل الإدخال تلقائيًا

  • إرسال الصور ومقاطع الفيديو

  • ميزة "تحميل المزيد من الرسائل"

  • ...وأكثر.

كل ما عليك فعله هو تقديم بيانات الرسالة بتنسيق محدد، وسيتولى GiftedChat الباقي.

تكامل بوابة الدفع (مثال: VNPAY)

يُعد دمج المدفوعات متطلبًا شائعًا لتطبيقات التجارة الإلكترونية أو الخدمات. لدمج بوابة دفع مثل VNPAY في React Native، عادةً ما تتضمن العملية العامة الخطوات التالية:

  1. تثبيت المكتبة: ابحث عن مكتبة دعم VNPAY لـ React Native وقم بتثبيتها (إذا كانت متوفرة) أو استخدم WebView لعرض صفحة دفع VNPAY.

  2. إنشاء طلب الدفع: من التطبيق، يمكنك إرسال معلومات الطلب (المبلغ، رمز الطلب،...) إلى الخادم الخاص بك.

  3. يقوم الخادم بإنشاء عنوان URL للدفع: سيستخدم الخادم الخاص بك مجموعة أدوات تطوير البرامج الخاصة بـ VNPAY لإنشاء عنوان URL فريد للدفع وإعادته إلى التطبيق.

  4. عرض صفحة الدفع: يفتح تطبيق React Native هذا الرابط في WebView. سيُدخل المستخدم معلومات الدفع على واجهة VNPAY.

  5. معالجة النتيجة: بعد إتمام المستخدم عملية الدفع، سيُعيد VNPAY توجيهك إلى عنوان URL الذي أعددته. سيتابع التطبيق تغيير عنوان URL في WebView لمعرفة ما إذا كانت المعاملة ناجحة أم فاشلة، ويُحدّث الواجهة بناءً على ذلك.

كسب ثقة أصحاب العمل: أسئلة شائعة في مقابلات React Native

جهّز نفسك بالمعرفة والثقة اللازمتين قبل مقابلتك. هذه المجموعة من أسئلة مقابلات React Native مُصنّفة بوضوح من المعرفة الأساسية والنظريات الأساسية إلى سيناريوهات واقعية وأسئلة مُعمّقة لتحسين الأداء، مما يُساعدك على الاستعداد بشكل شامل.

مجموعة أسئلة حول المعرفة الأساسية والنظرية

هذه الأسئلة لاختبار مدى حصولك على فهم قوي للمفاهيم الأساسية.

  1. ما هو React Native؟ كيف يعمل؟

    • إجابة مقترحة: التأكيد على أنه إطار عمل متعدد المنصات، يستخدم جافا سكريبت ورياكت. اشرح آلية الجسر، والفرق بين خيط جافا سكريبت والخيط الأصلي.

  2. مقارنة بين React Native و Flutter والبرمجة الأصلية.

    • الإجابة المقترحة: اذكر اللغة (JS مقابل Dart)، والهندسة المعمارية (Bridge مقابل Skia)، والأداء، والإيجابيات/السلبيات من حيث وقت/تكلفة التطوير.

  3. ما هو الفرق بين ReactJS و React Native؟

    • الإجابة المقترحة: التركيز على الاستخدام المقصود (الويب مقابل الهاتف المحمول) والمكونات الأولية (div / span مقابل View / Text).

  4. كيف تختلف Props وState في React Native؟

    • إجابة مقترحة: تُستخدم الدعائم لنقل البيانات من العنصر الرئيسي إلى العنصر الفرعي، وهي غير قابلة للتغيير. الحالة هي البيانات الداخلية للمكون، ويمكن تغييرها، وعند تغييرها، سيتم إعادة العرض.

  5. كيف يعمل Flexbox في React Native؟ اذكر بعض الخصائص المهمة.

    • إجابة مقترحة: اشرح أن Flexbox هي آلية التخطيط الرئيسية. الخصائص المهمة: flexDirection (الافتراضي هو column)، وjustifyContent، وalignItems، وflex.

  6. ما الفرق بين FlatList وScrollView؟ متى نستخدم FlatList؟

    • إجابة مقترحة: يعرض ScrollView جميع العناصر الفرعية دفعةً واحدة، وهو مناسب للقوائم القصيرة. يستخدم FlatList آلية "التحميل البطيء" (يعرض العناصر فقط على الشاشة)، مما يُحسّن الذاكرة والأداء للقوائم الطويلة.

مجموعة من الأسئلة حول التعامل مع المواقف والخبرة العملية

تقوم هذه الأسئلة بتقييم قدراتك على حل المشكلات وخبرتك العملية.

  1. هل ستختار Expo أم React Native CLI لمشروع جديد؟ ولماذا؟

    • الإجابة المقترحة: حلل بناءً على متطلبات المشروع. إذا كان المشروع سريعًا وبسيطًا ولا يتطلب تدخلًا محليًا كبيرًا، فاختر Expo. إذا كان المشروع معقدًا ويتطلب أداءً عاليًا ويدمج العديد من المكتبات المحلية، فاختر CLI.

  2. كيفية إدارة الحالة لتطبيق React Native كبير؟

    • إجابة مقترحة: اذكر حلولاً مثل Redux (مجموعة أدوات Redux)، أو MobX، أو React Context. اشرح إيجابيات وسلبيات كل منها، ولماذا تختار حلاً معينًا لمشروع كبير.

  3. ما هي مشاكل الأداء التي واجهتها في React Native وكيف قمت بحلها؟

    • الإجابة المقترحة: أعط أمثلة محددة مثل القوائم الطويلة التي تكون متأخرة (يتم حلها عن طريق تحسين FlatList)، أو إعادة العرض غير الضرورية (يتم حلها عن طريق useMemo، أو useCallback، أو React.memo)، أو زيادة تحميل Bridge.

  4. كيفية التعامل مع الإصدارات المختلفة من الواجهة لنظامي التشغيل iOS وAndroid؟

    • الإجابة المقترحة: راجع استخدام واجهة برمجة التطبيقات الخاصة بالنظام الأساسي (Platform.OS === 'ios')، أو إنشاء ملفات منفصلة (على سبيل المثال MyComponent.ios.js وMyComponent.android.js)، أو استخدام مكتبات واجهة المستخدم التي توفر مكونات لكلا النظامين الأساسيين.

  5. وصف عملية تصحيح أخطاء تطبيق React Native الخاص بك.

    • الإجابة المقترحة: اذكر أدوات مثل Chrome DevTools، وReact Native Debugger، وFlipper، وكيفية استخدام console.log لمراقبة تدفق البيانات.

أسئلة حول تحسين الأداء وهندسة التطبيق

هذه أسئلة خاصة بالمناصب العليا، وتختبر المعرفة العميقة.

  1. ما هو Bridge في React Native وما هي حدوده؟ كيف تُحسّن البنية الجديدة (JSI - واجهة JavaScript) هذا الأمر؟

    • إجابة مقترحة: اشرح أن Bridge غير متزامن ويعتمد على تسلسل JSON، مما قد يُسبب اختناقات. يسمح JSI لـ JavaScript باستدعاء الدوال الأصلية مباشرةً وبشكل متزامن، مما يُقلل زمن الوصول ويُحسّن الأداء بشكل ملحوظ.

  2. ما هو هيرمس؟ لماذا نستخدمه؟

    • إجابة مقترحة: Hermes هو محرك JavaScript مُحسّن لـ React Native. يُساعد على تقليل وقت تشغيل التطبيق، واستهلاك الذاكرة، وحجم ملف APK.

  3. ما استخدامات useMemo وuseCallback؟ متى تستخدمهما؟

    • إجابة مقترحة: يُستخدم useMemo لحفظ قيمة عملية حسابية معقدة. ويُستخدم useCallback لحفظ دالة. يساعد كلاهما على تجنب إعادة الحساب أو إعادة إنشاء الدالة غير الضرورية عند كل إعادة تصيير، مما يُحسّن الأداء، خاصةً عند تمريرها إلى المكونات الفرعية المُغلّفة بواسطة React.memo.

  4. هل تقسيم الكود ممكن في React Native؟

    • إجابة مقترحة: بخلاف الويب، لا يُطبّق تقسيم الكود التقليدي مباشرةً. مع ذلك، يُمكن استخدام تقنيات مثل "المتطلبات المضمنة" لتأخير تحميل الوحدات النمطية حتى الحاجة إليها، مما يُحسّن وقت بدء التشغيل.

دورات React Native عالية الجودة والوثائق

لمساعدتك في طريقك إلى أن تصبح مطور React Native محترفًا، يوفر هذا القسم قائمة مختارة من الموارد الموثوقة والمجتمعات ذات السمعة الطيبة حيث يمكنك التعلم والتبادل، بالإضافة إلى اقتراحات لدورات React Native عالية الجودة عبر الإنترنت، بما في ذلك الخيارات المجانية والمدفوعة.

المصادر الموثوقة والمجتمعات ذات السمعة الطيبة

هذه هي الأماكن التي يجب عليك زيارتها أولاً للحصول على المعرفة الأكثر دقة وحداثة.

  • وثائق React Native الرسمية: هذا هو المصدر الأصلي والأكثر موثوقية للوثائق. جميع المفاهيم وواجهات برمجة التطبيقات وتعليمات التثبيت مُفصّلة ومُحدّثة دائمًا بأحدث الإصدارات. اعتد على قراءة الوثائق الأصلية، فهي مهارة أساسية للمبرمج الجيد.

  • صفحة وثائق Expo: إذا اخترت استخدام Expo، فهذا دليل أساسي. يوفر وثائق مفصلة حول Expo SDK، وأدوات سطر الأوامر، وسير العمل مع Expo.

  • React Native GitHub: يساعدك اتباع مستودع الكود المصدر الرسمي على GitHub على البقاء على اطلاع بالتغييرات القادمة، والمشكلات التي تتم مناقشتها، ومساهمات المجتمع.

  • مجتمع Viblo: يُعد Viblo أحد أكبر مجتمعات تبادل المعرفة في مجال تكنولوجيا المعلومات في فيتنام. ستجد فيه عددًا لا يُحصى من المقالات، ودروسًا تعليمية حول React Native، وتحليلات متعمقة لـ React Native من مبرمجين ذوي خبرة.

  • المدونات التقنية الأجنبية: تحتوي المواقع مثل Dev.to وMedium وLogRocket بانتظام على مقالات عالية الجودة حول التقنيات الجديدة والمكتبات ودراسات الحالة الواقعية حول React Native.

دورات React Native المقترحة عبر الإنترنت

إذا كنت تفضل التعلم بطريقة منظمة ومع دروس الفيديو، فإن الدورات التدريبية عبر الإنترنت هي خيار رائع.

  • دورة مجانية:

    • قناة "The Net Ninja" على اليوتيوب: تقدم سلسلة من دروس React Native التي تعتبر سهلة الفهم وبديهية للغاية، ومناسبة للمبتدئين.

    • قناة "Code with Mosh" على اليوتيوب: تحتوي قناة Mosh Hamedani على مقاطع فيديو تعليمية عالية الجودة حول React Native الأساسية.

    • منصة F8 (Fullstack.edu.vn): توفر دورات برمجة مجانية باللغة الفيتنامية، بما في ذلك ReactJS وReact Native، مع خريطة طريق منظمة ودعم قوي من المجتمع.

  • الدورات المدفوعة (جودة عالية):

    • دورات Udemy: تقدم هذه المنصة مجموعة واسعة من دورات React Native، من المستوى المبتدئ إلى المتقدم، يقدمها مدربون مشهورون مثل ستيفن غرايدر وماكسيميليان شوارزمولر. عادةً ما تكون هذه الدورات شاملة، وتتضمن مشاريع عملية، ويتم تحديثها بانتظام. ابحث عن خصومات للحصول على الدورة بسعر مناسب.

    • منصات متخصصة مثل Frontend Masters: تقدم دورات مكثفة في الجوانب المتقدمة من React وReact Native، يقدمها خبراء رائدون في هذا المجال. مثالية لمن يمتلك أساسًا متينًا ويرغب في تطوير مهاراته.

Help

QR Zalo Chat

QR WhatsApp

QR Teleram

Email

[email protected] | [email protected] | [email protected]
Top