All language subtitles for 012 First Summary & Additional Syntax_en

af Afrikaans
sq Albanian
am Amharic
ar Arabic Download
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:02,140 --> 00:00:08,950 لذلك حصلنا على الأسطر الأولى من التعليمات البرمجية التي أدت إلى هذا التطبيق الذي من الواضح أنه ليس من النوع 2 00:00:08,950 --> 00:00:12,120 من التطبيق الذي سنقوم بشحنه إلى متجر التطبيقات. بعد 3 00:00:12,130 --> 00:00:19,310 قبل أن نتعمق أكثر في بناء تطبيق أكثر جمالًا قليلاً ، اسمحوا لي أن ألخص باختصار ما 4 00:00:19,310 --> 00:00:25,420 لقد تعلمنا حتى الآن ونعم ، إنه تكرار ولكن من المهم جدًا أن تفهمه 5 00:00:25,690 --> 00:00:28,130 كيف يعمل هذا وماذا فعلنا. 6 00:00:28,150 --> 00:00:34,060 لذلك لدينا ملف main.dart مع الوظيفة الرئيسية ويتم تنفيذ هذه الوظيفة الرئيسية تلقائيًا 7 00:00:34,270 --> 00:00:36,210 عندما يتم إطلاق تطبيقنا ، 8 00:00:36,280 --> 00:00:42,610 هذا مهم. هناك ، نسمي التطبيق run وهي وظيفة يوفرها فريق Flutter في material.dart 9 00:00:42,610 --> 00:00:45,140 الحزمة التي نستوردها هنا. 10 00:00:45,220 --> 00:00:51,340 يمكننا استيراد حزمة Flutter وهناك ، ملف المواد لأن لدينا الاتصال في ملف 11 00:00:51,340 --> 00:00:57,610 ملف .pubspec.yaml. في وقت لاحق من الدورة ، سنضيف أيضًا حزمًا أخرى لجهات خارجية لإضافة المزيد من الميزات التي 12 00:00:57,610 --> 00:01:00,150 ليس علينا أن نبني أنفسنا. 13 00:01:00,160 --> 00:01:06,040 مع ذلك ، نسمي runApp و runApp هي وظيفة تقوم بكل الأحمال الثقيلة وراء الكواليس 14 00:01:06,040 --> 00:01:13,450 لأخذ عنصر واجهة مستخدم أنشأناه ورسمه على الشاشة ، على وجه الدقة ، ما يفعله في النهاية هو ذلك 15 00:01:13,450 --> 00:01:18,890 يستدعي طريقة الإنشاء في عنصر واجهة المستخدم لدينا لأن هذه قاعدة مهمة الآن ، 16 00:01:19,060 --> 00:01:26,950 يحتاج كل عنصر واجهة مستخدم في Flutter إلى توسيع عنصر واجهة مستخدم عديم الحالة أو عنصر واجهة مستخدم ذي حالة سأتعمق فيه لاحقًا ، 17 00:01:27,070 --> 00:01:32,620 لذلك يحتاج إلى تمديد إحدى فئتي عناصر واجهة المستخدم الأساسية هاتين وستجبرك كل فئة من هذه الفئات على ذلك 18 00:01:32,620 --> 00:01:38,980 إضافة طريقة بناء لأنه في النهاية ، سوف يستدعي Flutter طريقة الإنشاء هذه دائمًا من أجلك ، 19 00:01:38,980 --> 00:01:44,580 حتى لا تسميها ، يسميها Flutter عندما يُطلب منك رسم شيء ما على الشاشة. 20 00:01:44,680 --> 00:01:50,290 يطالب runApp Flutter أو يخبر Flutter برسم شيء ما على الشاشة وبالتالي يقوم Flutter بذلك 21 00:01:50,500 --> 00:01:56,460 قم بالكثير من الأشياء ولكن أيضًا استدعاء طريقة إنشاء الأداة التي تمررها إلى runApp. 22 00:01:57,280 --> 00:02:04,000 تكون طريقة الإنشاء مسؤولة دائمًا عن إرجاع عنصر واجهة مستخدم جديد يجب رسمه على الشاشة 23 00:02:04,480 --> 00:02:09,610 وبالتالي في وقت ما ، يجب أن ينتهي بك الأمر بإعادة إحدى الأدوات الأساسية 24 00:02:10,090 --> 00:02:16,480 يأتي Flutter مع لأن هذه ستحتوي بعد ذلك على التفاصيل الدقيقة للتحكم حقًا في وحدات البكسل 25 00:02:16,540 --> 00:02:22,320 لذلك اقول. بالطبع يفعلون أكثر من ذلك بقليل ولكن باختصار ، هكذا يمكنك التفكير في ذلك. 26 00:02:22,450 --> 00:02:27,150 لذا تحتاج الأدوات المصغّرة إلى إرجاع عناصر واجهة المستخدم ، وبالتالي في وقت ما ، سينتهي بك الأمر بإعادة هذه العناصر 27 00:02:27,150 --> 00:02:32,860 الحاجيات الأساسية وفي النهاية ، ستقوم ببناء واجهة المستخدم بالكامل باستخدام عناصر واجهة المستخدم الأساسية هذه لأن 28 00:02:32,860 --> 00:02:38,800 هناك عناصر واجهة مستخدم أساسية لكل شيء قد ترغب في بنائه وستتعلم كيفية العمل 29 00:02:38,800 --> 00:02:45,190 معهم وكيفية العثور على الأداة المناسبة لأي وظيفة ، ستتعلم كل ذلك طوال الدورة التدريبية. 30 00:02:45,190 --> 00:02:52,600 الآن طريقة البناء تحول حجة السياق هذه. الآن منذ أن دعا Flutter للبناء من أجلك ، إنه Flutter's 31 00:02:52,600 --> 00:02:58,630 وظيفة لتوفير قيمة للسياق ، لذلك لا داعي للقلق بشأن ذلك ، ما عليك سوى قبوله 32 00:02:58,630 --> 00:02:59,110 هنا 33 00:02:59,110 --> 00:03:05,260 بما أنك تكتب أسلوب البناء في هذا المكان هنا. السياق كما ذكرت سيكون هدفا 34 00:03:05,260 --> 00:03:11,590 اكتب سياق البناء ، لذلك باستخدام مخطط سياق البناء الذي يتم توفيره أيضًا بواسطة Flutter ، والذي يحمل 35 00:03:11,590 --> 00:03:19,390 بعض البيانات الوصفية حول هذه القطعة ، وموقعها في شجرة عناصر واجهة المستخدم والتطبيق العام الخاص بك إذا جاز التعبير. 36 00:03:20,060 --> 00:03:29,410 هذا ما يحدث هنا. الآن في طريقة إنشاء عنصر واجهة مستخدم MyApp هنا ، لدينا تطبيق MaterialApp 37 00:03:29,440 --> 00:03:34,250 التي أعود إليها والتي بدورها عبارة عن أداة ولكنها الآن أداة مقدمة من فريق Flutter. 38 00:03:34,360 --> 00:03:40,600 يستخدم هذا وسيطة مسماة ، منزل وكقيمة لهذه الوسيطة المسماة ، قمت بتمرير عنصر واجهة مستخدم آخر ، وهو 39 00:03:40,600 --> 00:03:46,450 عنصر واجهة المستخدم للنص والذي يتم توفيره أيضًا بواسطة حزمة Flutter ويستخدم هذا ما يسمى بالحجة الموضعية. 40 00:03:46,720 --> 00:03:54,280 لذا فإن كل من text و hello عبارة عن وسيطات ، والنص هو حجة لـ MaterialApp للحجة الرئيسية ومرحبًا 41 00:03:54,550 --> 00:03:56,790 حجة لأداة النص. 42 00:03:56,800 --> 00:04:04,060 الآن كل من هذه الأدوات ، MaterialApp والنص ، في فئات Dart النهائية ، كل عنصر واجهة مستخدم هو مجرد Dart 43 00:04:04,060 --> 00:04:06,450 الطبقة التي في النهاية لها طريقة بناء ، 44 00:04:06,550 --> 00:04:09,110 هذا شيء يمكنك تذكره. 45 00:04:09,460 --> 00:04:10,960 هذا ما يحدث هنا 46 00:04:10,960 --> 00:04:16,060 من الجدير أيضًا الإشارة إلى أنه من خلال إضافة الأقواس بعد اسم صفك ، كما نفعل هنا هنا ، 47 00:04:16,269 --> 00:04:22,089 نحن نقوم بإنشاء مثيل لتلك الفئة لذلك نحن ننشئ كائنًا ملموسًا لتلك الفئة ، هنا من MyApp 48 00:04:22,089 --> 00:04:28,360 عنصر واجهة المستخدم ، نقوم بإنشاء كائن من ذلك ونقوم بتمريره إلى runApp الذي يقوم بعد ذلك بتمريره إلى Flutter 49 00:04:28,480 --> 00:04:33,490 حتى نقول وهذا ما يظهر في النهاية هنا على الشاشة. 50 00:04:33,490 --> 00:04:39,280 الآن مع كل ذلك ، تطرقنا فقط إلى بعض الأساسيات الأساسية للغة Dart بالطبع ، 51 00:04:39,280 --> 00:04:45,520 هناك أكثر من وسيطات مسماة وطرق متغيرات وما إلى ذلك ، لكننا سنتعلم كل ذلك خطوة بخطوة 52 00:04:45,520 --> 00:04:48,640 وليس مقدمًا أمام الدورة ، 53 00:04:48,670 --> 00:04:53,460 بدلاً من ذلك ، دعنا نتعمق أكثر الآن ونتأكد من أننا نرى شيئًا أكثر جمالا في 54 00:04:53,460 --> 00:04:53,820 شاشة. 55 00:04:54,120 --> 00:05:00,820 ومع ذلك ، قبل القيام بذلك ، هناك تعليق توضيحي واحد مهم أريد إضافته إلى طريقة الإنشاء هذه 56 00:05:01,230 --> 00:05:03,510 وهذا هوOverride. 57 00:05:03,730 --> 00:05:06,130 الآن من الناحية الفنية ، هذا ليس مطلوبًا ، 58 00:05:06,130 --> 00:05:08,500 تطبيقنا يعمل بدون ذلك. 59 00:05:08,620 --> 00:05:14,950 هذا ما يسمى بالديكور وهو مصمم أيضًا ، والذي من المحتمل أنك خمنته ، يتم توفيره أيضًا 60 00:05:15,250 --> 00:05:21,760 بواسطة Dart and Flutter ، لذلك يتم توفير ميزة override فعليًا بواسطة Dart ، وليس بواسطة Flutter ولكن هناك أدوات تزيين أخرى 61 00:05:21,760 --> 00:05:26,580 مثل هذا الشيء المطلوب الذي أريتكم إياه سابقًا والذي سيوفره Flutter. 62 00:05:26,590 --> 00:05:28,630 الآن ما الذي يفعله هذا المصمم ، 63 00:05:28,630 --> 00:05:30,170 عملت بدونها؟ 64 00:05:30,190 --> 00:05:31,390 نعم ، يعمل بدونها ، 65 00:05:31,420 --> 00:05:38,500 إنه موجود فقط لجعل الكود الخاص بنا أكثر وضوحًا وأنظف قليلاً. 66 00:05:38,530 --> 00:05:44,620 هذا يوضح حقًا أننا نتجاوز عمدًا طريقة الإنشاء التي يوفرها 67 00:05:44,620 --> 00:05:45,420 أداة عديمة الحالة 68 00:05:45,430 --> 00:05:51,310 إنه موجود هناك ولكننا نتجاوزه من خلال تطبيقنا الخاص وقوى عنصر واجهة المستخدم عديمة الحالة بالفعل 69 00:05:51,310 --> 00:05:52,530 علينا أن نتجاوزه ، 70 00:05:52,540 --> 00:05:55,710 ليس لدينا خيار عدم تجاوزها ، مع ذلك ، 71 00:05:55,990 --> 00:05:59,770 هذه في الأساس ممارسة شائعة وممارسة جيدة. 72 00:05:59,770 --> 00:06:06,100 إذا قمت بتوفير طريقة موجودة أيضًا في الفصل الدراسي الذي تقوم بتوسيعه ، فيجب عليك إضافةOverride 73 00:06:06,100 --> 00:06:12,010 لتوضيح أنك لا تقوم بطريق الخطأ بالكتابة فوق هذه الطريقة الموجودة بالفعل ولكن عن عمد 74 00:06:12,340 --> 00:06:17,900 لأنه عند إضافة طريقة الإنشاء الخاصة بك هنا وكان عنصر واجهة المستخدم عديم الحالة يحتوي أيضًا على طريقة واحدة ، ثم أسلوب عديم الحالة 75 00:06:17,900 --> 00:06:22,960 لن يتم النظر في عنصر واجهة المستخدم في تطبيقي ولكن سيتم النظر في إرادتك الخاصة وهذا شيء تمامًا 76 00:06:22,960 --> 00:06:23,800 عليك أن تفعل هنا. 77 00:06:23,800 --> 00:06:29,110 هذا ليس خطأ ، فأنت تريد أن تفعل ذلك ، فأنت تريد فقط أن تكون واضحًا أن هذا قد تم عمداً. إذن كذلك 78 00:06:29,110 --> 00:06:33,880 شيء صغير ، أسلوبي ، لا يزال شيئًا سنراه طوال الدورة وبالتالي أريد ذلك 79 00:06:33,880 --> 00:06:36,660 أذكر هنا. وهناك شيء آخر ستراه ، 80 00:06:36,660 --> 00:06:42,940 على سبيل المثال عند إنشاء تطبيق Flutter جديد. بدلًا من أن تبدو الوظيفة الرئيسية هكذا ، أنت أيضًا 81 00:06:43,360 --> 00:06:46,810 يمكنه رؤية شيء يشبه هذا ، 82 00:06:46,810 --> 00:06:52,420 لديك فراغ main ، ثم لديك الأقواس الخاصة بك ، لذلك هذا هو نفسه الذي لدينا هنا ولكن بعد ذلك 83 00:06:52,420 --> 00:06:56,100 بدلاً من الأقواس المتعرجة ، لديك علامة يساوي وعلامة أكبر ، 84 00:06:56,260 --> 00:06:58,870 لذا فهو نوع من الأسهم 85 00:06:58,990 --> 00:07:01,570 وبعد ذلك قمت بتشغيلApp MyApp. 86 00:07:02,200 --> 00:07:08,800 إذن ما كان لدينا بين الأقواس المتعرجة الآن يأتي بعد هذا السهم بدون أقواس مجعدة وهذا هو 87 00:07:08,800 --> 00:07:10,750 صيغة Dart صالحة أيضًا ، 88 00:07:10,840 --> 00:07:18,430 إنه اختصار للوظائف التي تحتوي على تعبير واحد فقط وتعبير واحد تمامًا ، لذلك سطر واحد فقط من التعليمات البرمجية 89 00:07:18,430 --> 00:07:19,390 في الوظيفة ، 90 00:07:19,390 --> 00:07:25,450 ثم يمكنك حذف الأقواس المتعرجة وبدلاً من ذلك إضافة مثل هذا السهم هنا ، والذي يخبر Dart أن هذا هو 91 00:07:25,450 --> 00:07:27,420 تعمل بتعبير واحد فقط 92 00:07:27,460 --> 00:07:29,230 وهذا هو التعبير ، 93 00:07:29,230 --> 00:07:30,020 من فضلك نفذ ، 94 00:07:30,020 --> 00:07:31,250 لا يوجد شيء آخر 95 00:07:31,330 --> 00:07:37,540 وسيتم أيضًا إرجاع نتيجة هذا التعبير هنا تلقائيًا. 96 00:07:37,560 --> 00:07:42,640 الآن هنا ، لا يُرجع runApp أي شيء ، وبالتالي فإن وظيفتنا العامة لا تُرجع أي شيء 97 00:07:42,910 --> 00:07:45,960 ولكن إذا كان runApp سيعيد قيمة ، 98 00:07:46,060 --> 00:07:49,750 ثم سيتم إرجاع هذا تلقائيًا بواسطة وظيفتنا هنا أيضًا. 99 00:07:49,840 --> 00:07:54,910 يمكنك استخدام ذلك لأي دالة بتعبير واحد حيث تريد بعد ذلك تنفيذ هذا التعبير. 100 00:07:55,330 --> 00:08:00,610 لذلك هذا مجرد بناء جملة بديل لذلك وهو مجرد شيء أريد الخروج منه هنا 101 00:08:00,760 --> 00:08:03,040 حتى يتضح ما يفعله هذا 102 00:08:03,040 --> 00:08:03,910 إذا رأيت ذلك. 103 00:08:04,090 --> 00:08:08,440 ولكن مع ذلك ، دعنا الآن نتأكد من أن لدينا تطبيقًا أكثر جمالًا على الشاشة. 15620

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.