Flutter Summary (Arabic)
Flutter Summary (Arabic)
Introduction to Dart
Dartهي لغة برمجة مفتوحة المصدر تم تطويرها في األصل بواسطة .Googleإنها مخصص لكل من جانب الخادم وكذلك جانب
المستخدم .تأتي Dart SDKمع برنامج التحويل البرمجي الخاص بها Dart VM -واألداة المساعدة Dart2jsالتي تهدف إلى إنشاء كود
JavaScriptمكافئ لـ Dart Scriptبحيث يمكن تشغيلها على تلك المواقع التي ال تدعم Dart. Dartهي لغة موجهة للكائنات وهي
تشبه تما ًما لغة برمجة .Javaيتم استخدام Dartعلى نطاق واسع إلنشاء مواقع الويب وتطبيقات الويب ذات الصفحة الواحدةDart .
Variables
اسم المتغير هو اسم مخصص لموقع الذاكرة حيث يقوم المستخدم بتخزين البيانات ويمكن جلب تلك البيانات عند الحاجة بمساعدة المتغير
عن طريق استدعاء اسمه المتغير .هناك أنواع مختلفة من المتغيرات المستخدمة لتخزين البيانات .يعتمد النوع الذي سيتم استخدامه
لتخزين البيانات على نوع البيانات التي سيتم تخزينها.
Operators in Dart
العوامل هي رموز خاصة تستخدم لتنفيذ عمليات معينة على المعامالت .يحتوي Dartعلى العديد من عوامل التشغيل المضمنة التي يمكن
استخدامها لتنفيذ وظائف مختلفة ،على سبيل المثال ،يتم استخدام " "+إلضافة عاملين .والمقصود من المشغلين هو تنفيذ العمليات على
واحد أو اثنين من المعامالت.
تحتوي هذه الفئة من العوامل على تلك العوامل تحتوي هذه الفئة من العوامل على تلك العوامل
التي تُستخدم إلجراء المقارنة على المعامالت التي تسمح لنا بإجراء سلسلة من العمليات على
نفس الكائن
Data Types in Dart
في لغة دارت هناك العديد من أنواع البيانات التي يمكن تمثيلها والتالعب بها في لغة البرمجة .تصنيف نوع البيانات كما هو موضح
أدناه:
Number List
الرقم في الدارت هو نوع البيانات برمجة Dart has built-in support for list,
.المستخدم لالحتفاظ بالقيمة الرقمية set, and map
Set:
isInfinite )(floor
isNan )(compareTo
isNegative )(reminder
sign round
isEven toDouble
isOdd )(toInt
)(toString
)(truncate
أنواع مختلفة من الوظائف في دارت
الوظيفة عبارة عن مجموعة من البيانات التي تأخذ المدخالت وتقوم ببعض المهام المحددة .يتم إنشاء الوظائف عندما تتكرر عبارات
معينة في البرنامج ويتم إنشاء وظيفة لتحل محلها.
Tهناك أربعة أنواع من الوظائف في دارت
في األساس ،في هذه في األساس ،في هذه في األساس ،في هذه في األساس ،في هذه
الوظيفة ،ال نعطي أي وسيط الوظيفة ،ال نعطي أي وسيط الوظيفة ،نعطي أي وسيط الوظيفة ،نعطي أي وسيط و
وال نتوقع أي نوع راجع من وال لكن نتوقع أي نوع راجع وال نتوقع أي نوع راجع من نتوقع أي نوع راجع من
.البيانات .من البيانات .البيانات .البيانات
Anonymous Functions
تشبه الوظائف المسماة ولكن ليس لديهم أسماء مرتبطة بها .يمكن أن تحتوي الوظيفة
المجهولة على صفر أو أكثر من المعلمات مع التعليقات التوضيحية االختيارية .وهو
يتألف من كتل من التعليمات البرمجية قائمة بذاتها والتي يمكن تمريرها في التعليمات
.البرمجية الخاصة بنا كمعلمة دالة
Second Lecture: OOP
Implicit interfaces
Every class implicitly defines an interface containing all the instance members of the class and of any
interfaces it implements. If you want to create a class A that supports class B's API without inheriting B's
implementation, class A should implement the B interface.
Constructors
يتم تعريف دالة البناء عن طريق إنشاء دالة بنفس اسم فئتها (باإلضافة إلى معرف إضافي اختياريًا كما هو موضح في ال ُمنشئات ال ُمسماة).
أنواع دالة البناء:
Superparameters:
To avoid having to manually pass each parameter into the super invocation of a constructor, you can use
superinitializer parameters to forward parameters to the specified or default superclass constructor.
This feature can't be used with redirecting constructors.
تعد أدوات Gettersو Settersمن األساليب الخاصة التي توفر إمكانية الوصول للقراءة والكتابة إلى خصائص الكائن .تذكر أن كل
متغير يحتوي على حرف ضمني ،باإلضافة إلى أداة ضبط إذا كان ذلك مناسبًا
Abstract methods:.
يمكن أن تكون أساليب ،instanceو ، getterو setterمجردة ،حيث تحدد واجهة ولكن تترك تنفيذها للكالسات األخرى .ال يمكن أن
توجد الدوال المجردة إال في الكالسات المجردة أو .mixinsإلنشاء طريقة مجردة ،استخدم الفاصلة المنقوطة (;) بدالًعمل جسم للدالة.
Third Lecture: Introduction to flutter
?What is Flutter
هو إطار عمل مجاني ومفتوح المصدر لواجهة مستخدم الهاتف المحمول تم إنشاؤه بواسطة Googleوتم إصداره في مايو .2017
باختصار ،يسمح لك بإنشاء تطبيق جوال أصلي بقاعدة تعليمات برمجية واحدة فقط .هذا يعني أنه يمكنك استخدام لغة برمجة واحدة
وقاعدة تعليمات برمجية واحدة إلنشاء تطبيقين مختلفين (لنظامي التشغيل iOSو.)Android
)An SDK (Software Development Kit )A Framework (UI Library based on widgets
مجموعة من األدوات التي ستساعدك على تطوير مجموعة من عناصر واجهة المستخدم القابلة إلعادة
تطبيقاتك .يتضمن ذلك أدوات لتجميع التعليمات االستخدام (األزرار ،ومدخالت النص ،وشرائح التمرير،
البرمجية الخاصة بك إلى تعليمات برمجية أصلية وما إلى ذلك) والتي يمكنك تخصيصها حسب احتياجاتك
Android).و iOSرمز لنظامي التشغيل( للجهاز .الخاصة
الخصائص المميزات
يحتاج المطورون إلى كتابة قاعدة تعليمات برمجية واحدة فقط لكال
سهلة جدا للتعلم )iOSو Androidمنصتي( التطبيقين
تحتوي على مجموعة كبيرة من widgets يتمتع المطورون بالتحكم الكامل في عناصر واجهة المستخدم
.وتخطيطها
.تشغيل نفس واجهة المستخدم لمنصات متعددة .تقدم فالتر أدوات مطور رائعة ،مع إعادة تحميل سريعة ومذهلة
األدوات ( )Widgetsهي اللبنات األساسية لواجهة مستخدم تطبيق .Flutterكل widgetعبارة عن إعالن غير قابل للتغيير لجزء من
واجهة المستخدم.
A widget can define:
يمكنك تحديد الخصائص الفريدة لعنصر واجهة المستخدم من خالل تنفيذ وظيفة buildوالتي تُرجع شجرة (أو تسلسل هرمي) لعناصر
واجهة المستخدم .تمثل هذه الشجرة جزء األداة من واجهة المستخدم بعبارات أكثر تحديدًا.
Handling user interaction:
إذا كانت الخصائص الفريدة لعنصر واجهة المستخدم تحتاج إلى التغيير بنا ًء على تفاعل المستخدم أو عوامل أخرى ،فإن عنصر واجهة
المستخدم هذا يكون ذو حالة تفاعلية .stateful
في هذه الفئة ،ستحتوي األدوات على عنصر واجهة مستخدم في هذه الفئة ،ستحتوي عنصر واجهة المستخدم المحدد على
واحد فقط كعنصر فرعي لها ،وسيكون لكل عنصر واجهة أكثر من عنصر واجهة مستخدم فرعي ويكون تخطيط كل
.مستخدم وظيفة تخطيط خاصة .عنصر واجهة مستخدم فريدًا
Examples:
Examples: Row - Column - ListView
Center - Container
Gestures
تعد اإليماءات في المقام األول وسيلة للمستخدم للتفاعل مع تطبيق الهاتف المحمول (أو أي جهاز يعمل باللمس) .تعتبر اإليماءات بسيطة مثل النقر على
شاشة الجهاز المحمول إلجراءات أكثر تعقيدًا تستخدم في تطبيقات األلعاب.
Examples of Gestures:
النقرة – لمس سطح الجهاز بطرف إصبعك لفترة قصيرة ثم حرر طرف إصبعك.
النقر المزدوج – النقر مرتين في وقت قصير.
Fourth Lecture: State management
تعد إدارة الحالة إحدى العمليات األكثر شعبية وضرورية في دورة حياة التطبيق.
الحالة هي المعلومات التي يمكن قراءتها عند إنشاء األداة wigdetوقد تتغير أو يتم تعديلها على مدار عمر التطبيق.
تُعرف هذه الحالة أيضًا باسم واجهة المستخدم أو الحالة وهي تختلف عن الحالة .Ephemeralإنها نوع من الحالة
المحلية .وهو نوع من الحاالت يرتبط بعنصر واجهة مستخدم التي نرغب في مشاركتها عبر أجزاء مختلفة من تطبيقنا
محدد ،أو يمكنك القول إنها حالة تحتوي على عنصر واجهة ونريد االحتفاظ بها بين جلسات المستخدم .وبالتالي ،يمكن
مستخدم واحد .في هذا النوع من الحاالت ،ال تحتاج إلى استخدام هذا النوع من الحالة عالميًا .تُعرف أحيانًا أيضًا باسم
استخدام تقنيات إدارة الحالة .المثال الشائع لهذه الحالة هو حالة التطبيق أو الحالة المشتركة.
.حقل النص
يرمز BLoCإلى مكون منطق األعمال .الفكرة بأكملها هي توفير دفق من األحداث من واجهة المستخدم الخاصة بك إلى BLoCوإذا
حدث شيء ما (عند حدوث حدث) -قم بإرجاع حالة جديدة إلى واجهة المستخدم .التدفق المستمر للبيانات يجعلها سهلة الوصول إليها
وإدارتها.
األحداث هي مدخالت التطبيق الحاالت هي ببساطة حالة الطلب، ال blocيدير هذه األحداث
(مثل الضغط على زر لتحميل والتي يمكن تغييرها استجابةً والحاالت ،أي أنه يأخذ دفقًا من
الصور ،أو إدخاالت النص ،أو أي للحدث الذي تم تلقيه األحداث ويحولها إلى دفق من
إدخال مستخدم آخر قد يأمل تطبيقنا الحاالت كمخرجات.
في تلقيه)
5
event 4
)UI(Button
Block Data
1 3
event
2
Provider Design Pattern
Flutter Providerهو حل إلدارة الحالة لتطبيقات .Flutterفهو يوفر طريقة بسيطة إلدارة حالة التطبيق ومشاركتها عبر عناصر واجهة
مستخدم متعددة ،مما يجعل من السهل الوصول إلى البيانات عند الحاجة إليها .يمكنك تخزين البيانات في موقع مركزي يسمى الموفر
والوصول إليها من أي مكان في تطبيقك .كلما تغيرت البيانات ،يقوم الموفر بتحديثها ،مما يحافظ على اتساق بيانات تطبيقك وتحديثها .تعتمد
حزمة الموفر على مفهوم عناصر واجهة المستخدم الموروثة وتوفر طريقة لنشر تغييرات البيانات عبر شجرة عناصر واجهة المستخدم.
يستخدم أسلوب البرمجة التفاعلية ويسمح للمطورين باالستماع إلى التغييرات في الحالة وإعادة بناء أجزاء من واجهة المستخدم التي تعتمد
على تلك الحالة تلقائيًا .بهذه الطريقة ،تتم إدارة الحالة في Flutterبشكل فعال.
أمرا بالغ األهمية في تطوير تطبيق Flutterألنها تساعدك على تنظيم بيانات تطبيقك ومزامنتها .فهو يضمن إمكانية
تعد إدارة الحالة ً
الوصول إلى البيانات التي تخزنها في جزء واحد من تطبيقك وتحديثها في أجزاء أخرى من التطبيق أيضًا.
كيف يمكن مقارنة Flutter Providerبحلول إدارة الحالة األخرى في Flutter؟
يحب المطورون الموفر providerألنه سهل االستخدام وطريقة فعالة إلدارة الحالة في .Flutterتشمل الخيارات األخرى ،BLoC
و ،ScopedModelو ،Reduxولكل منها نقاط قوتها الخاصة .يتميز Flutter Providerبكونه بسي ً
طا ومر ًنا بدرجة كافية للتعامل مع
هياكل البيانات المعقدة.
ما هي فوائد استخدام Flutter Provider؟
باستخدام أدوات ChangeNotifierProviderو ،Consumerيمكنك بسهولة إدارة البيانات ومشاركتها في تطبيق ،Flutterمما يضمن
بقاء بياناتك محدثة وأن واجهة المستخدم الخاصة بك تعكس دائ ًما أحدث البيانات.
ChangeNotifierProvider Consumer
يستخدم لتخزين البيانات الخاصة بك يستخدم للوصول إلى البيانات من ChangeNotifierProvider
أثناء إنشاء التطبيقات ،قد تحتاج إلى استخدام موفري خدمات متعددين إلدارة أجزاء مختلفة من الحالة .يمكنك التعامل مع موفري خدمات
متعددين من خالل دمجهم معًا مثل أي عنصر واجهة مستخدم آخر.
سنقوم بتغليف MaterialAppباستخدام MultiProviderاضافة قائمة الموفرين في فئة .MultiProvider
Fifth Lecture: Laravel
?What is Laravel
Laravelهو إطار PHPمفتوح المصدر ،وهو قوي وسهل الفهم .إنه يتبع نمط تصميم ال .mvcيعيد Laravelاستخدام المكونات الموجودة
ألطر عمل مختلفة مما يساعد في إنشاء تطبيق ويب.
يحتوي Laravelعلى مجموعة غنية جدًا من الميزات التي ستعزز سرعة تطوير الويب .إنه يوفر الكثير من الوقت إذا كنت تخطط لتطوير
موقع ويب من الصفر .عالوة على ذلك ،فإن موقع الويب المبني في Laravelآمن ويمنع العديد من هجمات الويب.
مميزات Laravel
ال composerهو أداة تتضمن جميع ال dependenciesوالمكتبات .يمكن تثبيت مكتبات الطرف الثالث بسهولة بمساعدة ال
.composer
Artisan:
واجهة األوامر التي تتضمن مجموعة من األوامر التي تساعد في بناء تطبيق ويب .تم دمج هذه األوامر من إطار عمل ،Symphonyمما
أدى إلى ميزات إضافية في Larave l.
يتيح لك Routingفي Laravelتوجيه جميع طلبات تطبيقك إلى وحدة التحكم المناسبة لها .تعترف المسارات الرئيسية والرئيسية في
Laravelوتقبل URIباإلضافة إلى اإلغالق.
يتم تعريف جميع المسارات في Laravelضمن ملفات المسار التي يمكنك العثور عليها في الدليل الفرعي للمسارات .يتم تحميل ملفات المسار
هذه وإنشائها تلقائيًا بواسطة إطار عمل .Laravelيتم تعريف ملف مسار التطبيق في ملف app/Http/Routes.php.
Controllersتهدف وحدات التحكم إلى التجميع المرتبط بمنطق معالجة الطلب داخل كالس واحدة .بدالً من تحديد منطق طلب المعالجة في
شكل عمليات اإلغالق في ملفات المسار .في مشروع Laravelالخاص بك ،يتم تخزينها في دليل .app/Http/ Controllers
?What is Laravel Migration
تعد Laravel Migrationميزة أساسية في Laravelتتيح لك إنشاء جدول في قاعدة البيانات الخاصة بك .يسمح لك بتعديل ومشاركة مخطط
قاعدة بيانات التطبيق .يمكنك تعديل الجدول عن طريق إضافة عمود جديد أو حذف عمود موجود.
?Why do we need Laravel Migration
يسمح لك Laravel Migrationبإضافة عمود جديد أو حذف السجالت في قاعدة البيانات الخاصة بك دون حذف السجالت الموجودة بالفعل.
يمكننا إدراج البيانات واسترجاعها وتحديثها وحذفها في قاعدة يتم استخدام النموذج كوسيلة الستجواب البيانات من وإلى
.البيانات باستخدام االستعالمات طريقة أساسية Laravelالجدول داخل قاعدة البيانات .يوفر
حيث يتضمن كل Eloquent ORMللقيام بذلك باستخدام
.جدول نموذ ًجا للتفاعل معه
لتحديث البيانات في قاعدة البيانات ،سنستخدم دالة )( findلتحديد السجل الذي نريد تحديثه في قاعدة البيانات وسنستخدم دالة )( saveلتحديث
البيانات.
لحذف البيانات في قاعدة البيانات ،سنستخدم دالة )( findلتحديد السجل الذي نريد حذفه في قاعدة البيانات وسنستخدم دالة )( deleteلحذف
البيانات.