بسم الله الرحمن الرحيم وصلي الله وسلم وبارك علي النبي محمد صلى الله عليه وسلم هذا الحساب سيكون خاص بالتقنيه والأشياء البرمجيه التي سأشاركها معكم ان شاء الله كما وعدناكم هذه بداية سلسلة تعليميه لdart&flutter ندعو الله ان يوفقنا الي ما يحبه ويرضاه #U_1_P_1 لغة البرمجة Dart و إطار العمل Flutter عناصر التي يتمحور حولها الموضوع • انتقال المطورين لدارت و فلاتر • ما هي لغة دارت • ما هو إطار العمل فلاتر • مميزات إطار العمل فلاتر • عيوب إطار العمل فلاتر »» انتقال المطورين لدارت و فلاتر بما إن المستخدمين حول العالم بيتعاملوا مع أنظمة تشغيل متنوعة، والشركات دايماً بتسعى توفر تطبيقاتها للكل بأقل تكلفة ومجهود ممكن، هنا بيبقى إطار العمل "فلاتر" (Flutter) مع لغة "دارت" (Dart) هو الحل الأمثل والاختيار الأول للكثير من الشركات. وفترات طويلة قبل ما يظهر فلاتر، كان المبرمجين مضطرين يستخدموا عدة لغات برمجية عشان يطوروا تطبيق واحد يخدم أنظمة التشغيل المختلفة. يعني على سبيل المثال، كان لازم يكتبوا كود بـ لغة سويفت (Swift) عشان أنظمة iOS، وكود تاني بـ لغة كوتلن (Kotlin) للـ Android، ولغة جافا (Java) لتطبيقات سطح المكتب، وهكذا.. وده كان بيأخذ وقت ومجهود مضاعف. وفضلت الشركات ماشية على النهج ده لسنوات، لحد ما ظهرت فكرة "تطبيقات المنصات المتعددة" (Multi-platform) وانتشرت بقوة. والفكرة ببساطة إنك تكتب "كود برمجي واحد" باستخدام إطار عمل (Framework) معين، وده بيترجم نفسه ويطلع لك نسخ شغالة على كل أنظمة التشغيل، سواء موبايل زي الـ iOS والـ Android، أو حتى أجهزة الكمبيوتر زي الويندوز والماك واللينكس. ومن هنا بالظبط، جاءت فكرة تطوير إطار العمل "فلاتر" (Flutter)، واللي بيمكّنك من بناء تطبيقات تشتغل على كل المنصات دي من خلال قاعدة برمجية واحدة (Single Codebase). طبعاً فيه أطر عمل تانية بتسمح ببناء تطبيقات متعددة المنصات زي Ionic و Xamarin و React Native، لكن فلاتر بيفضل هو الأشهر والأكثر طلباً؛ وده لسهولة استخدامه، وكمان لقوة أدائه العالية اللي بتخليه خيار ممتاز وموثوق فيه لأي شركة. »» ما هي لغة دارت دارت هي لغة برمجة طورتها شركة جوجل، وكثير من المطورين بيطلقوا عليها "خليفة الجافاسكريبت"، وده لأنها جات تحل كتير من القيود والتحديات اللي كان بيواجهها مطورين الويب والتطبيقات. اللغة دي بتتميز ببنية نظيفة جداً، وسهلة في التعلم، وأداؤها عالي بشكل ملحوظ. وكمان هي لغة كائنية التوجه (Object-Oriented) وبتدعم البرمجة الوظيفية (Functional Programming)، وده بيدي المطورين مرونة كبيرة جداً في تصميم وتنفيذ تطبيقاتهم. من أهم نقاط القوة في دارت إنها بتقدر تترجم الكود المكتوب بيها لكود أصلي (Native Code) خاص بالمنصة اللي بتشتغل عليها. والميزة دي بتضمن أداء ممتاز للتطبيقات، لأنها بتشتغل مباشرة على جهاز المستخدم من غير ما تحتاج أي طبقة وسيطة. وزياده على كده، دارت بتوفر نظام قوي لإدارة الحزم اسمه Pub، واللي بيحتوي على مكتبة ضخمة من الحزم والمكونات الجاهزة للاستخدام، وده بيسرّع عملية التطوير بشكل كبير جداً. مثال بسيط لطباعة جملة " بسم الله الرحمن الرحيم " بلغة دارت: void main (){ print('بسم الله الرحمن الرحيم ') } ولو عندك خلفية مسبقة بأي لغة برمجة زي جافا (Java) أو جافاسكريبت (JavaScript) أو سي شارب (C#)، هتلاقي إن تعلم لغة دارت من أسهل الحاجات اللي ممكن تعملها، لأن البنية بتاعتها قريبة جداً من اللغات دي. »» ما هو إطار العمل فلاتر إيه هو فلاتر (Flutter)؟ فلاتر هو إطار عمل مفتوح المصدر طورته شركة جوجل، وبيُستخدم لبناء تطبيقات متعددة المنصات من خلال كود برمجي واحد مكتوب بلغة دارت (Dart). اللي بيميز فلاتر إنه بيمكّن المطورين من إنشاء تطبيقات أنيقة وسريعة الأداء تشتغل على أنظمة Android و iOS، وكمان على الويب، وحتى على أجهزة سطح المكتب زي Windows و MacOS و Linux. من أبرز المزايا اللي بتخلي فلاتر خيار مميز للمطورين: 1. خاصية Hot Reload: دي ميزة بتوفر تجربة تطوير سريعة جداً، حيث بتخلي المطور يشوف التغييرات اللي بيعملها على الكود بشكل فوري ومباشر، من غير ما يحتاج يعيد تشغيل التطبيق من الأول، وده بيوفر وقت وجهد كبير. 2. أداء قوي ومستقل: فلاتر مش بيعتمد على مكونات الواجهة الأصلية للنظام، لكن بدلاً من كده بيرسم الواجهة باستخدام محرك رسومي خاص بيه اسمه Skia. والميزة دي بتضمن أداء عالي جداً وثابت على كل المنصات. 3. مكتبة ضخمة من الواجهات (Widgets): فلاتر بوفر مكتبة ضخمة من الواجهات الجاهزة واللي بتسمى Widgets، وده بيسهل على المطورين بناء واجهات مستخدم جذابة وعصرية بسرعة وكفاءة عالية. وبفضل المزايا دي كلها، فلاتر بيبقى خيار مثالي لأي شركة أو مطور عايز يطور تطبيقات عالية الجودة، وبأقل جهد ووقت ممكن. »» مميزات إطار العمل فلاتر أهم المميزات اللي بتخلي فلاتر من أكتر أطر العمل شعبية وانتشاراً في مجال تطوير التطبيقات متعددة المنصات: 1. كود واحد لجميع المنصات: مع فلاتر، مش هتحتاج تكتب تطبيق منفصل لكل نظام تشغيل. كود برمجي واحد بس بيقدر يشتغل على Android و iOS والويب وأجهزة سطح المكتب، وده بيوفر وقت ومجهود كبير جداً على فرق التطوير. 2. أداء عالي جداً: فلاتر مش بيعتمد على بناء طبقة إضافية فوق مكونات النظام الأصلية (Native Widgets)، لكن بدلاً من كده بيرسم كل حاجة بنفسه باستخدام المحرك الرسومي الخاص بيه Skia. والميزة دي بتضمن أداء قوي وسلس جداً على كل المنصات. 3. تطوير سريع باستخدام Hot Reload: دي واحدة من أقوى المميزات في فلاتر، حيث أي تغييرات بتعملها في الكود بتظهر نتائجها فوراً على الشاشة، من غير ما تحتاج تعيد تشغيل التطبيق من الأول، وده بيسرّع عملية التطوير والاختبار بشكل ملحوظ. 4. مكونات جاهزة كثيرة (Widgets): فلاتر بيقدم مكتبة ضخمة من المكونات الجاهزة واللي بتسمى Widgets، ودي بتخلي بناء واجهات مستخدم جميلة وعصرية حاجة سهلة وسريعة، وموفرة للمطورين كتير من الوقت. 5. مجتمع ضخم وتحديثات مستمرة: فلاتر مدعوم بشكل مباشر من شركة جوجل، وليه مجتمع مطورين ضخم حول العالم، وده بيضمن إنك دايماً هتلاقي تحديثات مستمرة، وحلول لأي مشكلة ممكن تواجهك، ومصادر تعلم كتيرة متاحة. وبفضل المزايا دي كلها، فلاتر بيبقى الاختيار الأول للكثير من الشركات والمطورين اللي بيدوروا على إطار عمل قوي وموثوق فيه لتطوير تطبيقاتهم. »» عيوب إطار العمل فلاتر بالرغم من إن فلاتر بيتمتع بمزايا قوية جداً، إلا إنه ما بيخلوش من بعض العيوب اللي ممكن تأثر على اختيارك ليه، خصوصاً في مشاريع معينة. وفيما يلي أبرز العيوب اللي لازم تاخدها في اعتبارك: 1. حجم التطبيق كبير: تطبيقات فلاتر غالباً بتكون أكبر حجماً مقارنة بالتطبيقات الأصلية (Native)، وده بسبب وجود محرك الرسوميات ومكتبات فلاتر نفسها داخل التطبيق، وده ممكن يكون مشكلة لو كنت مهتم بحجم التطبيق النهائي. 2. استهلاك مساحة عالية من الذاكرة: بعض الأجهزة القديمة أو ضعيفة الإمكانيات ممكن تعاني من أداء أقل سلاسة، أو استهلاك أكبر للذاكرة مقارنة بالتطبيقات الأصلية، وده لازم يتراعى عند استهداف شريحة كبيرة من المستخدمين بأجهزة متنوعة. 3. عدم دعم بعض ميزات النظام بشكل كامل: بالرغم من التقدم الكبير اللي بيحصل، إلا إن فلاتر أحياناً بيفتقر للدعم الكامل لبعض ميزات النظام الأصلية زي مكونات معينة للكاميرا، البلوتوث، أو الخلفيات، وده ممكن يتطلب استخدام مكونات Native بلغات زي Kotlin أو Swift عشان تتجاوز المشكلة دي. 4. مجتمع أصغر مقارنة ببعض الأطر الأخرى: بالرغم من إن المجتمع الخاص بفلاتر بينمو بشكل كبير، إلا إنه لسه أصغر من مجتمعات أطر تانية زي React Native أو الأطر الأصلية، وده ممكن يؤدي لنقص في بعض الحزم الجاهزة أو قلة الدعم في بعض الحالات الخاصة. 5. التعلم الإضافي للغة دارت: المطور بيحتاج يتعلم لغة دارت (Dart)، ودي لغة مش مستخدمة كتير خارج بيئة فلاتر، وده ممكن يبقى حاجز للمطورين الجدد أو اللي بيدوروا على لغة ليها استخدامات أوسع في مجالات تانية. 6. تحديات التوافق على المدى الطويل: بالرغم من إن فلاتر مناسب جداً للتطبيقات الضخمة والتجارية، إلا إن بعض المطورين بيشوفوا إن الصيانة طويلة المدى لتطبيقات ضخمة جداً ممكن تكون أكثر تعقيداً مقارنة بالتطبيقات المبنية بأطر Native. وبشكل عام، العيوب دي مش معناه إن فلاتر خيار سيئ، لكن المهم إنك تدرسها كويس وتقيّمها حسب طبيعة المشروع اللي شغال عليه واحتياجات فريق التطوير بتاعك. -------------بارك الله لكم سعيكم ونفع بكم -------- * اللَّهُمَّ إِنِّي أَسْأَلُكَ عِلْمًا نَافِعًا، وَرِزْقًا طَيِّبًا، وَعَمَلًا مُتَقَبَّلًا اللهم انفعني بما علمتني ، وعلمني ما ينفعني ، وارزقني علما تنفعني به اللهم اني أعوذ بك من علم لا ينفع #flutter #dart