ماهو فلاتر flutter ؟ و كيف يمكنك ان تبدأ بتعلمه الآن
إجابة على أكثر الأسئلة الشائعة حول فلاتر و كف ينافس الأدوات الأخرى الموجود في السوق بالإضافة لمصادر لتعلم فلاتر
بسم الله الرحمان الرحيم .
في عالم البرمجة دائما ما يكون هناك جديد من التقنيات و الأدوات التي تساعد المطورين لكن قليلا منها ما يبقى و يترك تاثيرا . لكن هناك تقنيات من الوهلة الأولى واضح انها وجدت لتبقى و فلاتر بلا شك ينتمي لهذه القائمة .
ماهو فلاتر Flutter ؟
فلاتر هو SDK من شركة جوجل مخصص لبرمجة تطبيقات الهواتف الذكية العاملة بنظام الاندرويد وال IOS و فوشيا (نظام تشغيل جديد من جوجل) حيث يركز على تجربة المستخدم و المطور في نفس الوقت و هذا لأنه يوفر إطار عمل شامل بلغة دارت مخصص لرسم الوجهات بجودة عالية و تطبيقات أصلية بأداء ممتاز و في نفس الوقت يعطي للمطور الأدوات التي تجعله يبني تطبيقات كاملة في أقل وقت .
فلاتر ضد بقية المنافسين في السوق ؟
طبعا سوق برمجة تطبيقات الهواتف الذكية حجمه كبير جدا و في الفترة الاخيرة ظهرت حلول تمكننا من عمل تطبيقات لكلا النظامين المشهورين الأندرويد وال IOS بالاضافة الى الويب و سطح المكتبة و الاجهزة المدمجة في نفس الوقت و تلك الحلول تختلف تقنيا و في هذا الجدول ساوضح لكم الاختلافات المهمة بين أكبر أربع منافسين الآن في سوق تطوير تطبيقات الهواتف الذكية و بلغة واحدة (لن تشمل المقارنة الأدوات الاصلية أي الجافا و الكوتلين للاندرويد و السويفت و السي الكائنية للـ IOS)
المنافسة ستكون بين ريكات ناتيف و زامرن و ايونيك و فلاتر لكن يجب التنبيه إلى :
-
ريكات ناتيف : يمثل أيضا الحلول الاخرى مثل ناتيف سكربت
-
زامرن : نتحدث عن زامرن فورمز لأنه الطريقة الصحيحة لكتابة مرة واحدة و نشر في كل مكان وهذا من أهم عوامل المقارنة
-
ايونيك : ممثلا لكل الحلول الهجينة المعروفة مثل كوردوفا و فون غاب
-
المقارنة حسب لغة البرمجة/التصميم : ماهي اللغة التي تستخدم لكتابة أوامر التطبيق و كيف يمكن تصميم واجهات المستخدم ؟
ريكات ناتيف |
يتم كتابة منطق البرنامج باستخدام لغة جافا سكربت و التصميم يكون مخلوط مع HTML و CSS |
زامرن فورمز |
يتم كتابة منطق البرنامج بلغة سي شارب و التصميم يكون ب XAML |
ايونيك |
تجربة مشابهة تمام لبرمجة و تصميم تطبيقات الويب |
فلاتر |
كتابة و تصميم الواجهات تكون كلها بلغة دارت |
-
المقارنة حسب استخدام مكونات النظام : عندما تقوم باضافة الزر كيف سيظهر على الاندرويد و كيف سيظهر على IOS ؟
ريكات ناتيف |
متعلق بشكل كامل بمكونات النظام و إصداره |
زامرن فورمز |
توفر تجريد لمكونات النظام و يمكن الإجابة بنعم لأن المكونات تظهر حسب النظام |
ايونيك |
غير متعلق بالنظام |
فلاتر |
غير متعلق بالنظام لكن تم محاكاته |
-
سهولة التعلم : ما الذي تحتاج تعلمه لكي تبني تطبيقات كاملة باستخدام إحدى هذه التقنيات ؟
ريكات ناتيف |
تحتاج ان تكون لديك معرفة بتقنيات الويب الاساسية HTML+CSS+JS و من المفضل أن تكون لديك خلفية عن ريكات لكي تجد الامور اسهل في الفهم |
زامرن فورمز |
تحتاج تعلم لغة سي شارب و لغة التصميم XAML |
ايونيك |
نفس الشيء تحتاج تعلم تقنيات الويب الأساسية |
فلاتر |
تعلم لغة دارت فقط |
-
الترجمة : إلى ماذا يتم ترجمة تطبيقك ؟
ريكات ناتيف |
لا يتم الترجمة يتم تشغيل الكود على جافا سكربت VM |
زامرن فورمز |
تختلف حسب النظام فمثلا يتم ترجمتها إلى تطبيق أصلي على IOS و جافا بايت كود على الأندرويد |
ايونيك |
يشتغل التطبيق على حاوية اي تطبيق اصلي يحتوي على متصفح مخفي |
فلاتر |
يتم الترجمة عن طريق مترجم AOT إلى تطبيق أصلي |
-
الشعبية : ماهو حجم المجتمع ؟ و ماهي الشركات التي تستخدم هذه التقنيات ؟
ريكات ناتيف |
مجتمع جافا سكربت اشهر لغة و مرتبط مع إطار العمل الغني عن التعريف رياكت و يتم استخدامه في تطبيقات كبيرة مثل فيسبوك بالاضافة لكون شركة فيسبوك خلف تطويره |
زامرن فورمز |
يتم دعمه بواسطة مجتمع سي شارب الكبير جدا بالاضافة لانه اصبح مجاني و مفتوح المصدر بعد استيلاء مايكروسوفت عليه مما زاد شعبيته اكثر |
ايونيك |
عندما ظهرت هذه التقنيات أحدثت ضجة في وسط مبرمجي الويب لانها كانت الحل الاسهل لهم لكن مشاكل هذه التطبيقات كثيرة بسبب هيكلتها و لا يوجد شركة كبيرة خلفها |
فلاتر |
مع انه جديد في الساحة إلى أن المصدر اصبحت كثيرة ودخل في قائمة أشهر مئة مشروع على جيت هاب بالإضافة إلى تزايد شعبيته على ستاك اوفر فلو و الاهم من ذالك ان شركة جوجل خلفه و التي تتحكم بجزء كبير من سوق الأندرويد |
ماهو الجديد في فلاتر ؟
من المقارنة السابقة نستخلص عدة افكار جديدة جاء بها فلاتر . حيث أن فلسفة فريق فلاتر هي امكانية رسم كل بكسل على الشاشة بحرية وعدم الارتباط بالنظام أي مثل الألعاب تماما و لكن العامل الذي جعل فلاتر يصل إلى ما وصل إليه الآن هو دعم مباشر من فريق آخر في جوجل و هو فريق الماتريال ديزاين لان فلاتر يوفر كل مكونات الماتريال ديزاين باصدارتها الاخيرة حتى قبل ان يحصل عليها الاندرويد بنفسه و هذا ما تم التصريح به في موؤتمر جوجل IO هذه السنة . و من الاشياء التي يوجد فيها اختلاف كبير هو طريقة فلاتر في رسم الواجهات لان فلاتر يستخدم لغة البرمجة دارت في كل شيء من أجل الكتابة و التصميم ايضا و هذا ما نناقشه في النقطة التالي ...
لغة دارت ؟ لماذا ؟
ربما هذه اول مرة ستكون سمعت فيها عن لغة دارت فلا تتعجب لغة دارت الكثير يعتبرها لغة غري ناجحة إلا أن الإحصاءات تقول عكس ذلك . دارت هي لغة برمجة كائنية التوجه ظهرت في سنة 2011 و تم عملها من طرف شركة جوجل كمحاولة لاستبدال لغة جافا سكربت لكن لم تنجح وهذا واضح جدا لكن مع ذلك فهو توفر الخصائص المناسبة التي يحتاجها فلاتر لكي ينمو بشكل صحيح حيث ان
-
لغة دارت هي لغة برمجة كائنية التوجه و تنذ كل مفاهيم البرمجة الكائنية منها تعدد الوراثة تحت اسم mixins
-
يتحكم فريق فلاتر بشكل كامل في لغة دارت لكي تناسب فلاتر في الاونة الاخيرة حصل تغير كبير على اللغة لكي تناسب فلاتر فمثلا تم جعل كلمة new "التي سيتعرف عليها مبرمج الجافا و السي شارب " كلمة اختيارية فقط لكي يتم تحسين طريقة كتابة الواجهات
-
اثناء البرمجة تستخدم لغة دارت مترجم JIT : Just in time و التي بفضلها ظهرت خاصية الهوت ريلود و هي انه عند تغير الكود يتم ارسال فقط البايتات التي تم تغييرها بالتالي حصل التغير في برنامجك في اقل من ثانية و يبقى محافظا على حالته
-
أثناء نشر التطبيق تستخدم دارت مترجم AOT : Ahead of time و الذي ينتج لنا تطبيق اصلي و بالتالي اداء رائع
-
يمكن ترجمة لغة دارت الى جافا سكربت محسنة الاداء و هذا ما يجعل عمل تطبيقات ويب بفلاتر امرا ممكنا
-
لغة دارت تم عملها لكي تكون سهلة لمبرمج الجافا سكربت و مبرمجي الجافا و السي شارب ايضا مثال :
بطريقة جافا سكربت
var user=['raouf','ahmed'];
بطريقة جافا
List<String> user=List<String>();
هل توجد شركات كبيرة تستخدم فلاتر الان ؟
نعم و من بينها جوجل طبعا و لقد نشرت جوجل صفحة فيها كل التطبيقات المشهورة التي تم عملها باستخدام فلاتر و هذا رابط الصفحة و هذه ايضا مقالة تم نشرها هذا الأسبوع حول أكبر شركات التطوير التي بدأت باستخدام فلاتر
الجمع بين تجربة المستخدم و تجربة المطور ؟
لقد اشرت لهذا سابق لكن سنتحدث الان بالتفضيل :
تجربة المطور :
-
تطبيقات الهواتف الذكية هي واجهة تعبر عن الفكر أو الشركة لذلك التصميم يجب ان يكون عصري و جميل و لهذا لا يجب أن تقول لا ابدا مصممك و تحصل على هذه الحرية مع فلاتر لأن لديك حرية رسم بكسل على الشاشة
-
فلاتر هو عبارة عن اضافات و لست ملزما بأداة معينة مثلا فيجوال ستوديو الآن فلاتر حاليا بشكل رسمي متوفر لكل من أندرويد ستوديو + intellij idea + VS code
-
الهوت ريلود و الذي يجعل من دورة حياة تطوير التطبيق سريعة جدا لانك اذا قمت بتغيير ما على الكود لن تظهر لانتظاره وقتا طويلا لكي ترى النتيجة و هذا مناسب جدا للأشخاص الذين لديهم خلفية في الويب
-
التثبيت سهل جدا لان فلاتر عبارة عن مستودع مستضاف على القيت هاب بالتالي التحميل و التحديث و الانتقال بين الفروع يكون عبر اوامر ال git فقط
تجربة المستخدم
-
يحصل المستخدم على تطبيق بواجهة جميلة جدا لها نفس الشكل و التجربة على كلا النظامين هذا بسبب حجم مكتبة المكونات القياسية التي يوفرها فلاتر
-
التطبيق الناتج يكون اصلي لذلك سيحصل المستخدم على اداء عالي اثناء الاستخدام
هل فلاتر مناسب لك ؟
مثل كل سؤال هندس الاجابة تكون : الامر يعتمد على حالتك لكن يمكنني تسهيل الامر عليك . اذا اردت تطبيق يشتغل على عدة منصات في نفس الوقت يكون شكله جميل و ادائه ممتاز و لا يهمك ان يكون التطبيق يشبه التطبيقات الاخرى الموجودة على النضام المستهدف ففلاتر مناسب لك.
مصادر تعلم فلاتر ؟
الان بعد قرائتك للمقال ربما اعجبك فلاتر و تريد إلقاء نظرة وإليك أهم المصادر التي يمكنك البدء منها لتعلم فلاتر
-
قناة tensor programming توفر محتوى ذو جودة عالية و دروس متقدمة
-
قناة فلاتري للمستوى المتقدم و هي عبارة عن تحديات كل اسبوع شرح محاكاة تصميم مشهور
و اذا اردت البدا بتعلم لغة دارت يمكنك متابعة الدورة المخصصة للمبتدئين و المتوفرة على منصة عالم البرمجة من هنا
التعليقات (6)
رائع …
شرح سلس وجميل صديقى بالتوفيق ,
ياريت لو توضح هل يمكن استخدامه فى تحويل موقع ووردبريس الى تطبيق اندرويد ؟
السلام عليكم
انا حملته لكن يطلع لي انه فيه خطأ Android toolchain و Connected device T.T
وش الحل بليييز :(
مقالة رائعه .. كاملة شاملة .. معولما جيدة جدا عن flutter .. ودرس في عمل مقال شامل ... شكرا على الحرفية والاتقان
جميل
السلام عليكم هل يمكنني ان ابدا بتعلم لغة فلاتر من دون تعلم لغت دارت ؟ وهل اجد من يشرحها بطريقه الصحيحه بالعربي ؟ وهل يمكنني اصلا تعلم هاذي الغة لو كنت ماتقن الانجليزي؟
عرض المزيد.. جديد دوراتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !