الفرق بين المراجعتين لصفحة: «ReactNative/getting started»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:مدخل إلى React Native}}</noinclude> ستساعدك هذه الصفحة على تثبيت React Native وبناء تطبيقك الأول...'
 
طلا ملخص تعديل
 
(30 مراجعة متوسطة بواسطة 4 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:مدخل إلى React Native}}</noinclude>
{{DISPLAYTITLE:مدخل إلى React Native}}
ستساعدك هذه الصفحة على تثبيت React Native وبناء تطبيقك الأول. إن ثبّتت React Native مسبقاً فيمكنك تخطي هذه الصفحة والتوجّه إلى الدليل التطبيقي.
مرحبًا بك في بداية رحلتنا إلى إطار عمل React Native. إن أردت الاطّلاع على تعليمات إعداد البيئة، فقد انتقلت إلى [[ReactNative/environment setup|قسمها الخاص]]. ستجد في هذه الصفحة مدخلًا إلى التوثيق والمكونات الأصيلة ومكتبة React وغير ذلك.


يمكنك أن تبدأ مباشرة باتباع الإرشادات في قسم "ابدأ بسرعة"، أو يُمكنك اتباع إرشادات تهيئة بيئة عمل على نظام تشغيلك لبناء المشاريع باستخدام شيفرة أصيلة (native code) حسب المنصة التي تريد تطوير تطبيق لها على قسم "بناء مشاريع بشيفرة أصيلة"، اتبع الإرشادات المذكورة في أحد هذه الأقسام حسب نظام تشغيلك والمنصة التي ترغب بالتطوير لها:
كُتِب هذا التوثيق لجميع الأشخاص الذين يريدون تعلّم React Native بغض النظر عن مستوى خبرتهم أو خلفيتهم ابتداءً من من مطوري تطبيقات iOS الخبراء إلى متعلّمي [[React]] المبتدئين، والأشخاص الذين يتعلّمون البرمجة لأول مرة في حياتهم المهنية.
* التطوير على نظام macOS لمنصّة iOS
* التطوير على نظام macOS لمنصّة Android
* التطوير على نظام Windowns لمنصّة Android
* التطوير على نظام Linux لمنصّة Android


==ابدأ بسرعة==
== كيفية استخدام هذا التوثيق ==
أسهل طريقة لبناء تطبيق React Native هي عن طريق بيئة Expo. وهي بيئة تمكّن من بناء مشروعٍ دون الحاجة لتثبيت أو إعداد أدوات للتعامل مع شيفرة أصيلة، إذ لا حاجة لتثبيت Android Studio أو Xcode. (لكنها تأتي مع بعض المحاذير).
يمكنك البدء من هذه الصفحة وقراءة هذا التوثيق تسلسليًا كأنك تقرأ كتابًا، أو يمكنك قراءة الأقسام المحدَّدة التي تحتاجها فقط. إن كنت على دراية بمكتبة React، فيمكنك تخطي قسم [[ReactNative/intro react|أساسيات مكتبة React]]، أو قراءته لتجديد معلوماتك.


بافتراض أن حزمة Node مثبتة لديك، بإمكانك استخدام الأداة npm لتثبيت واجهة سطر الأوامر لبيئة Expo بالأمر التالي:
== المتطلبات الأساسية ==
ستحتاج إلى فهم أساسيات لغة [[JavaScript]] للعمل مع React Native. إن كنت جديدًا على لغة جافا سكريبت أو بحاجة إلى تجديد معلوماتك، فيمكنك الغوص في [[JavaScript|توثيق لغة JavaScript]] على موسوعة حسوب.<blockquote>افترضنا عدم وجود معرفة مسبقة بتطوير تطبيقات React أو Android أو iOS لدى قارئ هذا التوثيق، ولكنها مواضيع قيّمة ليدرسها مطوّر React Native الطموح، لذلك ربطنا القارئ بالموارد والمقالات اللازمة ليتعمّق في هذه المواضيع أكثر.</blockquote>


== أمثلة تفاعلية ==
يتيح لك هذا المدخل البدء على الفور ضمن متصفحك بأمثلة تفاعلية كهذا المثال ([https://snack.expo.dev/@hsoubwiki/hello-world تجربة حية]):<syntaxhighlight lang="javascript">
import React from 'react';
import { Text, View } from 'react-native';


npm install -g expo-cli
const YourApp = () => {
  return (
    <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
      <Text>
        Try editing me! 🎉
      </Text>
    </View>
  );
}


export default YourApp;
</syntaxhighlight>يمكنك استخدام الأداة Snack Player التي هي أداة مفيدة أنشأها Expo لتضمين وتشغيل مشاريع React Native ومشاركة كيفية تصييرها render على منصات مختلفة مثل Android و iOS. وضعنا لك قبل كل مثال رابطًا لتجربة حية له على Snack Player يمكِّنك من تجربة المثال على مختلف الأجهزة والبيئات إن أردت ذلك وحتى نسخ الشيفرة إلى حسابك على Expo أو يمكنك الاطلاع على المثال مباشرةً ونسخ الشيفرة من الموسوعة.<blockquote>إن أردت إعداد بيئة تطوير محلية، فيمكنك [[ReactNative/environment setup|اتباع دليلنا لإعداد بيئتك على جهازك المحلي]] ولصق أمثلة الشيفرة في ملف <code>App.js</code> الخاص بك (إذا كنت مطور ويب، فقد يكون لديك بالفعل بيئة محلية معدَّة لاختبار متصفح الهاتف المحمول).</blockquote>


== مكونات الدالة Function Components ومكونات الصنف Class Components ==
يمكنك إنشاء مكوّنات باستخدام دوال أو أصناف في React. كانت مكونات الصنف سابقًا هي المكونات الوحيدة التي يمكن أن يكون لها حالة، ولكن أصبح بإمكانك إضافة حالة وغير ذلك إلى مكونات الدالة منذ بداية ظهور واجهات API الخاصة بخطّافات React.


بعد ذلك نفّذ الأوامر التالية لتنشئ مشروع React Native باسم "AwesomeProject":
ظهرت الخطافات Hooks في الإصدار [https://reactnative.dev/blog/2019/03/12/releasing-react-native-059 0.59 من React Native]، وبما أن الخطافات هي الطريقة المستقبلية لكتابة مكونات React الخاصة بك، فقد استخدمنا أمثلة لمكونات الدالة بالإضافة إلى مكونات الصنف كما يلي:


expo init AwesomeProject
=== مكون الدالة ===
[https://snack.expo.dev/@hsoubwiki/hello-world-class-component تجربة حية للمثال]:<syntaxhighlight lang="javascript">
import React from 'react';
import { Text, View } from 'react-native';


cd AwesomeProject
const HelloWorldApp = () => {
npm start
  return (
    <View style={{
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center'
      }}>
      <Text>Hello, world!</Text>
    </View>
  );
}


سيقوم هذا الأمر بتشغيل خادم تطويرٍ (development server) لديك.
export default HelloWorldApp;
</syntaxhighlight>


تشغيل تطبيق React Native
=== مكون الصنف ===
[https://snack.expo.dev/@hsoubwiki/hello-world-function-component تجربة حية للمثال]:<syntaxhighlight lang="javascript">
import React, { Component } from 'react';
import { Text, View } from 'react-native';


ثبّت تطبيق Expo الخاص بالعميل على هاتفك ذو نظام Android أو iOS واجعله متصلاً بنفس الشبكة اللاسلكية التي يتصل بها حاسوبك. إن كنت على نظام Android فاستخدم هاتفك لمسح رمز الاستجابة السريعة (QR code) لفتح مشروعك، أما على iOS فاتبع الإرشادات التي تظهر على الشاشة لتحصل على رابط تفتح من خلاله مشروعك.
class HelloWorldApp extends Component {
  render() {
    return (
      <View style={{
          flex: 1,
          justifyContent: "center",
          alignItems: "center"
        }}>
        <Text>Hello, world!</Text>
      </View>
    );
  }
}


تعديل التطبيق
export default HelloWorldApp;
بعد تشغيل التطبيق بنجاح، لنقم بتعديله. افتح ملف App.js في محرر النصوص المفضل لديك وقم بتعديل بعض الأسطر. يجب على التطبيق أن يُحدَّثَ تلقائيًّا كلما حفظت تعديلاتك.
</syntaxhighlight>يمكنك الاطلاع على مزيد من أمثلة مكونات الصنف في [https://reactnative.dev/versions الإصدارات السابقة من هذا التوثيق باللغة الإنجليزية].


هذا كل ما في الأمر!
== ملاحظات المطور ==
يأتي الأشخاص الذين يريدون تعلّم React Native من خلفيات متنوعة، فقد تكون لديك خبرة في مجموعة من التقنيات، من الويب إلى تطبيقات Android و iOS وغير ذلك، لذلك حاولنا كتابة هذا التوثيق للمطورين من جميع تلك الخلفيات. سنقدّم أحيانًا تفسيرات خاصة بإحدى المنصات أو غيرها كما يلي:


تهانينا! لقد شغلت وعدلت أول تطبيق React Native خاص بك بنجاح.
* '''Android''': قد يكون مطورو Android على دراية بهذا المفهوم.
* '''iOS''': قد يكون مطورو iOS على دراية بهذا المفهوم.
* '''الويب''': قد يكون مطورو الويب على دراية بهذا المفهوم.


الخطوات التالية
حان الوقت للتعرف على أساس إطار عمل React Native وهو [[ReactNative/intro react native components|المكونات الأصيلة Native Components]]، بعد أن عرفت كيفية عمل هذا الدليل.


لدى بيئة Expo توثيق خاص بها يمكنك الرجوع إليه في حال راودك تساؤل حولها. كما يمكنك طلب المساعدة على منتديات Expo (بالإنجليزية).
== مصادر ==
 
إن كنت تواجه مشكلةً مع Expo فابحث أولًا لترى إن كانت هناك علّة (issue) عن المشكلة التي تواجهها قبل أن تفتح علّة جديدة، يمكنك البحث في الصفحتين التاليتين:
 
علل واجهة سطر أوامر Expo (للمشاكل المتعلقة بواجهة سطر الأوامر Expo CLI).
علل Expo (للمشاكل المتعلقة بتطبيق العميل أو حزمة التطوير -SDK- الخاصة ببيئةExpo).
 
للاستزادة حول React Native، ابدأ بقراءة الدليل التطبيقي للمزيد.
 
تشغيل التطبيق على مُحاكٍ (simulator) أو جهاز افتراضي (virtual device)
 
تسهل واجهة سطر الأوامر الخاصة ببيئة Expo عملية تشغيل التطبيق على جهاز فعلي دون الحاجة لإعداد بيئة تطويرية (development environment). إن كنت تريد تشغيل التطبيق على محاكي نظام iOS أو على جهاز Android افتراضي فانظر إرشادات بناء مشروع يحتوي شيفرة أصيلة للتعرف على كيفية تثبيت Xcode وإعداد البيئة التطويرية لنظام Android.
 
بعد إكمالك لعملية الإعداد، تستطيع تشغيل تطبيقك على جهاز Android الافتراضي عن طريق تنفيذ الأمر:
npm run android


كما تستطيع تشغيله على محاكي iOS بتنفيذ الأمر التالي (على نظام macOS فقط):
* [https://reactnative.dev/docs/getting-started صفحة Introduction في توثيق React Native الرسمي.]
npm run ios


===محاذير يجب الانتباه إليها عند استخدام  Expo===
لأنّ مشروعك المبني باستخدام Expo لا يحتوي على شيفرة أصيلة، فلا يمكن تضمين وحدات أصلية مُخصّصة  (custom native modules) باستثناء واجهات React Native البرمجية (React Native APIs) والمكونات المتوفّرة في تطبيق عميل Expo (أي التطبيق الذي تثبته على هاتفك).
إن كنت تعلم أنك ستحتاج لإضافة شيفرةً أصيلة خاصة بك،  فلا يزال استخدام Expo خياراً مناسباً لبدء تعلّم React Native. إذ كل ما عليك فعله في هذه الحالة هو تنفيذ عمليّة الإخراج عبر الأمر "eject" لبناء شيفرتك الأصيلة. إن نفّذت عملية الإخراج، فمن الضروري اتباع الخطوات المذكورة في قسم "بناء مشاريع بشيفرة أصيلة" أسفله لمواصلة العمل على مشروعك.
تقوم واجهة سطر أوامر Expo بإعداد مشروعك لاستخدام أحدث نسخة من React Native يدعمها تطبيق عميل Expo. عادة ما يدعم تطبيق عميل Expo نسخةً جديدة من React Native بعد حوالي أسبوع من إصدارها كنسخة مستقرة. بإمكانك الإطلاع على هذا المستند لمعرفة الإصدارات المدعومة.
إن كنت تنوي دمج React Native مع مشروع قائم بالفعل، فتخطّ سطر أوامر Expo وابدأ مباشرة بإعداد بيئة التطوير باستخدام أدوات البناء الأصيلة. انظر "بناء مشاريع بشيفرة أصيلة" أسفله.
==بناء مشاريع بشيفرة أصيلة==
اتّبع هذه الإرشادات إن أردت بناء شيفرة أصيلة في مشروعك.
===التطوير على نظام macOS لمنصّة iOS===
===التطوير على نظام macOS لمنصّة Android===
===التطوير على نظام Windowns لمنصّة Android===
===التطوير على نظام Linux لمنصّة Android===
== مصادر ==
* [https://facebook.github.io/react-native/docs/getting-started توثيق React Native الرسمي.]
[[تصنيف:ReactNative]]
[[تصنيف:ReactNative]]
[[تصنيف:React Native Docs]]

المراجعة الحالية بتاريخ 13:34، 9 أكتوبر 2021

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

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

كيفية استخدام هذا التوثيق

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

المتطلبات الأساسية

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

افترضنا عدم وجود معرفة مسبقة بتطوير تطبيقات React أو Android أو iOS لدى قارئ هذا التوثيق، ولكنها مواضيع قيّمة ليدرسها مطوّر React Native الطموح، لذلك ربطنا القارئ بالموارد والمقالات اللازمة ليتعمّق في هذه المواضيع أكثر.

أمثلة تفاعلية

يتيح لك هذا المدخل البدء على الفور ضمن متصفحك بأمثلة تفاعلية كهذا المثال (تجربة حية):

import React from 'react';
import { Text, View } from 'react-native';

const YourApp = () => {
  return (
    <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}>
      <Text>
        Try editing me! 🎉
      </Text>
    </View>
  );
}

export default YourApp;

يمكنك استخدام الأداة Snack Player التي هي أداة مفيدة أنشأها Expo لتضمين وتشغيل مشاريع React Native ومشاركة كيفية تصييرها render على منصات مختلفة مثل Android و iOS. وضعنا لك قبل كل مثال رابطًا لتجربة حية له على Snack Player يمكِّنك من تجربة المثال على مختلف الأجهزة والبيئات إن أردت ذلك وحتى نسخ الشيفرة إلى حسابك على Expo أو يمكنك الاطلاع على المثال مباشرةً ونسخ الشيفرة من الموسوعة.

إن أردت إعداد بيئة تطوير محلية، فيمكنك اتباع دليلنا لإعداد بيئتك على جهازك المحلي ولصق أمثلة الشيفرة في ملف App.js الخاص بك (إذا كنت مطور ويب، فقد يكون لديك بالفعل بيئة محلية معدَّة لاختبار متصفح الهاتف المحمول).

مكونات الدالة Function Components ومكونات الصنف Class Components

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

ظهرت الخطافات Hooks في الإصدار 0.59 من React Native، وبما أن الخطافات هي الطريقة المستقبلية لكتابة مكونات React الخاصة بك، فقد استخدمنا أمثلة لمكونات الدالة بالإضافة إلى مكونات الصنف كما يلي:

مكون الدالة

تجربة حية للمثال:

import React from 'react';
import { Text, View } from 'react-native';

const HelloWorldApp = () => {
  return (
    <View style={{
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center'
      }}>
      <Text>Hello, world!</Text>
    </View>
  );
}

export default HelloWorldApp;

مكون الصنف

تجربة حية للمثال:

import React, { Component } from 'react';
import { Text, View } from 'react-native';

class HelloWorldApp extends Component {
  render() {
    return (
      <View style={{
          flex: 1,
          justifyContent: "center",
          alignItems: "center"
        }}>
        <Text>Hello, world!</Text>
      </View>
    );
  }
}

export default HelloWorldApp;

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

ملاحظات المطور

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

  • Android: قد يكون مطورو Android على دراية بهذا المفهوم.
  • iOS: قد يكون مطورو iOS على دراية بهذا المفهوم.
  • الويب: قد يكون مطورو الويب على دراية بهذا المفهوم.

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

مصادر