ahmdsat
عضو شرف
المساهمات :
42
النقاط :
82
التقيم :
1
الاوسمة :
2018-12-31, 1:40 pm
بسم الله الرحمان الرحيم .
في عالم البرمجة دائما ما يكون هناك جديد من التقنيات و الأدوات التي تساعد المطورين لكن قليلا منها ما يبقى و يترك تاثيرا . لكن هناك تقنيات من الوهلة الأولى واضح انها وجدت لتبقى و فلاتر بلا شك ينتمي لهذه القائمة .
ماهو فلاتر Flutter ؟
فلاتر ضد بقية المنافسين في السوق ؟
المنافسة ستكون بين ريكات ناتيف و زامرن و ايونيك و فلاتر لكن يجب التنبيه إلى :
ماهو الجديد في فلاتر ؟
لغة دارت ؟ لماذا ؟
[list="box-sizing: border-box; margin-bottom: 1rem;"]
[*]لغة دارت هي لغة برمجة كائنية التوجه و تنذ كل مفاهيم البرمجة الكائنية منها تعدد الوراثة تحت اسم mixins
[*]يتحكم فريق فلاتر بشكل كامل في لغة دارت لكي تناسب فلاتر في الاونة الاخيرة حصل تغير كبير على اللغة لكي تناسب فلاتر فمثلا تم جعل كلمة new "التي سيتعرف عليها مبرمج الجافا و السي شارب " كلمة اختيارية فقط لكي يتم تحسين طريقة كتابة الواجهات
[*]اثناء البرمجة تستخدم لغة دارت مترجم JIT : Just in time و التي بفضلها ظهرت خاصية الهوت ريلود و هي انه عند تغير الكود يتم ارسال فقط البايتات التي تم تغييرها بالتالي حصل التغير في برنامجك في اقل من ثانية و يبقى محافظا على حالته
[*]أثناء نشر التطبيق تستخدم دارت مترجم AOT : Ahead of time و الذي ينتج لنا تطبيق اصلي و بالتالي اداء رائع
[*]لغة دارت تم عملها لكي تكون سهلة لمبرمج الجافا سكربت و مبرمجي الجافا و السي شارب ايضا مثال :
[/list]
هل توجد شركات كبيرة تستخدم فلاتر الان ؟
نعم و من بينها جوجل طبعا و لقد نشرت جوجل صفحة فيها كل التطبيقات المشهورة التي تم عملها باستخدام فلاتر و هذا رابط الصفحة و هذه ايضا مقالةتم نشرها هذا الأسبوع حول أكبر شركات التطوير التي بدأت باستخدام فلاتر
الجمع بين تجربة المستخدم و تجربة المطور ؟
لقد اشرت لهذا سابق لكن سنتحدث الان بالتفضيل :
تجربة المطور :
[list="box-sizing: border-box; margin-bottom: 1rem;"]
[*]تطبيقات الهواتف الذكية هي واجهة تعبر عن الفكر أو الشركة لذلك التصميم يجب ان يكون عصري و جميل و لهذا لا يجب أن تقول لا ابدا مصممك و تحصل على هذه الحرية مع فلاتر لأن لديك حرية رسم بكسل على الشاشة
[*]فلاتر هو عبارة عن اضافات و لست ملزما بأداء معينة مثلا فيجوال ستوديو الآن فلاتر حاليا بشكل رسمي متوفر لكل من أندرويد ستوديو + intellij idea + VS code
[*]الهوت ريلود و الذي يجعل من دورة حياة تطوير التطبيق سريعة جدا لانك اذا قمت بتغيير ما على الكود لن تظهر لانتظاره وقتا طويلا لكي ترى النتيجة و هذا مناسب جدا للأشخاص الذين لديهم خلفية في الويب
[*]التثبيت سهل جدا لان فلاتر عبارة عن مستودع مستضاف على القيت بالتالي التحميل و التحديث و الانتقال بين الفروع يكون عبر اوامر ال git فقط
[/list]
تجربة المستخدم
[list="box-sizing: border-box; margin-bottom: 1rem;"]
[*]يحصل المستخدم على تطبيق بواجهة جميلة جدا لها نفس الشكل و التجربة على كلا النظامين هذا بسبب حجم مكتبة المكونات القياسية التي يوفرها فلاتر
[*]التطبيق الناتج يكون اصلي لذلك سيحصل المستخدم على اداء علي اثناء الاستخدام
[/list]
هل فلاتر مناسب لك ؟
هذه النقطة فيها بعض الاختلاف فلاتر مازال لم يصل للاصدار الرسمي ومع ذلك يتم استخدامه في تطبيقات كبيرة لكن مع ذلك يوجد محدوديات في الوقت الحالي حول ما يمكن القيام به حاليا أكبر نقطة ضعف لفلاتر هي دعم الخرائط التفاعلية و التي تعتبر مشكلة هندسية بالنسبة لفريق فلاتر و العمل جاري عليها . والمنطقة الثانية هي ان فلاتر يستخدم مكتبة skia مخصصة لرسم الاشكال الثنائية الابعاد فقط لذلك اذا كنت تفكر في أي عمل يتضمن رسومات و تصاميم ثلاثية الأبعاد ففلاتر ليس مناسب لك
مصادر تعلم فلاتر ؟
الان بعد قرائتك للمقال ربما اعجبك فلاتر و تريد إلقاء نظرة وإليك أهم المصادر التي يمكنك البدء منها لتعلم فلاتر
[list="box-sizing: border-box; margin-bottom: 1rem;"]
[*]التوثيق الرسمي و هو الصدر الأول والأهم للمبتد أو المتقدم
[*]فيديوهات رسمية من فريق فلاتر على قناة مطوري جوجل
[*]قناة tensor programming توفر محتوى ذو جودة عالية و دروس متقدمة
[*]قناة فلاتري للمستوى المتقدم و هي عبارة عن تحديات كل اسبوع شرح محاكاة تصميم مشهور
[*]أما بالعربية فلقد قمت بعمل عدة دروس لمن يريد تعلم لغة دارت بالاضافة لدورة مستمرة في فلاتر
[/list]
في عالم البرمجة دائما ما يكون هناك جديد من التقنيات و الأدوات التي تساعد المطورين لكن قليلا منها ما يبقى و يترك تاثيرا . لكن هناك تقنيات من الوهلة الأولى واضح انها وجدت لتبقى و فلاتر بلا شك ينتمي لهذه القائمة .
ماهو فلاتر Flutter ؟
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
فلاتر هو SDK من شركة جوجل مخصص لبرمجة تطبيقات الهواتف الذكية العاملة بنظام الاندرويد وال IOS و فوشيا (نظام تشغيل جديد من جوجل) حيث يركز على تجربة المستخدم و المطور في نفس الوقت و هذا لأنه يوفر إطار عمل شامل بلغة دارت مخصص لرسم الوجهات بجودة عالية و تطبيقات أصلية بأداء ممتاز و في نفس الوقت يعطي للمطور الأدوات التي تجعله يبني تطبيقات كاملة في أقل وقت .فلاتر ضد بقية المنافسين في السوق ؟
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
طبعا سوق برمجة تطبيقات الهواتف الذكية حجمه كبير جدا و في الفترة الاخيرة ظهرت حلول تمكننا من عمل تطبيقات لكلا النظامين المشهورين الأندرويد وال IOS في نفس الوقت و تلك الحلول تختلف تقنيا و في هذا الجدول ساوضح لكم الاختلافات المهمة بين أكبر أربع منافسين الآن في سوق تطوير تطبيقات الهواتف الذكية و بلغة واحدة (لن تشمل المقارنة الأدوات الاصلية أي الجافا و الكوتلين للاندرويد و السويفت و السي الكائنية للـ IOS)المنافسة ستكون بين ريكات ناتيف و زامرن و ايونيك و فلاتر لكن يجب التنبيه إلى :
- ريكات ناتيف : يمثل أيضا الحلول الاخرى مثل ناتيف سكربت
- زامرن : نتحدث عن زامرن فورمز لأنه الطريقة الصحيحة لكتابة مرة واحدة و نشر في كل مكان وهذا من أهم عوامل المقارنة
- ايونيك : ممثلا لكل الحلول الهجينة المعروفة مثل كوردوفا و فون غاب
المقارنة حسب لغة البرمجة/التصميم : ماهي اللغة التي تستخدم لكتابة أوامر التطبيق و كيف يمكن تصميم واجهات المستخدم ؟
ريكات ناتيف | يتم كتابة منطق البرنامج باستخدام لغة جافا سكربت و التصميم يكون مخلوط مع HTML و CSS |
زامرن فورمز | يتم كتابة منطق البرنامج بلغة سي شارب و التصميم يكون ب XAML |
ايونيك | تجربة مشابهة تمام لبرمجة و تصميم تطبيقات الويب |
فلاتر | كتابة و تصميم الواجهات تكون كلها بلغة دارت |
المقارنة حسب استخدام مكونات النظام : عندما تقوم باضافة الزر كيف سيظهر على الاندرويد و كيف سيظهر على IOS ؟
ريكات ناتيف | متعلق بشكل كامل بمكونات النظام و إصداره |
زامرن فورمز | توفر تجريد لمكونات النظام و يمكن الإجابة بنعم لأن المكونات تظهر حسب النظام |
ايونيك | غير متعلق بالنظام |
فلاتر | غير متعلق بالنظام لكن تم محاكاته |
سهولة التعلم : ما الذي تحتاج تعلمه لكي تبني تطبيقات كاملة باستخدام إحدى هذه التقنيات ؟
ريكات ناتيف | تحتاج ان تكون لديك معرفة بتقنيات الويب الاساسية HTML+CSS+JS و من المفضل أن تكون لديك خلفية عن ريكات لكي تجد الامور اسهل في الفهم |
زامرن فورمز | تحتاج تعلم لغة سي شارب و لغة التصميم XAML |
ايونيك | نفس الشيء تحتاج تعلم تقنيات الويب الأساسية |
فلاتر | تعلم لغة دارت فقط |
الترجمة : إلى ماذا يتم ترجمة تطبيقك ؟
ريكات ناتيف | لا يتم الترجمة يتم تشغيل الكود على جافا سكربت VM |
زامرن فورمز | تختلف حسب النظام فمثلا يتم ترجمتها إلى تطبيق أصلي على IOS و جافا بايت كود على الأندرويد |
ايونيك | يشتغل التطبيق على حاوية اي تطبيق اصلي يحتوي على متصفح مخفي |
فلاتر | يتم الترجمة عن طريق مترجم AOT إلى تطبيق أصلي |
الشعبية : ماهو حجم المجتمع ؟ و ماهي الشركات التي تستخدم هذه التقنيات ؟
ريكات ناتيف | مجتمع جافا سكربت اشهر لغة و مرتبط مع إطار العمل الغني عن التعريف رياكت و يتم استخدامه في تطبيقات كبيرة مثل فيسبوك بالاضافة لكون شركة فيسبوك خلف تطويره |
زامرن فورمز | يتم دعمه بواسطة مجتمع سي شارب الكبير جدا بالاضافة لانه اصبح مجاني و مفتوح المصدر بعد استيلاء مايكروسوفت عليه مما زاد شعبيته اكثر |
ايونيك | عندما ظهرت هذه التقنيات أحدثت ضجة في وسط مبرمجي الويب لانها كانت الحل الاسهل لهم لكن مشاكل هذه التطبيقات كثيرة بسبب هيكلتها و لا يوجد شركة كبيرة خلفها |
فلاتر | مع انه جديد في الساحة إلى أن المصدر اصبحت كثيرة ودخل في قائمة أشهر مئة مشروع على جيت هاب بالإضافة إلى تزايد شعبيته على ستاك اوفر فلو و الاهم من ذالك ان شركة جوجل خلفه و التي تتحكم بجزء كبير من سوق الأندرويد |
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
من المقارنة السابقة نستخلص عدة افكار جديدة جاء بها فلاتر . حيث أن فلسفة فريق فلاتر هي امكانية رسم كل بكسل على الشاشة بحرية وعدم الارتباط بالنظام أي مثل الألعاب تماما و لكن العامل الذي جعل فلاتر يصل إلى ما وصل إليه الآن هو دعم مباشر من فريق آخر في جوجل و هو فريق الماتريال ديزاين لان فلاتر يوفر كل مكونات الماتريال ديزاين باصدارتها الاخيرة حتى قبل ان يحصل عليها الاندرويد بنفسه و هذا ما تم التصريح به في موؤتمر جوجل IO هذه السنة . و من الاشياء التي يوجد فيها اختلاف كبير هو طريقة فلاتر في رسم الواجهات لان فلاتر يستخدم لغة البرمجة دارت في كل شيء من أجل الكتابة و التصميم ايضا و هذا ما نناقشه في النقطة التالي ...لغة دارت ؟ لماذا ؟
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
ربما هذه اول مرة ستكون سمعت فيها عن لغة دارت فلا تتعجب لغة دارت الكثير يعتبرها لغة غري ناجحة إلا أن الإحصاءات تقول عكس ذلك . دارت هي لغة برمجة كائنية التوجه ظهرت في سنة 2011 و تم عملها من طرف شركة جوجل كمحاولة لاستبدال لغة جافا سكربت لكن لم تنجح وهذا واضح جدا لكن مع ذلك فهو توفر الخصائص المناسبة التي يحتاجها فلاتر لكي ينمو بشكل صحيح حيث ان[list="box-sizing: border-box; margin-bottom: 1rem;"]
[*]لغة دارت هي لغة برمجة كائنية التوجه و تنذ كل مفاهيم البرمجة الكائنية منها تعدد الوراثة تحت اسم mixins
[*]يتحكم فريق فلاتر بشكل كامل في لغة دارت لكي تناسب فلاتر في الاونة الاخيرة حصل تغير كبير على اللغة لكي تناسب فلاتر فمثلا تم جعل كلمة new "التي سيتعرف عليها مبرمج الجافا و السي شارب " كلمة اختيارية فقط لكي يتم تحسين طريقة كتابة الواجهات
[*]اثناء البرمجة تستخدم لغة دارت مترجم JIT : Just in time و التي بفضلها ظهرت خاصية الهوت ريلود و هي انه عند تغير الكود يتم ارسال فقط البايتات التي تم تغييرها بالتالي حصل التغير في برنامجك في اقل من ثانية و يبقى محافظا على حالته
[*]أثناء نشر التطبيق تستخدم دارت مترجم AOT : Ahead of time و الذي ينتج لنا تطبيق اصلي و بالتالي اداء رائع
[*]لغة دارت تم عملها لكي تكون سهلة لمبرمج الجافا سكربت و مبرمجي الجافا و السي شارب ايضا مثال :
[/list]
- الكود:
بطريقة جافا سكربت
var user=['raouf','ahmed'];
بطريقة جافا
List<String> user=List<String>();
هل توجد شركات كبيرة تستخدم فلاتر الان ؟
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
نعم و من بينها جوجل طبعا و لقد نشرت جوجل صفحة فيها كل التطبيقات المشهورة التي تم عملها باستخدام فلاتر و هذا رابط الصفحة و هذه ايضا مقالةتم نشرها هذا الأسبوع حول أكبر شركات التطوير التي بدأت باستخدام فلاتر
الجمع بين تجربة المستخدم و تجربة المطور ؟
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذه الصورة]
لقد اشرت لهذا سابق لكن سنتحدث الان بالتفضيل :
تجربة المطور :
[list="box-sizing: border-box; margin-bottom: 1rem;"]
[*]تطبيقات الهواتف الذكية هي واجهة تعبر عن الفكر أو الشركة لذلك التصميم يجب ان يكون عصري و جميل و لهذا لا يجب أن تقول لا ابدا مصممك و تحصل على هذه الحرية مع فلاتر لأن لديك حرية رسم بكسل على الشاشة
[*]فلاتر هو عبارة عن اضافات و لست ملزما بأداء معينة مثلا فيجوال ستوديو الآن فلاتر حاليا بشكل رسمي متوفر لكل من أندرويد ستوديو + intellij idea + VS code
[*]الهوت ريلود و الذي يجعل من دورة حياة تطوير التطبيق سريعة جدا لانك اذا قمت بتغيير ما على الكود لن تظهر لانتظاره وقتا طويلا لكي ترى النتيجة و هذا مناسب جدا للأشخاص الذين لديهم خلفية في الويب
[*]التثبيت سهل جدا لان فلاتر عبارة عن مستودع مستضاف على القيت بالتالي التحميل و التحديث و الانتقال بين الفروع يكون عبر اوامر ال git فقط
[/list]
تجربة المستخدم
[list="box-sizing: border-box; margin-bottom: 1rem;"]
[*]يحصل المستخدم على تطبيق بواجهة جميلة جدا لها نفس الشكل و التجربة على كلا النظامين هذا بسبب حجم مكتبة المكونات القياسية التي يوفرها فلاتر
[*]التطبيق الناتج يكون اصلي لذلك سيحصل المستخدم على اداء علي اثناء الاستخدام
[/list]
هل فلاتر مناسب لك ؟
هذه النقطة فيها بعض الاختلاف فلاتر مازال لم يصل للاصدار الرسمي ومع ذلك يتم استخدامه في تطبيقات كبيرة لكن مع ذلك يوجد محدوديات في الوقت الحالي حول ما يمكن القيام به حاليا أكبر نقطة ضعف لفلاتر هي دعم الخرائط التفاعلية و التي تعتبر مشكلة هندسية بالنسبة لفريق فلاتر و العمل جاري عليها . والمنطقة الثانية هي ان فلاتر يستخدم مكتبة skia مخصصة لرسم الاشكال الثنائية الابعاد فقط لذلك اذا كنت تفكر في أي عمل يتضمن رسومات و تصاميم ثلاثية الأبعاد ففلاتر ليس مناسب لك
مصادر تعلم فلاتر ؟
الان بعد قرائتك للمقال ربما اعجبك فلاتر و تريد إلقاء نظرة وإليك أهم المصادر التي يمكنك البدء منها لتعلم فلاتر
[list="box-sizing: border-box; margin-bottom: 1rem;"]
[*]التوثيق الرسمي و هو الصدر الأول والأهم للمبتد أو المتقدم
[*]فيديوهات رسمية من فريق فلاتر على قناة مطوري جوجل
[*]قناة tensor programming توفر محتوى ذو جودة عالية و دروس متقدمة
[*]قناة فلاتري للمستوى المتقدم و هي عبارة عن تحديات كل اسبوع شرح محاكاة تصميم مشهور
[*]أما بالعربية فلقد قمت بعمل عدة دروس لمن يريد تعلم لغة دارت بالاضافة لدورة مستمرة في فلاتر
[/list]