SlideShare une entreprise Scribd logo
1  sur  98
Télécharger pour lire hors ligne
‫املستخدم‬ ‫قسم‬ ‫تطوير‬ ‫و‬
‫باستخدام‬
‫الجلسة‬‫الثالثة‬
‫منصات‬‫للمستخدم‬ ‫الويب‬ ‫واجهة‬ ‫لتصميم‬
1
‫هي؟‬ ‫ما‬
‫مجموعة‬‫قوالب‬ ‫من‬HTML،CSS‫و‬JavaScript‫شكل‬ ‫ىلع‬ ‫لالستخدام‬ ‫جاهزة‬
‫لواجهة‬ ‫مكونات‬‫املستخدم‬:
‫إرسال‬ ‫قوالب‬(Forms)‫أزرار‬ ،(Buttons)‫الجداول‬ ،(Tables)‫املالحة‬ ،(Navigations)،
‫املنسدلة‬(Dropdowns)‫تنبيهات‬ ،(Alerts)‫منبثقة‬ ‫لوائح‬ ،(Modals)‫عالمات‬ ،
‫التبويب‬(Tabs)،‫دائري‬ ‫شريط‬(Carousel)‫الخ‬.
‫مشهورة‬ ‫تصميم‬ ‫منصات‬
1. Bootstrap
2. Semantic-UI
3. Foundation
4. Materialize
5. Material UI
6. Pure
7. Skeleton
8. UIKit
9. Milligram
10. Susy
‫استخدامها؟‬ ‫يتم‬ ‫ملاذا‬
•‫متجاوب‬ ‫ويب‬ ‫تصميم‬‫الشاشة‬ ‫حجم‬ ‫حسب‬:
‫اللوحية‬ ‫لألجهزة‬ ‫أولوية‬ ‫إعطاء‬
•‫املتصفحات‬ ‫أنواع‬ ‫كافة‬ ‫مع‬ ‫متالئم‬.
•‫االنتاجية‬ ‫زيادة‬.
•‫املجتمع‬ ‫دعم‬:
‫قوالب‬‫ل‬‫ويب‬ ‫صفحات‬
‫إلى‬ ‫مقدمة‬
2
‫عن‬ ‫ملحة‬Bootstrap
Bootstrap‫إطار‬ ‫أول‬ ‫هو‬‫لتطوير‬‫تستجيب‬ ‫اإلنترنت‬ ‫شبكة‬ ‫ىلع‬ ‫مشاريع‬
‫املحمولة‬ ‫األجهزة‬ ‫وتراعي‬ ‫الشاشة‬ ‫بحجم‬ ‫ُّر‬‫للتغي‬
‫تاريخ‬Bootstrap
•‫صدرت‬‫عام‬ ‫يف‬ ‫مرة‬ ‫ألول‬2011
-‫قبل‬ ‫من‬Mark Otto‫و‬Jacob Thornton
•‫اإلصدار‬‫الحالي‬‫لها‬3.3.7
•‫اإلصدار‬4.0‫قريبًا‬ ‫سيصدر‬
-‫حاليا‬‫نسخة‬،‫ألفا‬‫ولكنها‬‫مستقرة‬ ‫الغالب‬ ‫يف‬
-‫هذا‬ ‫يغطي‬‫النسخة‬ ‫املساق‬4.0،
‫ولكن‬‫الصفوف‬ ‫معظم‬‫ىلع‬ ‫تنطبق‬ ‫تزال‬ ‫ال‬3.3.7
•‫اإلطار‬‫األول‬ ‫الشامل‬
-‫بسرعة‬ ‫شعبية‬ ‫اكتسب‬‫كبيرة‬
‫املتجاوب‬ ‫التصميم‬
3
‫املتجاوب‬ ‫التصميم‬ ‫ملاذا‬
•‫طريق‬ ‫عن‬ ‫اإلنترنت‬ ‫مواقع‬ ‫إلى‬ ‫متزايد‬ ‫بشكل‬ ‫يصلون‬ ‫املستخدمون‬
‫بحجوم‬ ‫تختلف‬ ‫والتي‬ ‫اللوحية‬ ‫األجهزة‬‫شاشاتها‬
•‫اآلن‬ ‫بعد‬ ‫صالحًا‬ ‫يكون‬ ‫لن‬ ‫الواحد‬ ‫الحجم‬ ‫ىلع‬ ‫يعتمد‬ ‫الذي‬ ‫الحل‬
•‫ّف‬‫ي‬‫التك‬‫مع‬"‫العرض‬ ‫إطار‬"‫باملستخدم‬ ‫الخاص‬
‫املوقع‬ ‫نواة‬ ‫ضمن‬ ‫ذلك‬ ‫بناء‬
‫اللوحية‬ ‫لألجهزة‬ ‫التصميم‬ ‫أولوية‬
Mobile First Design
‫التقليدي‬ ‫األسلوب‬
‫اللوحية‬ ‫باألجهزة‬ ‫البدء‬
ً‫ال‬‫أو‬ ‫الجوال‬ ‫قيود‬ ‫مراعاة‬ ‫يتم‬
‫املتجاوب‬ ‫التصميم‬ ‫أسس‬
•‫الشبكة‬ ‫نظام‬(Grid System)
‫سنقوم‬‫ب‬‫التعامل‬‫الشبكة‬ ‫نظام‬ ‫مع‬‫سيأتي‬ ‫فيما‬
•Fluid images
‫دعم‬ ‫نشاهد‬ ‫سوف‬Bootstrap‫الحق‬ ‫لها‬
•‫الوسائط‬ ‫استعالمات‬(Media Queries)
‫ا‬‫ستعالمات‬‫الوسائط‬(Media Queries)
‫سبيل‬ ‫ىلع‬ ،‫العرض‬ ‫إطار‬ ‫حجم‬ ‫ىلع‬ ‫باالعتماد‬ ‫التصاميم‬ ‫لتطبيق‬ ‫تقنية‬
‫املثال‬:
@media (min-width: 992px) {
/* CSS styles customized for desktop */
}
‫بذلك؟‬ ‫القيام‬ ‫يمكننا‬ ‫كيف‬
‫مبنية‬ ‫املستخدم‬ ‫واجهات‬ ‫لتصميم‬ ‫منصة‬ ‫ىلع‬ ‫باالعتماد‬ ‫بالتصميم‬ ‫البدء‬
‫املتجاوب‬ ‫التصميم‬ ‫أساس‬ ‫ىلع‬
‫الشبكي‬ ‫النظام‬
4
‫العرض‬ ‫إطار‬(Viewport)
<meta name="viewport" content="width=device-width,
initial-scale=1, shrink-to-fit=no">
•‫الوصفي‬ ‫الوسم‬‫العرض‬ ‫إلطار‬:
-‫الشاشة‬ ‫عرض‬ ‫تعيين‬ ‫يضمن‬‫يساوي‬ ‫بما‬‫عرض‬‫الجهاز‬
‫هذا‬ ‫أخذ‬ ‫مع‬ ‫املحتوى‬ ‫إظهار‬ ‫ويتم‬‫العرض‬‫االعتبار‬ ‫بعين‬.
-‫لتكون‬ ‫املواقع‬ ‫تصميم‬‫العرض‬ ‫إطار‬ ‫لحجم‬ ‫استجابة‬ ‫ذات‬
-‫شبكة‬ ‫نظام‬Bootstrap
CSS Flexbox Layout
•‫يف‬ ‫وأبسط‬ ‫أسهل‬ ‫خيارات‬CSS
•‫الحجم‬ ‫معالجة‬ ‫بسهولة‬ ‫يمكنها‬(‫الديناميكي‬/‫ثابت‬ ‫الغير‬)
‫املحتوى‬ ‫لحاويات‬
•‫االتجاه‬ ‫عن‬ ‫مستقلة‬ ‫عرض‬ ‫بنية‬(‫يساري‬ ‫أم‬ ‫يميني‬)
‫بنية‬ ‫ملاذا‬Flexbox‫لـ‬bootstrap
•‫األب‬ ‫العنصر‬ ‫ضمن‬ ‫للمحتوى‬ ‫األفقية‬ ‫املحاذاة‬ ‫تطبيق‬ ‫سهولة‬
•‫بمساعدة‬ ‫الشاشات‬ ‫ودقة‬ ‫األجهزة‬ ‫حسب‬ ‫العناصر‬ ‫ترتيب‬ ‫إعادة‬ ‫سهولة‬Media Queries
•‫االتجاه‬ ‫عن‬ ‫مستقلة‬ ‫عرض‬ ‫بنية‬(‫يساري‬ ‫أم‬ ‫يميني‬)
•‫ىلع‬ ‫فقط‬ ‫باالعتماد‬ ‫األعمدة‬ ‫أطوال‬ ‫مساواة‬ ‫سهولة‬CSS‫العرض‬ ‫لبنى‬ ‫وذلك‬
‫الشبكة‬ ‫ىلع‬ ‫املعتمدة‬
‫شبكة‬Bootstrap
‫شبكة‬Bootstrap
•‫تتيح‬Bootstrap‫خمسة‬‫صفوف‬:
sm for small, md for medium,
lg for large, and xl for extra large screen sizes
•‫يف‬ ‫سطر‬ ‫كل‬Bootstrap‫مقسم‬‫إلى‬12‫عمودًا‬
•‫الصفوف‬ ‫تستخدم‬col-*, .col-sm-*, col-md-*, and .col-lg-*
‫لتعريف‬‫حجوم‬ ‫ملختلف‬ ‫املناسبة‬ ‫العرض‬ ‫بنية‬‫الشاشات‬
•‫املحتوى‬ ‫من‬ ‫قطعة‬ ‫كل‬ ‫ستشغله‬ ‫الذي‬ ‫األعمدة‬ ‫عدد‬ ‫تحدد‬ ‫يتم‬
‫هو‬ ‫مجموعها‬ ‫يكون‬ ‫بحيث‬ ‫السطر‬ ‫ضمن‬12‫مضاعفاته‬ ‫من‬ ‫أو‬
‫شبكة‬Bootstrap
‫شبكة‬ ‫خصائص‬Bootstrap
Push and Pull
Extra Small Screens Small, Medium, Large and Extra Large Screens
‫املحتوى‬ ‫ترتيب‬ ‫إعادة‬
Extra Small Screens Small, Medium, Large and Extra Large Screens
‫املتداخلة‬ ‫األعمدة‬
‫مع‬ ‫الربط‬Bootstrap
‫ملفات‬ ‫تضمين‬ ‫يتم‬Bootstrap‫التالية‬ ‫الطرق‬ ‫بإحدى‬:
•‫موقع‬ ‫من‬ ‫امللفات‬ ‫تحميل‬http://getbootstrap.com/
‫الويب‬ ‫صفحة‬ ‫مع‬ ‫امللفات‬ ‫هذه‬ ‫وربط‬
•‫م‬ ‫الويب‬ ‫صفحة‬ ‫ربط‬‫ع‬‫من‬ ‫امللفات‬ ‫من‬ ‫خارجية‬ ‫نسخة‬
CDN (Content Delivery Network)‫وأحد‬‫لها‬ ‫املزودات‬‫هو‬MaxCDN
•‫تحميل‬‫للحزم‬ ‫مدير‬ ‫خالل‬ ‫من‬ ‫امللفات‬(‫هو‬ ‫حالتنا‬ ‫يف‬npm)
‫لذلك‬ ‫سنتطرق‬‫الحقًا‬.
‫قالب‬Bootstrap
‫عملي‬ ‫تطبيق‬!
‫السابقة‬ ‫األدوات‬ ‫باستخدام‬‫امللف‬ ‫يف‬ ‫التمرين‬ ‫أكمل‬
‫الصفحة‬ ‫بربط‬ ‫قم‬‫مع‬‫تنسيقها‬ ‫أعد‬ ‫ثم‬
‫باستخدام‬‫املرفقة‬ ‫الصورة‬ ‫لتشابه‬
‫مكونات‬ ‫بعض‬
5
Navigation
Icon Fonts (Font Awesome)
‫املستخدم‬ ‫مدخالت‬(User Input)
‫املستخدم‬ ‫مدخالت‬(User Input)
‫الجداول‬(Tables)
‫الجداول‬(Tables)
Bootstrap Cards
Images & Media
Responsive Embed
Alerting User (Badges)
Alerting User (Alter)
Alerting User (Progress Bar)
‫مكونات‬
6
Bootstrap‫مع‬JS
‫دعم‬bootstrap‫لـ‬JavaScript‫إضافات‬ ‫خالل‬ ‫من‬(plugins)
‫ىلع‬ ً‫ء‬‫بنا‬ ‫مكتوبة‬ ‫اإلضافات‬Jquery
‫حدة‬ ‫ىلع‬ ٌ‫ل‬‫ك‬ ‫اإلضافات‬ ‫تضمين‬ ‫يمكن‬
Bootstrap‫مع‬JS
‫إضافات‬ ‫استخدام‬Bootstrap JS
‫ملفات‬ ‫تضمين‬JavaScript‫الوسم‬ ‫نهاية‬ ‫يف‬<body>
<script src="node_modules/jquery/dist/jquery.min.js"></script>
<script src="node_modules/tether/dist/js/tether.min.js"></script>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
‫مكونات‬Bootstrap JS
•‫مكونات‬JS‫سطر‬ ‫أي‬ ‫كتابة‬ ‫بدون‬ ‫تستخدم‬ ‫أن‬ ‫يمكن‬JS:
-data-* attributes(،‫املثال‬ ‫سبيل‬ ‫ىلع‬data-toggle, data-spy)
-‫استخدام‬ ‫يف‬ ‫جدًا‬ ‫واضح‬ ‫منهج‬‫اإلضافات‬
-‫هذا‬ ‫نستكشف‬ ‫سوف‬‫املنهج‬‫يف‬‫الجلسة‬ ‫هذه‬
•‫متاحة‬ ‫كاملة‬ ‫برمجية‬ ‫واجهة‬‫األمر‬ ‫لزم‬ ‫إذا‬
-‫إلى‬ ‫تحتاج‬‫كتابة‬ ‫بقواعد‬ ‫إملام‬JavaScript‫و‬JQuery
Collapse
Collapse
Tooltips
Popover
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-
placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus."> Popover on top
</button>
Modals
Modals
Carousel
Carousel
‫عملي‬ ‫تطبيق‬!
‫السابقة‬ ‫األدوات‬ ‫باستخدام‬‫امللف‬ ‫يف‬ ‫التمرين‬ ‫أكمل‬
‫بإضافة‬ ‫قم‬‫املرف‬ ‫بامللفات‬ ‫باالستعانة‬ ‫الويب‬ ‫صفحة‬ ‫إلى‬‫قة‬
‫و‬
7
JQuery
•‫للـ‬ ‫خفيفة‬ ‫مكتبة‬JavaScript
•‫بها‬ ‫تتميز‬ ‫التي‬ ‫املزايا‬:
-‫مع‬ ‫التعامل‬HTML/DOM
-‫مع‬ ‫التعامل‬CSS
-‫لألحداث‬ ‫توابع‬(Events)‫بالـ‬ ‫خاصة‬HTML
-‫وتحريك‬ ‫تأثيرات‬ ‫إضافة‬
-AJAX
•‫مكونات‬Bootstrap JavaScript‫ىلع‬ ‫مبنية‬JQuery
‫بـ‬ ‫التكابة‬ ‫بنية‬JQuery
•$(selector).action()
-$:‫تعريف‬/‫لـ‬ ‫الوصول‬Jquery
-(selector:)‫عنصر‬ ‫إليجاد‬ ‫بأمر‬ ‫القيام‬HTML
-action():‫سابق‬ ‫عناصر‬ ‫من‬ ‫تحديده‬ ‫تم‬ ‫ما‬ ‫ىلع‬ ‫تنفيذه‬ ‫سيتم‬ ‫الذي‬ ‫الحدث‬‫ًا‬
-‫املثال‬ ‫سبيل‬ ‫ىلع‬:$(“p”).hide(), $(“#mycarousel”).carousel(‘pause’)
‫عن‬ ‫مثال‬Bootstrap JQuery
<script>
$(document).ready(function(){
$('[data-toggle="tooltip"]').tooltip();
});
</script>
‫محددات‬(JQuery Selectors)
•‫عنصر‬ ‫تحديد‬HTMLً‫ال‬‫مث‬ ،:“P”،“button”
•‫الفريد‬ ‫املعرف‬ ‫باستخدام‬ ‫تحدد‬(Id#)،ً‫ال‬‫مث‬:“#myCarousel”
•ً‫ال‬‫مث‬ ،‫صف‬ ‫تحديد‬:“.btn”،“.btn.btn-default”
•ً‫ال‬‫مث‬ ،‫معامل‬ ‫تحديد‬:“[href]”،“[data-toggle=“tooltip”]”
•‫الحالي‬ ‫العنصر‬ ‫تحديد‬:$(this)
•‫غيرها‬ ‫وطرق‬..
‫أحداث‬(JQuery Events)
•‫بنية‬ ‫ىلع‬ ‫أحداث‬ ‫يسبب‬ ‫الويب‬ ‫صفحة‬ ‫مع‬ ‫املستخدم‬ ‫تفاعل‬DOM
-‫الفأرة‬:click, dblclick, mouseenter, mouseleave
-‫املفاتيح‬ ‫لوحة‬:keypress, keydown, keyup
-‫اإلرسال‬ ‫قوالب‬:submit, change, focus, blur
-‫النافذة‬ ،‫املستند‬:load, resize, scroll, unload
•‫أحداث‬ ‫توابع‬Jquery:ً‫ال‬‫مث‬:ready(), click(), dblclick(), mousedown(), on()
‫للـ‬ ‫األسبقية‬ ‫املعالجات‬
8
CSS
•‫تعد‬CSS‫ع‬ ‫ىلع‬ ‫متكرر‬ ‫بشكل‬ ‫وتطبيقها‬ ‫تصاميم‬ ‫لتعريف‬ ‫األمثل‬ ‫الحل‬‫ناصر‬
HTML
•CSS‫متحوالت‬ ‫تعريف‬ ‫نوع‬ ‫من‬ ‫مزايا‬ ‫تغطي‬ ‫ال‬(defining variables)‫تحديدات‬ ،
‫متداخلة‬(nesting selectors)‫تعابير‬ ،(expressions)‫توابع‬ ،(functions)
-‫التعديل‬ ‫أو‬ ‫التصليح‬ ‫عملية‬ ‫يف‬ ‫معاناة‬ ‫إلى‬ ‫يؤدي‬ ‫هذا‬
CSS Preprocessors
•‫مشهور‬ ‫منها‬ ‫العديد‬:
-Less
-Sass(Syntactically Awesome Style Sheets)
(Sassy CSS) syntax examined in this course Scss
-stylus
•‫إلى‬ ‫جميعها‬ ‫ترجمتها‬ ‫يتم‬CSS‫استخدامه‬ ‫قبل‬ ‫تلقائي‬ ‫بشكل‬ ‫التقليدية‬‫ا‬
‫الويب‬ ‫صفحة‬ ‫يف‬
•‫إلى‬ ‫سنتطرق‬Less‫و‬Sass‫مختصر‬ ‫بشكل‬
•Bootstrap 3‫تستخدم‬ ‫كانت‬Less‫انتقلت‬ ‫بينما‬Bootstrap 4‫إلى‬Sass
‫لـ‬ ‫نمطية‬ ‫مزايا‬CSS Preprocessors
•‫املتحوالت‬
•‫متداخلة‬ ‫تحديدات‬(nesting selectors)
•Mixins(‫عن‬ ‫تصريح‬ ‫من‬ ‫أكثر‬ ‫عن‬ ‫تعبر‬ ‫أن‬ ‫يمكنها‬CSS‫املتحوالت‬ ‫عكس‬ ‫ىلع‬)
•‫تعابير‬(expressions)‫و‬‫توابع‬(functions)
‫املتحوالت‬
Less
@lt-gray: #ddd;
@background-dark: #512DA8;
@carousel-item-height: 300px;
.navbar-inverse {
background:@background-dark;
}
.carousel .carousel-item {
height: @carousel-item-height;
}
Scss
$lt-gray: #ddd;
$background-dark: #512DA8;
$carousel-item-height: 300px;
.navbar-inverse {
background:$background-dark;
}
.carousel .item {
height: $carousel-item-height;
}
‫التعشيش‬(Nesting)
Less
@background-dark: #512DA8;
@carousel-item-height: 300px;
.carousel {
background:@background-dark;
.carousel-item {
height: @carousel-item-height;
img {
position: absolute;
top: 0;
left: 0;
min-height: 300px;
}
}
}
Scss
$background-dark: #512DA8;
$carousel-item-height: 300px;
.carousel {
background:$background-dark;
.carousel-item {
height: $carousel-item-height;
img {
position: absolute;
top: 0;
left: 0;
min-height: 300px;
}
}
}
Mixins
‫مالحظة‬:‫استخدم‬.zero-margin() { … }‫إذا‬
‫تريد‬ ‫ال‬ ‫كنت‬.zero-margin‫يتم‬ ‫أن‬ ‫نفسها‬
‫الترجمة‬ ‫عملية‬ ‫يف‬ ‫تضمينها‬
Mixins with Parameters
Less
.zero-margin (@pad-up-dn: 0px, @pad-left-right: 0px) {
margin:0px auto;
padding: @pad-up-dn @pad-left-right;
}
.row-header {
.zero-margin();
padding:0px auto;
}
.row-content {
.zero-margin (50px, 0px);
border-bottom: 1px ridge;
min-height:400px;
}
Scss
@ mixin zero-margin ($pad-up-dn, $pad-left-right) {
margin:0px auto;
padding: $pad-up-dn $pad-left-right;
}
.row-header {
@include zero-margin(0px, 0px);
padding:0px auto;
}
.row-content {
@include zero-margin (50px, 0px);
border-bottom: 1px ridge;
min-height:400px;
}
‫متحوالت‬ ‫مع‬ Mixins
Less
.zero-margin (@pad-up-dn: 0px, @pad-left-right: 0px) {
margin:0px auto;
padding: @pad-up-dn @pad-left-right;
}
.row-header {
.zero-margin();
padding:0px auto;
}
.row-content {
.zero-margin (50px, 0px);
border-bottom: 1px ridge;
min-height:400px;
}
Scss
@ mixin zero-margin ($pad-up-dn, $pad-left-right) {
margin:0px auto;
padding: $pad-up-dn $pad-left-right;
}
.row-header {
@include zero-margin(0px, 0px);
padding:0px auto;
}
.row-content {
@include zero-margin (50px, 0px);
border-bottom: 1px ridge;
min-height:400px;
}
‫رياضية‬ ‫عمليات‬
Less
@carousel-item-height: 300px;
.carousel-item {
height: @carousel-item-height;
}
.carousel-item .item-large{
height: @carousel-item-height *2;
}
Scss
$carousel-item-height: 300px;
.carousel-item {
height: $carousel-item-height;
}
.carousel-item .item-large{
height: $carousel-item-height *2;
}
‫منصات‬‫املستخدم‬ ‫لقسم‬
9
‫بحاجتها؟‬ ‫نحن‬ ‫ملاذا‬
•‫الـ‬ ‫بنية‬ ‫مع‬ ‫التعامل‬ ‫إدارة‬ ‫يف‬ ‫التعقيد‬ ‫حجم‬DOM‫وتحديثات‬‫البيانات‬‫يدويًا‬
•‫جيد‬ ‫بشكل‬ ‫معرفة‬ ‫تطبيقات‬ ‫بنى‬ ‫إلى‬ ‫الحاجة‬:
-Model View Controller / Model View View Model / Model View Whatever
-‫النموذج‬ ‫ربط‬(Model)‫الواجهة‬ ‫مع‬(View:)controllers, view models
‫البرمجية‬ ‫املكتبة‬(Library)
‫مجموعة‬‫من‬‫واجهة‬ ‫خالل‬ ‫من‬ ‫معين‬ ‫سلوك‬ ‫لتنفيذ‬ ‫اإلجرائيات‬
‫املطلوب‬ ‫السلوك‬ ‫تنفيذ‬ ‫يتم‬ ‫خاللها‬ ‫من‬ ‫والتي‬ ‫برمجية‬.
•‫السلوك‬ ‫استخدام‬ ‫إعادة‬
•‫منفصلة‬ ‫وحدات‬ ‫إلى‬ ‫التجزيء‬
•‫املثال‬ ‫سبيل‬ ‫ىلع‬:JQuery
‫البرمجية‬ ‫العمل‬ ‫أطر‬(Frameworks)
•‫عامة‬ ‫إجرائيات‬ ‫البرنامج‬ ‫يقدم‬ ‫خالله‬ ‫من‬ ‫والذي‬ ‫معين‬ ‫تجريد‬
‫برمجية‬ ‫أسطر‬ ‫خالل‬ ‫من‬ ‫خاص‬ ‫بشكل‬ ‫تعديلها‬ ‫يمكن‬ ‫والتي‬
‫املستخدم‬ ‫قبل‬ ‫من‬ ‫مكتوبة‬ ‫إضافية‬.
•‫تؤمن‬ ‫والتي‬ ‫االستخدام‬ ‫إلعادة‬ ‫قابلة‬ ‫عاملية‬ ‫عمل‬ ‫بيئة‬
‫كبيرة‬ ‫برمجية‬ ‫منصة‬ ‫من‬ ‫كجزء‬ ‫معينة‬ ‫إجرائيات‬.
•‫املثال‬ ‫سبيل‬ ‫ىلع‬:Angular, Ember, Backbone
‫البرمجية‬ ‫املنصة‬
•‫مبدأ‬Hollywood:
-Don’t call us, we’ll call you!
•‫التحكم‬ ‫آلية‬ ‫عكس‬
•‫التصريحية‬ ‫البرمجة‬ ‫أم‬ ‫باألوامر‬ ‫البرمجة‬(Imperative vs
Declarative Programming)
‫منصات‬JavaScript‫البرمجية‬
•‫الصفحة‬ ‫تطبيقات‬‫الواحدة‬
•Model-View-Controller (MVC) / Model-View-ViewModel
(MVVM) / Model-View-Whatever
-‫البيانات‬ ‫ربط‬(Data binding)‫التوجيه‬ ،(Routing)
•‫بالـ‬ ‫برمجية‬ ‫أسطر‬JS،‫التوسع‬ ،‫االستخدام‬ ‫إلعادة‬ ‫قابلة‬
‫التصحيح‬
•‫باالختبار‬ ‫املقادة‬ ‫البرمجة‬(Test driven development)
‫منصات‬JavaScript‫البرمجية‬
• Angular
• Ember
• Backbone
• React
• Aurelia
• Meteor
• Polymer
• Knockout
• Vue
• Mercury
‫إلى‬ ‫مقدمة‬
9
‫تاريخ‬Angular
•AngularJS
-‫قبل‬ ‫من‬ ‫صممت‬Misko Hevery
-‫يف‬ ‫أطلقت‬ ‫ما‬ ‫أول‬June 2012
-‫منصات‬ ‫أشهر‬ ‫من‬ ‫واحدة‬JS‫املستخدم‬ ‫جزء‬ ‫ىلع‬ ‫للعمل‬
•Angular
-‫كامل‬ ‫بشكل‬ ‫املنصة‬ ‫كتابة‬ ‫إعادة‬ ‫تم‬
-‫املكونات‬ ‫ىلع‬ ‫تعتمد‬(Component)
-‫اللوحية‬ ‫األجهزة‬ ‫تدعم‬
-‫الخادم‬ ‫جزء‬ ‫ىلع‬ ‫الحالة‬ ‫تحديث‬(Server-side rendering)
-‫قوالب‬(template)‫عالية‬ ‫كفاءة‬ ‫ذات‬
‫هي‬ ‫ما‬Angular‫؟‬
•‫فعالة‬ ‫ويب‬ ‫تطبيقات‬ ‫بناء‬ ‫يف‬ ‫مساعدة‬ ‫بنية‬ ‫لها‬ ‫منصة‬(dynamic:)
-HTML‫متغيرة‬ ‫الغير‬ ‫املستندات‬ ‫تعالج‬ ‫فقط‬
-Angular‫الفعالة‬ ‫التطبيقات‬ ‫وتدعم‬ ‫الثغرة‬ ‫هذه‬ ‫تعالج‬
-‫تعالج‬‫التخزين‬ ‫بنية‬ ‫بين‬ ‫التوافق‬ ‫عدم‬ ‫مشكلة‬‫العالقاتي‬‫ة‬
‫العمل‬ ‫وبنية‬‫الغرضية‬(Impedance mismatch)
-‫صممت‬‫مع‬‫التطبيقات‬ ‫مراعاة‬‫بالبيانات‬ ‫املقادة‬(CRUD Applications)
-‫منهج‬‫تصريحي‬(Declarative approach)
‫مفردات‬Angular
• One-way/Two-way Data
• Binding
• Components
• Directives
• Templates
• Routing
• Modules
• Service
• Provider
• Testing
Angular
•‫هي‬ ‫هل‬Angular 2‫فقط‬ ‫أم‬Angular‫؟‬
•‫لإلصدارات‬ ‫داللي‬ ‫تعيين‬(Semantic Versioning)
-<Major Version>.<Minor Version>.<Patch>
‫عملي‬ ‫تطبيق‬!
‫امللف‬ ‫ضمن‬ ‫التعليمات‬ ‫طبق‬
‫بنية‬
10
‫بنية‬Angular
•‫البرمجية‬ ‫الوحدة‬(Modular)
•‫واالعتمادية‬ ‫القوالب‬‫ىلع‬‫املكونات‬
(Component-based with Templates)
•‫الخدمات‬(Services)
‫البرمجية‬ ‫الوحدة‬ ‫بنية‬(Modular)
‫البرمجية‬ ‫الوحدة‬(Modular)
‫عملي‬ ‫تطبيق‬!
‫امللف‬ ‫ضمن‬ ‫التعليمات‬ ‫طبق‬
‫املكون‬(Component)
‫املكون‬ ‫هرمية‬(Component)
‫عملي‬ ‫تطبيق‬!
‫امللف‬ ‫ضمن‬ ‫التعليمات‬ ‫طبق‬
‫املوجهات‬Directives
•‫قوالب‬Angular‫فعالية‬ ‫ذات‬(dynamic.)
•‫املوجهات‬(Directives)‫لـ‬ ‫أوامر‬ ‫تعطي‬Angular‫إرسال‬ ‫بكيفية‬
‫إلى‬ ‫القوالب‬ ‫حالة‬ ‫تحديث‬DOM.
•‫يف‬ ‫تعريفها‬ ‫يمكن‬ ‫املوجهات‬Angular‫الترميز‬ ‫خالل‬ ‫من‬ ‫كصف‬:
@Directive
•‫املكون‬(Component)‫املوجهات‬ ‫من‬ ‫خاص‬ ‫نوع‬ ‫هو‬(Directives)
‫مرتبط‬‫بقالب‬(Template.)
•‫يف‬ ‫املوجهات‬ ‫من‬ ‫آخران‬ ‫نوعان‬Angular‫هما‬:
‫البنيوي‬(Structural)‫والوصفي‬(Attribute)
‫البنيوية‬ ‫املوجهات‬Structural Directives
•‫حذف‬ ‫أو‬ ‫تعديل‬ ،‫إضافة‬ ‫طريق‬ ‫عن‬ ‫العرض‬ ‫بنية‬ ‫تعديل‬ ‫لك‬ ‫تتيح‬
‫الـ‬ ‫من‬ ‫عناصر‬DOM
•‫الـ‬ ‫بنية‬ ‫يف‬ ‫وأحفاده‬ ‫مضيف‬ ‫عنصر‬ ‫ىلع‬ ‫بنيوي‬ ‫موجه‬ ‫تطبيق‬DOM
‫بنيوية‬ ‫موجهات‬‫مشهورة‬
• NgIf
<div *ngIf=“selectedDish”> . . . </div>
• NgFor
<md-list-item *ngFor="let dish of dishes">
• NgSwitch
‫عملي‬ ‫تطبيق‬!
‫امللف‬ ‫ضمن‬ ‫التعليمات‬ ‫طبق‬
‫القادمة‬ ‫للجلسة‬ ‫الواجب‬
‫شكرًا‬!

Contenu connexe

Tendances

باللغة العربية jQuery دورة
 باللغة العربية jQuery دورة باللغة العربية jQuery دورة
باللغة العربية jQuery دورةanees abu-hmaid
 
باللغة العربية HTML5 دورة
باللغة العربية HTML5 دورة باللغة العربية HTML5 دورة
باللغة العربية HTML5 دورة anees abu-hmaid
 
شرح برنامج الورود
شرح برنامج الورودشرح برنامج الورود
شرح برنامج الورودHanaa Ahmed
 
الجديد فى برنامج Word 2010
الجديد فى برنامج Word 2010الجديد فى برنامج Word 2010
الجديد فى برنامج Word 2010Hanaa Ahmed
 
باللغة العربية CSS دورة
  باللغة العربية CSS دورة   باللغة العربية CSS دورة
باللغة العربية CSS دورة anees abu-hmaid
 
java script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربيةjava script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربيةanees abu-hmaid
 
الدرس السادس عشر
الدرس السادس عشرالدرس السادس عشر
الدرس السادس عشرAnas Aloklah
 
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266جامعة القدس المفتوحة
 
الفصل الأول فى الصف الأول الأعد
الفصل الأول فى الصف الأول الأعدالفصل الأول فى الصف الأول الأعد
الفصل الأول فى الصف الأول الأعدHanaa Ahmed
 
[C++ Tutorial ] #9 Classes
[C++ Tutorial ] #9 Classes[C++ Tutorial ] #9 Classes
[C++ Tutorial ] #9 ClassesGhadeer AlHasan
 
باللغة العربية SASS دورة
  باللغة العربية SASS دورة   باللغة العربية SASS دورة
باللغة العربية SASS دورة anees abu-hmaid
 
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005Hanaa Ahmed
 
باللغة العربية HTML دورة
  باللغة العربية HTML دورة   باللغة العربية HTML دورة
باللغة العربية HTML دورة anees abu-hmaid
 
كتاب تعلم Html5 css3
كتاب تعلم Html5 css3كتاب تعلم Html5 css3
كتاب تعلم Html5 css3titifcom
 

Tendances (20)

Angular js دورة
Angular js دورةAngular js دورة
Angular js دورة
 
باللغة العربية jQuery دورة
 باللغة العربية jQuery دورة باللغة العربية jQuery دورة
باللغة العربية jQuery دورة
 
باللغة العربية HTML5 دورة
باللغة العربية HTML5 دورة باللغة العربية HTML5 دورة
باللغة العربية HTML5 دورة
 
شرح برنامج الورود
شرح برنامج الورودشرح برنامج الورود
شرح برنامج الورود
 
الجديد فى برنامج Word 2010
الجديد فى برنامج Word 2010الجديد فى برنامج Word 2010
الجديد فى برنامج Word 2010
 
شرح Word
شرح Wordشرح Word
شرح Word
 
ويب كويست
ويب كويستويب كويست
ويب كويست
 
الدرس
الدرسالدرس
الدرس
 
باللغة العربية CSS دورة
  باللغة العربية CSS دورة   باللغة العربية CSS دورة
باللغة العربية CSS دورة
 
java script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربيةjava script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربية
 
الدرس السادس عشر
الدرس السادس عشرالدرس السادس عشر
الدرس السادس عشر
 
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
اسئلة نهائية لمقرر تقنية تصميم صفحات الويب - 1266
 
الفصل الأول فى الصف الأول الأعد
الفصل الأول فى الصف الأول الأعدالفصل الأول فى الصف الأول الأعد
الفصل الأول فى الصف الأول الأعد
 
[C++ Tutorial ] #9 Classes
[C++ Tutorial ] #9 Classes[C++ Tutorial ] #9 Classes
[C++ Tutorial ] #9 Classes
 
باللغة العربية SASS دورة
  باللغة العربية SASS دورة   باللغة العربية SASS دورة
باللغة العربية SASS دورة
 
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005
الجزء العملى فى منهج الصف الثالث الإعدادى Visual Basic.Net 2005
 
باللغة العربية HTML دورة
  باللغة العربية HTML دورة   باللغة العربية HTML دورة
باللغة العربية HTML دورة
 
كتاب تعلم Html5 css3
كتاب تعلم Html5 css3كتاب تعلم Html5 css3
كتاب تعلم Html5 css3
 
Moodle plugins programing manual
Moodle plugins programing manualMoodle plugins programing manual
Moodle plugins programing manual
 
[C++ Tutorial] #8 Files
[C++ Tutorial] #8 Files[C++ Tutorial] #8 Files
[C++ Tutorial] #8 Files
 

Similaire à Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4

مقدمة عن بايثون / جانقو
مقدمة عن بايثون / جانقومقدمة عن بايثون / جانقو
مقدمة عن بايثون / جانقوlunarhalo
 
دراسة الطرق المثلى لتحسين أداء تطبيقات الوب
دراسة الطرق المثلى لتحسين أداء تطبيقات الوبدراسة الطرق المثلى لتحسين أداء تطبيقات الوب
دراسة الطرق المثلى لتحسين أداء تطبيقات الوبMouhamad Kawas
 
عرض الدوائر الرقمية
عرض الدوائر الرقميةعرض الدوائر الرقمية
عرض الدوائر الرقميةتقانة
 
Computer 2nd-preparatory-second-term- (10)
Computer 2nd-preparatory-second-term- (10)Computer 2nd-preparatory-second-term- (10)
Computer 2nd-preparatory-second-term- (10)khawagah
 
Powershell
PowershellPowershell
PowershellF-S
 
الانترنت 1
الانترنت 1الانترنت 1
الانترنت 1Asma7056
 
توزيع المنهج للمرحلة الاعدادية
توزيع المنهج للمرحلة الاعداديةتوزيع المنهج للمرحلة الاعدادية
توزيع المنهج للمرحلة الاعداديةاحمد ذكرى
 
وائل
وائلوائل
وائلWAILD
 
وائل
وائلوائل
وائلWAILD
 
Www.kutub.info 5727
Www.kutub.info 5727Www.kutub.info 5727
Www.kutub.info 5727Adel Totott
 

Similaire à Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4 (20)

Bootstrap-1
Bootstrap-1Bootstrap-1
Bootstrap-1
 
Lesson10 Create Queries
Lesson10 Create QueriesLesson10 Create Queries
Lesson10 Create Queries
 
مقدمة عن بايثون / جانقو
مقدمة عن بايثون / جانقومقدمة عن بايثون / جانقو
مقدمة عن بايثون / جانقو
 
دراسة الطرق المثلى لتحسين أداء تطبيقات الوب
دراسة الطرق المثلى لتحسين أداء تطبيقات الوبدراسة الطرق المثلى لتحسين أداء تطبيقات الوب
دراسة الطرق المثلى لتحسين أداء تطبيقات الوب
 
Cds
CdsCds
Cds
 
Cds
CdsCds
Cds
 
Web Elements
Web ElementsWeb Elements
Web Elements
 
عرض الدوائر الرقمية
عرض الدوائر الرقميةعرض الدوائر الرقمية
عرض الدوائر الرقمية
 
Computer 2nd-preparatory-second-term- (10)
Computer 2nd-preparatory-second-term- (10)Computer 2nd-preparatory-second-term- (10)
Computer 2nd-preparatory-second-term- (10)
 
Lesson14 Create Forms
Lesson14 Create FormsLesson14 Create Forms
Lesson14 Create Forms
 
Powershell
PowershellPowershell
Powershell
 
Web Design
Web DesignWeb Design
Web Design
 
Arcgis l3
Arcgis l3Arcgis l3
Arcgis l3
 
Arcgis l3
Arcgis l3Arcgis l3
Arcgis l3
 
الانترنت 1
الانترنت 1الانترنت 1
الانترنت 1
 
Microservice pattern
Microservice patternMicroservice pattern
Microservice pattern
 
توزيع المنهج للمرحلة الاعدادية
توزيع المنهج للمرحلة الاعداديةتوزيع المنهج للمرحلة الاعدادية
توزيع المنهج للمرحلة الاعدادية
 
وائل
وائلوائل
وائل
 
وائل
وائلوائل
وائل
 
Www.kutub.info 5727
Www.kutub.info 5727Www.kutub.info 5727
Www.kutub.info 5727
 

Plus de Molham Al-Maleh

مقدمة إلى تطوير تطبيقات الجوال الهجينة باستخدام Ionic 3
مقدمة إلى تطوير تطبيقات الجوال الهجينة باستخدام Ionic 3مقدمة إلى تطوير تطبيقات الجوال الهجينة باستخدام Ionic 3
مقدمة إلى تطوير تطبيقات الجوال الهجينة باستخدام Ionic 3Molham Al-Maleh
 
بناء واجهة برمجية باستخدام NodeJS MongoDB و Mongoose
بناء واجهة برمجية باستخدام NodeJS MongoDB و Mongooseبناء واجهة برمجية باستخدام NodeJS MongoDB و Mongoose
بناء واجهة برمجية باستخدام NodeJS MongoDB و MongooseMolham Al-Maleh
 
مقدمة إلى MongoDB والتعرف على Mongoose ODM
مقدمة إلى MongoDB والتعرف على Mongoose ODMمقدمة إلى MongoDB والتعرف على Mongoose ODM
مقدمة إلى MongoDB والتعرف على Mongoose ODMMolham Al-Maleh
 
مقدمة إلى NodeJS والتعرف على منصة ExpressJS
مقدمة إلى NodeJS والتعرف على منصة ExpressJSمقدمة إلى NodeJS والتعرف على منصة ExpressJS
مقدمة إلى NodeJS والتعرف على منصة ExpressJSMolham Al-Maleh
 
Exploiting Big Data in Time Series Forecasting: A Cross-Sectional Approach
Exploiting Big Data in Time Series Forecasting: A Cross-Sectional ApproachExploiting Big Data in Time Series Forecasting: A Cross-Sectional Approach
Exploiting Big Data in Time Series Forecasting: A Cross-Sectional ApproachMolham Al-Maleh
 
Data Visualization With Trendalyzer
Data Visualization With TrendalyzerData Visualization With Trendalyzer
Data Visualization With TrendalyzerMolham Al-Maleh
 
Visualizing Big Data with augmented and virtual reality
Visualizing Big Data with augmented and virtual realityVisualizing Big Data with augmented and virtual reality
Visualizing Big Data with augmented and virtual realityMolham Al-Maleh
 

Plus de Molham Al-Maleh (8)

مقدمة إلى تطوير تطبيقات الجوال الهجينة باستخدام Ionic 3
مقدمة إلى تطوير تطبيقات الجوال الهجينة باستخدام Ionic 3مقدمة إلى تطوير تطبيقات الجوال الهجينة باستخدام Ionic 3
مقدمة إلى تطوير تطبيقات الجوال الهجينة باستخدام Ionic 3
 
بناء واجهة برمجية باستخدام NodeJS MongoDB و Mongoose
بناء واجهة برمجية باستخدام NodeJS MongoDB و Mongooseبناء واجهة برمجية باستخدام NodeJS MongoDB و Mongoose
بناء واجهة برمجية باستخدام NodeJS MongoDB و Mongoose
 
مقدمة إلى MongoDB والتعرف على Mongoose ODM
مقدمة إلى MongoDB والتعرف على Mongoose ODMمقدمة إلى MongoDB والتعرف على Mongoose ODM
مقدمة إلى MongoDB والتعرف على Mongoose ODM
 
مقدمة إلى NodeJS والتعرف على منصة ExpressJS
مقدمة إلى NodeJS والتعرف على منصة ExpressJSمقدمة إلى NodeJS والتعرف على منصة ExpressJS
مقدمة إلى NodeJS والتعرف على منصة ExpressJS
 
تعلم Angular 4
تعلم Angular 4تعلم Angular 4
تعلم Angular 4
 
Exploiting Big Data in Time Series Forecasting: A Cross-Sectional Approach
Exploiting Big Data in Time Series Forecasting: A Cross-Sectional ApproachExploiting Big Data in Time Series Forecasting: A Cross-Sectional Approach
Exploiting Big Data in Time Series Forecasting: A Cross-Sectional Approach
 
Data Visualization With Trendalyzer
Data Visualization With TrendalyzerData Visualization With Trendalyzer
Data Visualization With Trendalyzer
 
Visualizing Big Data with augmented and virtual reality
Visualizing Big Data with augmented and virtual realityVisualizing Big Data with augmented and virtual reality
Visualizing Big Data with augmented and virtual reality
 

Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4