لغة برمجة dart وبيئة عمل flutter أهم الميزات والعيوب من خبرتي لمساعدتك على الإختيار!

لغة برمجة dart وبيئة عمل flutter أهم الميزات والعيوب من خبرتي لمساعدتك على الإختيار!
لغة برمجة dart وبيئة عمل flutter

إذا كنت مبرمج تطبيقات هواتف ذكية او تفكر في الدخول للمجال، ستكون قد سمعت عن لغة برمجة dart وبيئة عمل flutter في هدا المقال سأذكر لك أهم الميزات والعيوب من خبرتي لمساعدتك على الإختيار.

قبل النبدأ ، إذا كنت مهتم بالبرمجة وخصوصًا flutter و dart وبرمجة تطبيقات الهاتف لا تنسى الاشتراك معنا في القائمة البريدية لتخصل على المعلومات أول بأول .

طبعًا كمبرمج، تحتاج أن تعرف قبل ما تبدأ تتعلم تقنية جديدة الكثير من المعلومات المتعلقة بهذه التقنية، أشياء مثل الإمكانيات، الحدود، العوائق والتطبيقات والمكاتب المترافقة مع هذه التقنية، هذه الأشياء هي السبب الرئيسي اللي بيدفعك تستثمر وقتك في تعلم التقنية أو اللغة

نبدأ بميزات لغة برمجة dart وبيئة عمل flutter :

1- إعادة التحميل السريعة – Hot Reload

واحدة من أهم الميزات في flutter هو قدرة البرنامج على إعادة بناء نفسه بسرعة وقت عملية التطبيق وال Debug – يعني تغيير شكل الواجهات ، الألوان، وأماكن العناصر يتم بسرعة جبارة مقارنة بالجافا )أجزاء من الثانية) مما يقلل من الوقت الضائع في إنتظار تشغيل البرنامج.

2- العمل على منصتي الاندرويد والIOS (بشكل أسهل)

كثير من بيئات العمل توفر القدرة على عمل تطبيقات تعمل على المنصتين، لكن في الفلاتر يكون الامر أسهل بكثير، فالفلاتر يوفر العديد من العناصر التي تطابق ما يمكن برمجته في المنصات الأساسية وجدير بالذكر انه الفلاتر يوفر عناصر تدعم الMaterial Design Principles و كذلك ال Cupertino (IOS – Style).

إقرأ أيضا :ما هي فلاتر Flutter ولماذا عليك تعلمها في عام 2020 !

3- العمل بلغة دارت:

لغة برمجة dart من اللغات المحببة لي هذه الفترة بعد تجربتها وتعلم إستخدامها، من ميزات اللغة أن منحنى التعلم فيها بسيط وفيها الكثير من الأمور المميزة التي جعلت جوجل تقوم ببناء بيئة العمل فلاتر عليها، حتى ما اخوض كثير في الدارت يمكن القول أنها لغة مشابه للجافا والسي شارب لكن مع بعض الاختلافات الطفيفة

4- الـ Widgets او العناصر

العناصر او الWidget يعتبر المكون الأساسي لكل شي في تطبيقات فلاتر (تقريبًا)، بداية من التطبيق نفسه ويعتبر عنصر نهاية بالازرار والاعمدة والصفوف والقوائم. والجميل في الفلاتر انه عدد العناصر فيه كبيرة جدًا وكذلك من السهل عمل عناصر خاصة بك، مقارنة ببعض بيئات العمل التي لا توفر نفس العدد من العناصر مع البيئة نفسها

5- اختلاف الشكل على حسب النظام الذي يعمل عليه الكود

في الفلاتر يمكنك بكل بساطة تحديد نوع الجهاز قبل البدء بعملية إظهار الواجهات حتى تعطي الواجهة نفس الشكل الذي يتمتع به التطبيق الحقيقي عن طريق استخدام دوال مثل Platform.isIOS أو Platform.isAndroid يجعل من الممكن إستعمال كود واحد يحمل طابعين مختلفين بأقل عدد ممكن من التعديلات.

6- ( مجتمع الفلاتر وجوجل)

تم تصنيف الفلاتر في المركز الثالث في ترتيب أشهر ال Repos في Github لعام 2019، وكذلك واحدة من اكثر عشر مشاريع مفتوحة المصدر سرعة في الانتشار، وبرغم عمرها الصغير فهو مشروع مبشر بخير والمكتبات التي توفر حلول جديدة يتم إضافتها بإستمرار، ومن رأيي الشخصي اظن انه يستحق التعلم، لا ننسى أيضًا دعم جوجل لها !


طبعًا نأتي للإشياء التي ممكن نعتبرها عيوب في الفلاتر ولازم نذكرها عشان نوزن الفكرة ونشوف هل الموضوع يستاهل التعلم ولا لا.

1- دعم الموبايل فقط للProduction

برغم أن العمل قائم على جعل بيئة عمل فلاتر تدعم الويب، وسطح المكتب، لكن الى الان الموضوع لا زال في طور الbeta لذلك إلى أن يتم الإعلان عن نسخة ثابتة وقادرة على إصدار تطبيقات سطح مكتب وويب جاهوى للاطلاق في سوق العمل، اعتبر هذه النقطة شيء سيء مقارنة بلغة مثل الJavaScript.

2- الكود المصدري الواحد

يختلف الفلاتر عن لغات البرمجة الباقية مثل الويب والاندرويد عن أنه الكود يكون في مكان واحد ومافي لغة منفصلة تكون مسؤولة عن الواجهات أو UI يعني في الفلاتر لا وجود للXML , HTML, CSS
وكله يكون مكتوب بلغة الdart قد تكون هذه نقطة مزعجة للبعض ولكن عن نفسي قدرت اتأقلم مع الموضوع مع الممارسة، وجدير بالذكر أن React Native يعاني من نفس الإشكالية

3- ترتيب شجرة العناصر او الWidget Tree

مثل ماذكرنا بالميزات أنه كل شي يمكن التعبير عنه بعنصر، والعناصر ممكن تتشعب داخل بعضها البعض بشكل هرمي مما يصعب أحيانا قراءة الكود، مقارنة بالXML في الاندرويد، من المهم تعلم طرق ترتيب بسيطة من البداية علشان ما تنتهي بكود عملاق ما تعرف تقراءه

4- State management

واحدة من النقاط الصعب شرحها في هذا الموضوع، لكن ببساطة.. الواجهات في الفلاتر تكون معتمدة على حالتها أو الstate وبتغير الstate يتم إعادة رسم العناصر، عملية مثل هذه تحتاج لنظام معين لإدارتها، إلى الان مافي حاجة رسمية قوية مثل الMVC كنمط ممكن الاعتماد عليه وكلها أمور تعود على المبرمج وارتياحه، ( جوجل قبل فترة ذكرت انه الproviders , bloc حلول جيدة)

5- حجم التطبيق

مشكلة الفلاتر انه عند عمل compile للتطبيق فهو يحمل المكتبات، وال Engine وملفات كثيرة كمان ، وبالتالي حجم التطبيق يكون أكبر نسبيا من نظيراته الNative


إلى هنا أكون وصلت لنهاية المقال، أتمنى أكون افدتك عن طريق أعطاءك فكرة مبسطة عن عالم الفلاتر والامكانيات وبعض المشاكل والصعوبات، لا تنسى مشاركة المنشور ليفيد المبرمجين وأتمنى لك تكويدًا سعيدًا.

في منشورات قادمة نتكلم عن برمجة التطبيقات بشكل اعمق وتفاصيل ومصادر مهمة للتعلم 🙂

  • Leave a Comment