في عالم البرمجة دائما ما يكون هناك جديد من التقنيات و الأدوات التي تساعد المطورين لكن قليلا منها ما يبقى و يترك تاثيرا . لكن هناك تقنيات من الوهلة الأولى واضح انها وجدت لتبقى و فلاتر بلا شك ينتمي لهذه القائمة ...
أحدث التقنيات العالمية
هو SDK من شركة جوجل مخصص لبرمجة تطبيقات الهواتف الذكية العاملة بنظام الاندرويد وال IOS و فوشيا (نظام تشغيل جديد من جوجل) وايضا بدا يتطور ليصبح قادر علي تطوير الويب , حيث يركز على تجربة المستخدم و المطور في نفس الوقت و هذا لأنه يوفر إطار عمل شامل بلغة دارت مخصص لرسم الوجهات بجودة عالية و تطبيقات أصلية بأداء ممتاز و في نفس الوقت يعطي للمطور الأدوات التي تجعله يبني تطبيقات كاملة في أقل وقت .
- Flutter دليلك لبداية صناعة تطبيقات Android & iOS
منذ مدة ليست بطويلة إشتهر إطار عمل جديد لصناعة و برمجة تطبيقات الأندرويد و IOS، إطار Flutter من ضمن مشاريع شركة جوجل مفتوحة المصدر، مبني بلغة Dart والتي بدورها مفتوحة المصدر من نفس الشركة، تسعى جوجل بهذا الإطار لتوفير طرق أكثر سلاسة لصناعة تطبيقات الهواتف الذكية و تسهيلها على المطورين، فكما نعلم أن صناعة تطبيقات الهواتف حاليا تتطلب معرفة بلغة JAVA او Kotlin للأندرويد و Swift للـ IOS، الشيء الذي ساهم في إنقسام مجتمع مطوري تطبيقات الهواتف و تخصص المطورين في أحد الأنظمة عن الأخر، بهذه الفكرة بدأ مشروع إطار عمل Flutter لِلَم شمل المطورين و صناعة تطبيقات لكل المنصات بشكل ناتيف (Native) كأن التطبيق مبرمج باللغة الأصلية للنظام.
- ماذا تقدم Flutter ؟
أهم ما جاء إطار فلاتر لتقديمه لمجتمع صانعي تطبيقات الهواتف هو إمكانية صناعة تطبيقات أندرويد و تطبيقات IOS في نفس الوقت و بكود مصدري مماثل، كما أنه يستخدم لغة برمجة مجمعة تسمى Dart ، والتي تم ترجمتها "في وقت مبكر" ( 'ahead of time 'AOT) إلى رمز أصلي لكل من iOS و Android. كما أن الإطار ليس مثل سابقيه التي تعتمد على javascript كجسر بين المتصفح و نظام التشغيل، بالإضافة لتسهيلها نمطية كتابة الأكواد و إنشاء واجهات إحترافية بأقل كود ممكن و مقروء. و قد أصدرت جوجل قبل أيام النسخة الأولى الثابتة من Flutter التي حملت إسم Flutter 1.0، الذي ستكون عبارة عن منصة متداخلة (Cross-Platform) من أجل تطوير تطبيقات لكل الأنظمة و لكل الأجهزة أيضا، ليبدأ بشكل رسمي عصر الـ Flutter .
- الواجهات وواجهات النظام ؟
من مميزات Flutter التي جعلته أكثر سهولة لتطوير تطبيقات الهواتف هو إعتماده على نظام الحاجيات (Widgets) فكل عنصر من Flutter يعتبر Widget وقد تم إستنباط هذا النظام من React JSX، وهذه تعتبر ميزة للمطورين اللذين سبق لهم التعامل مع React، فقد يجدون أن صناعة التطبيقات بإستخدام Flutter أكثر سهولة. نظام Widgets في إطار Flutter جعل من السهل إنشاء مكونات (Components) جديدة وقوة لغة Dart ساهمت أيضا بكونها لغة كائنية التوجه في هذا الأمر بحيث يمكن أخذ Widget رئيسي و إضافة عليه خصائص جديدة من تأثيرات و حركات (Animation) بشكل بسيط وبدون تعقيد. هذا الأمر مَكَّنَ من إنشاء مكونات جديدة داخل الإطار و إدراج Material Design في المكونات التي تشتغل على الأندرويد و Cupertino على IOS. واحدة من مميزات إطار Flutter هي دعمه بشكل كامل لواجهات ال Material Design فعلى نظام الأندرويد تأتي المكونات من Text و Button و Switch إفتراضيا على تنسيق الماتريال ديزاين هذا ما سيوفر عليك عناء التعديل على الديزاين كما الحال على الأندرويد بالجافا.
- فلاتر ضد بقية المنافسين في السوق ؟
طبعا سوق برمجة تطبيقات الهواتف الذكية حجمه كبير جدا و في الفترة الاخيرة ظهرت حلول تمكننا من عمل تطبيقات لكلا النظامين المشهورين الأندرويد وال IOS بالاضافة الى الويب و سطح المكتبة و الاجهزة المدمجة في نفس الوقت و تلك الحلول تختلف تقنيا و في هذا الجدول ساوضح لكم الاختلافات المهمة بين أكبر أربع منافسين الآن في سوق تطوير تطبيقات الهواتف الذكية و بلغة واحدة (لن تشمل المقارنة الأدوات الاصلية أي الجافا و الكوتلين للاندرويد و السويفت و السي الكائنية للـ IOS) .
- المنافسة ستكون بين ريكات ناتيف و زامرن و ايونيك و فلاتر لكن يجب التنبيه إلى :
- ريكات ناتيف : يمثل أيضا الحلول الاخرى مثل ناتيف سكربت.
- زامرن : نتحدث عن زامرن فورمز لأنه الطريقة الصحيحة لكتابة مرة واحدة و نشر في كل مكان وهذا من أهم عوامل المقارنة.
- ايونيك : ممثلا لكل الحلول الهجينة المعروفة مثل كوردوفا و فون غاب.
- ماهو الجديد في فلاتر ؟
هنالك عدة افكار جديدة جاء بها فلاتر . حيث أن فلسفة فريق فلاتر هي امكانية رسم كل بكسل على الشاشة بحرية وعدم الارتباط بالنظام أي مثل الألعاب تماما و لكن العامل الذي جعل فلاتر يصل إلى ما وصل إليه الآن هو دعم مباشر من فريق آخر في جوجل و هو فريق الماتريال ديزاين لان فلاتر يوفر كل مكونات الماتريال ديزاين باصدارتها الاخيرة حتى قبل ان يحصل عليها الاندرويد بنفسه و هذا ما تم التصريح به في موؤتمر جوجل IO هذه السنة . و من الاشياء التي يوجد فيها اختلاف كبير هو طريقة فلاتر في رسم الواجهات لان فلاتر يستخدم لغة البرمجة دارت في كل شيء من أجل الكتابة و التصميم ايضا .
- لغة دارت Dart ؟
ربما هذه اول مرة ستكون سمعت فيها عن لغة دارت فلا تتعجب لغة دارت الكثير يعتبرها لغة غري ناجحة إلا أن الإحصاءات تقول عكس ذلك .
دارت هي لغة برمجة كائنية التوجه ظهرت في سنة 2011 و تم عملها من طرف شركة جوجل كمحاولة لاستبدال لغة جافا سكربت لكن لم تنجح وهذا واضح جدا لكن مع ذلك فهو توفر الخصائص المناسبة التي يحتاجها فلاتر لكي ينمو بشكل صحيح حيث ان لغة دارت هي:
- لغة برمجة كائنية التوجه و تنفذ كل مفاهيم البرمجة الكائنية منها تعدد الوراثة تحت اسم mixins.
- يتحكم فريق فلاتر بشكل كامل في لغة دارت لكي تناسب فلاتر في الاونة الاخيرة حصل تغير كبير على اللغة لكي تناسب فلاتر فمثلا تم جعل كلمة new "التي سيتعرف عليها مبرمج الجافا و السي شارب " كلمة اختيارية فقط لكي يتم تحسين طريقة كتابة الواجهات.
- اثناء البرمجة تستخدم لغة دارت مترجم JIT : Just in time و التي بفضلها ظهرت خاصية الهوت ريلود و هي انه عند تغير الكود يتم ارسال فقط البايتات التي تم تغييرها بالتالي حصل التغير في برنامجك في اقل من ثانية و يبقى محافظا على حالته .
- أثناء نشر التطبيق تستخدم دارت مترجم AOT : Ahead of time و الذي ينتج لنا تطبيق اصلي و بالتالي اداء رائع .
- يمكن ترجمة لغة دارت الى جافا سكربت محسنة الاداء و هذا ما يجعل عمل تطبيقات ويب بفلاتر امرا ممكنا .
- لغة دارت تم عملها لكي تكون سهلة لمبرمج الجافا سكربت و مبرمجي الجافا و السي شارب ايضا.
- هل توجد شركات كبيرة تستخدم فلاتر الآن ؟
نعم و من بينها جوجل طبعا و لقد نشرت جوجل صفحة فيها كل التطبيقات المشهورة التي تم عملها باستخدام فلاتر و هذا رابط الصفحة و هذه ايضا مقالة تم نشرها هذا الأسبوع حول أكبر شركات التطوير التي بدأت باستخدام فلاتر.
- الجمع بين تجربة المستخدم و تجربة المطور ؟
تجربة المطور :
- تطبيقات الهواتف الذكية هي واجهة تعبر عن الفكر أو الشركة لذلك التصميم يجب ان يكون عصري و جميل و لهذا لا يجب أن تقول لا ابدا مصممك و تحصل على هذه الحرية مع فلاتر لأن لديك حرية رسم بكسل على الشاشة .
- فلاتر هو عبارة عن اضافات و لست ملزما بأداة معينة مثلا فيجوال ستوديو الآن فلاتر حاليا بشكل رسمي متوفر لكل من أندرويد ستوديو + intellij idea + VS code .
- الهوت ريلود و الذي يجعل من دورة حياة تطوير التطبيق سريعة جدا لانك اذا قمت بتغيير ما على الكود لن تظهر لانتظاره وقتا طويلا لكي ترى النتيجة و هذا مناسب جدا للأشخاص الذين لديهم خلفية في الويب .
- التثبيت سهل جدا لان فلاتر عبارة عن مستودع مستضاف على القيت هاب بالتالي التحميل و التحديث و الانتقال بين الفروع يكون عبر اوامر ال git فقط .
تجربة المستخدم :
- يحصل المستخدم على تطبيق بواجهة جميلة جدا لها نفس الشكل و التجربة على كلا النظامين هذا بسبب حجم مكتبة المكونات القياسية التي يوفرها فلاتر .
- التطبيق الناتج يكون اصلي لذلك سيحصل المستخدم على اداء عالي اثناء الاستخدام.
- أنت الآن تسأل نفسك هل فلاتر مناسب لك ولعملك؟
مثل اي سؤال هندسي الاجابة تكون : الامر يعتمد على حالتك لكن يمكنني تسهيل الامر عليك . اذا اردت تطبيق يشتغل على عدة منصات في نفس الوقت يكون شكله جميل و ادائه ممتاز ففلاتر مناسب لك.
إسأل نجيب والتجربة خير برهان
Comments