
نظرة عامة على فلاتر Flutter إطار عمل المستقبل
فلاتر Flutter حتى نستطيع التعرف على سوف نضع أنفسنا في مكان مطور البرمجيات, قد تصنع تطبيقاً ناجحاً و لكن هناك مشكلة في أن هذا التطبيق قد كان مصنوعاً فقط لأجهزة Apple و لا يعمل على أجهزة Android لأن المبرمج عادتاً يعرف لغة برمجة واحدة, و من المؤكد أن هذا المبرمج سوف يبدأ في التفكير أنه وجب عليه أن يقوم بالعمل في هذا التطبيق ليستطيع نشره على أجهزة Android.
لذلك يصبح مضطراً أن يتعلم لغة برمجة جديدة, لغة برمجة مثل Java أو يتعلم Android Development و يبدأ في برمجة التطبيق من أول و جديد بهذه اللغة الجديدة Java حتى يستطيع تحميل التطبيق على منصة Google Play أو إذا كانت شركة سوف تصبح مضطرة إلى تعيين شخص جديد يعمل على هذه اللغة الثانية Java حتى يستطيع إنشاء التطبيق لأجهزة Android و بذلك يكون التطبيق متواجد على المنصتين Android Play Store و Apple Store.
و هذا يحتاج الكثير من العمل و القوة العاملة و هنا تكون لدينا مشكلة أخرى و هي إذا تم إصدار تحديث جديد على التطبيق سوف يصبح المبرمج مضطراً إلى التعديل أو التغيير في كود التطبيق على لغتي البرمجة لنظام آبل و نظام أندرويد.
و يتم رفع التطبيق مرة أخرى على المتجرين و هذا يحتاج إلى الكثير من العمل و الوقت و المال.
يتوقع مستخدمي الموبايل أن يكون لتطبيقاتهم تصميمات جميلة و ذات رسوم متحركة سلسة و أداء و لهذا بحتاج المطورون إلى إنشاء مميزات جديدة بشكل أسرع دون المساومة على الجودة و الأداء.
لهذا السبب قامت شركة جوجل برعاية و تطوير فلاتر, و فلاتر هو بيئة عمل واجهات المستخدم و يوفر طريقة معبرة و سريعة للمطورين لبناء التطبيق على النظامين و هنا تأتي فائدة فلاتر.
فلاتر ببساطة UI Toolkots تساعد المبرمجين على تصميم تطبيقات لكلا المنصتين و بمختلف أحجام شاشات الموبايل من خلال إستخدام Widget جاهزة تساعد على العمل بشكل أسرع.
و Widget يسميها البعض على أنها المكونات أو العناصر أو المركبات و هي مجموعة من العناصر مع بعضها البعض تشكل مخرج معين.
أمثلة على أنواع Widget
1- صف (Row Widget) : نستخدمها لكي نضع أكثر من عنصر على سطر واحد.
2- عمودي (Column Widget) : تستخدم لكي نضع أكثر من عنصر بشكل عمودي.
3- تكديس (Stack Widget) : تستخدم لنضع أكثر من عنصر فوق بعض ( نص فوق صورة أو صورة فوق صورة).
4- المسافات (Padding Widget) : تستخدم لكي نضع مسافة بين العناصر.
5- المنتصف (Center Widget) : تستخدم لتضع الـ Widget في منتصف الشاشة.
و يوجد هناك الكثير من الـ Widget الأخرى سوف نتعرف عليها فيما بعد ضمن هذه السلسلة من دروس Flutter.
ما هو فلاتر Flutter ؟
فلاتر ( Flutter ) هو عبارة عن SDK و هو إختصار ( Software Development Kit ) تتبع لشركة Google و هي مخصصة من أجل برمجة تطبيقات الهواتف الذكية التي تعمل في نظام Android و IOS و Fuchsia أي هو نظام تشغيل جديد من جوجل حيث يركّز هذا النظام على تجربة المستخدم و المطور في الوقت نفسه لأنه يوفر إطار عمل شامل في لغة Dart و هذا الإطار مخصص لرسم الواجهات بجودة عالية و تطبيقات بأداء عالي و يعطي للمطور الأدوات التي تجعله يبني تطبيقات كاملة في وقت قصير.
و يساعدك فلاتر على تطوير البرمجيات و هو إطار مدعوم من شركة جوجل و اللغة الأساسية التي قام عليه إطار فلاتر هي لغة Dart و يستخدم Flutter لإنشاء تطبيقات لنظامي الهاتف المحمول و بالإضافة لتطبيقات الويب و ذلك إنطلاقاً من كود برمجي واحد و يتم ترجمته في العديد من المنصات و هذا الأمر حقاً ما يميز فلاتر و يعطيه قوة كبيرة في السوق المحلي العالمي.
يعتبر فلاتر على أنه ( SDK ) حزمة تطوير تطبيقات الهواتف الذكية و يسمح بكتابة و برمجة تطبيق في قاعدة بيانات واحدة و تكون لكل من Android و IOS.
و تم إنشاء اطار Flutter من الصفر و تم الإستخدام لكتابته و بنائه في لغتي Dart و C++ و هو لا يزال في مراحله التجريبية, و على الرغم من ذلك فإن إطار فلاتر تم إصداره رسمياً لكن لا يزال في المرحلة التجريبية للنجاح.
لماذا فلاتر Flutter ؟
بإستخدام فلاتر نستطيع أن نكتب كود أساسي واحد لمختلف المنصات و هذه فائدة كبيرة بدلاً من برمجة تطبيق IOS بإستخدام لغة sweft أو Objective C و برمجة تطبيق أندرويد بإستخدام Java أو Kotlin و تطبيق الويب بإستخدام JavaScript, مع فلاتر نستطيع كتابة كود واحد فقط لإستخراج جميع التطبيقات (IOS, Android, Web) و لذلك يجب علينا تعلم لغة Dart.
هناك عدة أسباب تجعل Flutter خيارًا ممتازًا لتطوير التطبيقات، وإليك بعض الأسباب الرئيسية:
- تطوير تطبيقات متعددة المنصات: يعتبر Flutter إطار عمل متعدد المنصات، مما يعني أنه يمكنك استخدام نفس شفرة التطبيق لبناء تطبيقات للهواتف الذكية (Android وiOS) وأيضًا للويب وسطح المكتب. يساهم هذا في توفير الوقت والجهد في تطوير تطبيقات متعددة المنصات.
- أداء ممتاز: يتميز Flutter بأداء ممتاز وسرعة استجابة عالية. يستخدم Flutter محرك رسومات خاص به يسمى Skia، مما يتيح رسم واجهات المستخدم بشكل سلس وسريع. هذا يتيح لك تطوير تطبيقات تعمل بسلاسة وتوفر تجربة مستخدم ممتازة.
- واجهة مستخدم جميلة ومخصصة: يوفر Flutter مجموعة واسعة من عناصر واجهة المستخدم الجاهزة والجميلة، مما يسهل عليك إنشاء تطبيقات ذات تصميم جذاب ومخصص. يمكنك أيضًا إنشاء عناصر واجهة المستخدم الخاصة بك بسهولة باستخدام Flutter.
- تطوير سريع وتجربة فورية: يتميز Flutter بعملية تطوير سريعة وفعالة. يوفر Hot Reload، وهي ميزة في Flutter، إمكانية رؤية التغييرات الفورية التي تقوم بها في الشفرة وتطبيقها على الفور في التطبيق النشط. هذا يسمح لك بتجربة وتحسين التطبيق بشكل أسرع وأكثر كفاءة.
- مجتمع نشط ودعم قوي: يحظى Flutter بمجتمع كبير ونشط من المطورين حول العالم. يوفر هذا المجتمع مصادر وثائق مفيدة، وحلول للمشاكل، ومكتبات وأدوات إضافية لتسهيل عملية التطوير.
- تكامل مع منصات أخرى: يمكنك استخدام Flutter في تكامل مع منصات وخدمات أخرى مثل Firebase لإضافة ميزات مثل التخزين السحابي والمصادقة وقواعد البيانات. يتيح لك هذا تطوير تطبيقات قوية ومتكاملة.
باختصار، فإن Flutter يوفر تجربة تطوير سريعة وفعالة، وأداء ممتاز، وتصميم جميل، وإمكانية تطوير تطبيقات متعددة المنصات. إذا كنت ترغب في تهناك العديد من الأسباب التي تجعل Flutter خيارًا ممتازًا لتطوير التطبيقات. إليك بعض الأسباب الرئيسية:
- تطوير متعدد المنصات: يتيح لك Flutter تطوير تطبيق واحد يعمل على مختلف المنصات مثل Android وiOS والويب وسطح المكتب. هذا يعني أنك لن تحتاج إلى كتابة شفرة منفصلة لكل منصة، مما يوفر الكثير من الوقت والجهد.
- أداء عالي: يعتبر Flutter معروفًا بأدائه الفائق وسرعته. يستخدم Flutter محرك رسومات خاص به يسمى Skia، الذي يتيح رسم واجهات المستخدم بسلاسة وسرعة عالية. يعني ذلك أن التطبيقات المبنية بواسطة Flutter تعمل بشكل سلس ومت responsively على مختلف الأجهزة.
- واجهة مستخدم جميلة: يتضمن Flutter عددًا كبيرًا من عناصر واجهة المستخدم الجاهزة والجميلة التي يمكنك استخدامها لتطوير تصميم جذاب لتطبيقك. بالإضافة إلى ذلك، يمكنك تكوين وتخصيص عناصر واجهة المستخدم بسهولة وفقًا لاحتياجاتك الخاصة.
- تطوير سريع: يوفر Flutter عملية تطوير سريعة بفضل ميزة “Hot Reload”، حيث يمكنك رؤية التغييرات الفورية التي تقوم بها في الشفرة وتطبيقها على الفور في التطبيق النشط. هذا يتيح لك تجربة وتحسين التطبيق بشكل أسرع وأكثر فعالية.
- مجتمع نشط ودعم قوي: يتمتع Flutter بمجتمع كبير ونشط من المطورين والمساهمين، مما يعني أنه يمكنك الاستفادة من المصادر والمكتبات والأدوات القوية التي يوفرها المجتمع. بالإضافة إلى ذلك، يقدم Flutter دعمًا قويًا من Google، مما يعني أنه يتم تحديثه وتحسينه بشكل مستمر.
- تكامل مع المنصات الأخرى: يمكنك استخدام Flutter مع منصات أخرى مثل Firebase والتكامل مع خدماتها مثل قاعدة البيانات والتخزين السحابي والمصادقة. يسهل هذا التكامل إضافة ميزات متقدمة إلى تطبيقك.
استخدام Flutter لتطوير تطبيقات الويب
يمكنك استخدام Flutter لتطوير تطبيقات الويب باستخدام إطار عمل Flutter for Web. يتيح لك Flutter for Web تحويل تطبيقات Flutter إلى تطبيقات ويب قابلة للتشغيل على المتصفحات الحديثة.
باستخدام Flutter for Web، يمكنك استخدام نفس شفرة التطبيق المستخدمة لتطوير تطبيقات الجوال وإعادة استخدامها لبناء تطبيق ويب. يعني هذا أنه يمكنك توفير وقت وجهد كبيرين في تطوير تطبيقات متعددة المنصات.
مع ذلك، يجب أن تلاحظ أن Flutter for Web لا يزال في مرحلة تجريبية وقد يكون غير مستقر بالكامل أو يفتقر إلى بعض الميزات المتاحة في Flutter الأصلي. قد تواجه بعض التحديات والقيود أثناء تطوير تطبيق ويب باستخدام Flutter.
بشكل عام، إذا كنت ترغب في تطوير تطبيق ويب متقدم ومتوافق مع مجموعة واسعة من المتصفحات والأجهزة، قد يكون اللجوء إلى إطار عمل ويب مثل ReactJS أو Angular أفضل خيار لك. ومع ذلك، إذا كنت مألوفًا بالفعل مع Flutter وترغب في استغلال مزاياه في تطوير تطبيق ويب، يمكنك تجربة Flutter for Web وتقييم ما إذا كان يلبي احتياجاتك الخاصة.
استخدام Flutter لتطوير تطبيقات ألعاب
يمكنك استخدام Flutter لتطوير تطبيقات الألعاب. على الرغم من أن Flutter ليس مخصصًا بشكل خاص لتطوير الألعاب مثل محركات الألعاب المختصة، إلا أنه يوفر مجموعة من الميزات والأدوات التي تساعدك في بناء ألعاب ممتعة وجذابة.
في Flutter، يمكنك استخدام مكتبات الرسوميات والأنيميشن المتاحة لتصميم وتحريك العناصر والشخصيات في لعبتك. تتضمن بعض المكتبات الشهيرة المستخدمة في تطوير ألعاب Flutter Rive وFlame وSpriteWidget وغيرها.
بالإضافة إلى ذلك، يمكنك استخدام الميزات الأخرى في Flutter مثل إدارة الحالة والمساهمة المجتمعية والتوثيق الشامل لتطوير تطبيقات الألعاب بشكل فعال.
ومع ذلك، يجب ملاحظة أنه إذا كنت ترغب في تطوير ألعاب متقدمة وثقيلة، قد يكون من الأفضل استخدام محركات ألعاب مخصصة مثل Unity أو Unreal Engine. هذه المحركات توفر ميزات وأدوات أكثر تخصصًا لتطوير الألعاب ثلاثية الأبعاد والألعاب ذات الرسومات المتقدمة.
باختصار، يمكنك استخدام Flutter لتطوير تطبيقات الألعاب، وخاصةً الألعاب ذات الرسوميات البسيطة والألعاب ثنائية الأبعاد. وإذا كنت ترغب في تطوير ألعاب متقدمة ومعقدة، فقد تحتاج إلى النظر في استخدام محركات ألعاب مخصصة أكثر تخصصًا.
ما هي لغة دارت Dart ؟
لغة Dart هي لغة تم إنشاءها من قبل شركة Google و هي لغة سهلة جداً في التعلم و بمجرد تعلم أساسيات هذه اللغة نستطيع إنشاء تطبيقات Web, Android, IOS و إذا كان لديك خبرة سابقة في البرمجة سوف تعرف أن لغة Dart هي لغة قريبة من اللغات البرمجية الأخرى مثل جافا و جافاسكربت و كوتلن و غيرها, و يتم إستخدام هذه اللغة من قبل شركة جوجل لإنشاء التطبيقات الخاصة بهم.
بعض التطبيقات التي تم بناءها عبر فلاتر
تم بناء العديد من التطبيقات الناجحة باستخدام Flutter. إليك بعض الأمثلة على التطبيقات المشهورة التي تم تطويرها باستخدام Flutter:
- تطبيق Google Ads: تم تطوير تطبيق Google Ads باستخدام Flutter. يعد تطبيق Google Ads واحدًا من أهم التطبيقات التي يستخدمها المعلنون والناشرين لإدارة حملات الإعلان على منصة Google.
- تطبيق Alibaba: تم تطوير تطبيق Alibaba الشهير باستخدام Flutter. يعتبر Alibaba واحدًا من أكبر منصات التجارة الإلكترونية في العالم، وتطبيقهم يوفر تجربة تسوق سلسة ومستخدمة مذهلة.
- تطبيق Tencent: تم تطوير تطبيق Tencent الشهير باستخدام Flutter. Tencent هي شركة تكنولوجية صينية كبيرة وتطبيقهم يتضمن مجموعة متنوعة من الخدمات والمنتجات مثل الدفع الإلكتروني والترفيه والتواصل.
- تطبيق Reflectly: تم تطوير تطبيق Reflectly باستخدام Flutter. يعتبر Reflectly تطبيقًا لليومية الشخصية والتأمل يساعد المستخدمين على تسجيل أفكارهم ومشاعرهم وتحقيق النمو الشخصي.
- تطبيق Hamilton: تم تطوير تطبيق Hamilton المسرحي الشهير باستخدام Flutter. يقدم التطبيق معلومات وتحديثات حول عروض المسرح الموسيقية في Broadway ويوفر تجربة تفاعلية للمستخدمين.
- Xlanyu من إنتاج شركة Alibaba.
- تطبيق خاص بالألعاب Stadia.
هذه مجرد بعض الأمثلة على التطبيقات التي تم بناؤها باستخدام Flutter. يمكن استخدام Flutter لتطوير تطبيقات مختلفة في مجالات مثل التجارة الإلكترونية، الاجتماعيات، الصحة، الترفيه وغيرها. تتيح لك قوة ومرونة Flutter بناء تطبيقات متقدمة وجذابة لمختلف المنصات.
أصبح الطلب على فلاتر أكثر و أكثر خصوصاً في البلاد العربية و خارجها.
مميزات فلاتر Flutter
يوجد الكثير من المميزات التي تتميز بها لغة دارت عن باقي اللغات الأخرى سوف نذكر بعض هذه المميزات, Flutter هو إطار عمل لتطوير تطبيقات الجوال مفتوح المصدر وقوي جدًا يتميز بالعديد من الميزات. إليك بعض المميزات الرئيسية لفلاتر Flutter:
- شفرة مصدر واحدة: يعتبر هذا أحد أكبر المزايا في Flutter. يمكنك كتابة شفرة واحدة واستخدامها لتطوير تطبيقات لكلا من نظامي التشغيل iOS و Android. هذا يعني أنه يمكنك بناء تطبيق واحد بدلاً من تطوير تطبيقين منفصلين لكل نظام تشغيل.
- واجهة مستخدم جميلة ومرنة: يتيح لك Flutter بناء واجهات مستخدم جميلة ومرنة بواسطة مجموعة متنوعة من عناصر واجهة المستخدم المسبقة والمخصصة. يمكنك تخصيص التصميم وإنشاء تجربة مستخدم فريدة تناسب احتياجات تطبيقك.
- أداء عالي السرعة: يتم تشغيل تطبيقات Flutter مباشرة على المعالج الرسومي (GPU) بفضل محرك رسومات Flutter الخاص به. هذا يؤدي إلى أداء عالي السرعة وتجاوب سلس للتطبيقات حتى في العمليات الثقيلة. بالإضافة إلى ذلك، يتم تفعيل تحميل الملفات الكسلية بسرعة وتحسين أداء التطبيقات.
- تطوير سريع وفعال: يتميز Flutter بتجربة تطوير سريعة وفعالة. يوفر Flutter مجموعة واسعة من الأدوات والمكتبات التي تسرع عملية التطوير وتساعدك على إنشاء التطبيقات بشكل أسرع. كما يتميز بوجود مجتمع نشط من المطورين يقدمون الدعم والمساعدة في حالة وجود أي مشاكل أو استفسارات.
- متعدد المنصات: بفضل ميزة التطوير المستقل عن المنصة في Flutter، يمكنك تطوير تطبيقات للهواتف الذكية والأجهزة اللوحية والويب وسطح المكتب، وحتى الأجهزة المدمجة مثل Raspberry Pi وغيرها. يمنحك هذا المرونة والقدرة على استهداف مجموعة واسعة من المنصات.
- دعم قوي للحالة الطبيعية (State Management): يوفر Flutter أدوات قوية لإدارة حالة التطبيق، مما يجعل إدارة الحالة وتحديث واجهة المستخدم سهلة وفعالة. يمكنك استخدام إحدى الطرق المدمجة مثل Provider وBLoC وRedux أو استخدام أدواتإدارة الحالة الخارجية مثل Riverpod وGetX.
- الاستجابة الفورية (Hot Reload): تعد ميزة Hot Reload من بين أقوى ميزات Flutter. تتيح لك هذه الميزة إجراء تغييرات سريعة في الشفرة ورؤية النتائج على الفور دون الحاجة إلى إعادة تشغيل التطبيق. يسهل ذلك عملية التجربة والتعديل وتطوير التطبيق بشكل أسرع.
- دعم وثائق ممتاز: تتميز Flutter بوجود وثائق مفصلة وشاملة. تتضمن وثائق Flutter أمثلة وتعليمات وشروحات تفصيلية لمساعدتك في فهم واستخدام الميزات المختلفة وتنفيذ أفضل الممارسات في تطوير التطبيقات.
هذه مجرد بعض المميزات الرئيسية لفلاتر Flutter. يتميز Flutter بالكثير من المزايا الأخرى مثل دعم العناصر الجاهزة (Widgets)، التخصيص المرن، التوافق مع الأجهزة المختلفة، والتجربة الشخصية القوية.
التطوير و العمل السريع Fast Development
تم تصميم فلاتر للعمل بسرعة كبيرة حيث تسمح بإعادة التحميل السريع للتغيير في الكود و رؤية النتيجة في أقل من ثانية دون فقدان التطبيق.
الفلاتر يأتي بمجموعة غنية من Widget القابلة للتعديل و كلها بنيت من بناء العمل الحديث بالإضافة إلى ذلك يندمج الفلاتر مع أدوات التطوير الشائعة مما يعني أنه يمكنك البدء مع أداة التطوير التي تعرفها و تحب العمل عليها.
Expressive and Flexible UI
الفلاتر يحرك الـ Widget و الرسوم المتحركة و الإيماءات في الإطار ليمنحك السيطرة الكاملة على كل بيكسل في الشاشة و هذا يعني أنه لديك المرونة لبناء التصميم المخصص لها.
Native Apps For IOS and Android
تطبيقات الفلاتر تتبع النظام الأساسي للتطبيقات و التصميم مثل التمرير و و الأيقونات و الخطوط, و هذا هو السبب في أن التطبيقات التي بنيت بالفلاتر تعرض على كلا المنصتين.
الفلاتر رائع للمطورين لكل من الجدد و ذوي الخبرة إذا كنت جديداً على برمجة تطبيقات الموبايل, الفلاتر يقدم لك طرق سريعة و حديثة لعمل تطبيقات تعمل على نظامي IOS و Android.
إذا كنت من ذوي الخبرة كمطور تطبيقات تستطيع أن تضيف الفلاتر كأداة من ضمن أدواتك لعمل واجهات حديثة و ملمة.
الفلاتر مجاني و مفتوح المصدر يستخدم من قبل المطورين و المنظمان في جميع أنحاء العالم في ما ذلك المؤسسات و الوكالات و الشركات الناشئة.
جدول أعمال و محتوى كورس فلاتر
في مشوارنا هذا في تعلم فلاتر و دارت من الصفر حتى الإحتراف و بناء عدة مشاريع في الدورة, سوف نسير وفق خطة مرسومة لهذا, و الأبواب التي سوف ندرسها هي:
- أساسيات لغة دارت مثل التعامل مع الشروط و الحلقات التكرارية و المتغيرات و غيرهم.
- تعلم البرمجة الكائنية الموجهة oop مثل الوراثة و الكلاسات و الكائنات و الكبسلة.
- إنشاء الواجهات في فلاتر بأفضل الطرق و بأفضل كود نظيف.
- تعلم قواعد البيانات و جلبها من السيرفرات أو من الإنترنت أو من جهات ثالثة.
- تعلم أنماط التصميم mvc.
- تعلم إنشاء المواقع في فلاتر و دارت.
- التعامل مع الذاكرة المحلية و قواعد بيانات عن طريق sqflite.
- تعلم state management.
- تعلم أنماط التصميم أنماط التصميم mvvm.