لطالما سعت Google إلى جعل Flutter أداة عالمية لإنشاء واجهات جذابة تعمل على أي منصة بنفس سرعة التطبيقات الأصلية لتلك الأنظمة الأساسية. للتأكد من أن هذا ممكن ، بدأنا بتركيز جهودنا على منصات الأجهزة المحمولة - Android و iOS. نتيجة لذلك ، تم نشر أكثر من 80000 تطبيق Flutter سريع وجميل على Google Play.
بناءً على نجاحاتنا ، لقد انشغلنا بتوسيع قدرات Flutter إلى منصات سطح المكتب لأكثر من عام الآن - macOS و Windows و Linux. هذا ينطبق على كل من تطبيقات الويب ومشاريع سطح المكتب التقليدية. على وجه الخصوص ، نحن مشغولون بإعادة هيكلة المحرك بشكل جدي. تهدف إعادة البناء إلى دعم عمل الماوس ولوحة المفاتيح بنفس نمط أنظمة سطح المكتب ، بالإضافة إلى دعم النوافذ التي يمكن تغيير حجمها. يتضمن ذلك إمكانات جديدة لواجهة المستخدم التي تعمل بشكل جيد لمنصات سطح المكتب. هذا ، على سبيل المثال ، دعم كثافة المواد و NavigationRail . يتضمن ذلك تجارب في تكامل عميق مع أنظمة تشغيل سطح المكتب بفضل Dart: FFI، والعمل مع قوائم النظام ومربعات الحوار القياسية. تم إجراء كل هذا للتأكد من أن Flutter مناسب ليس فقط لإنشاء مشاريع محمولة ، ولكن أيضًا جاهز لتطوير تطبيقات سطح مكتب حقيقية على أساسها.
لطالما رأينا Flutter كأداة لإنشاء مشاريع لمجموعة متنوعة من المنصات. في Google ، يتم تمثيل التعبير عن هذه الرؤية من خلال مشاريع مثل المساعد . الآن ، نحن متحمسون لرؤية الشركات الأخرى تطرح دعم Flutter لمنصات جديدة. اليوم ، يسر كل من Google و Canonical ، اللتان تحتفظان بـ Ubuntu ، أشهر توزيعات Linux في العالم ، الإعلان معًا عن إصدار إصدار ألفا من Flutter for Linux.
Linux Flutter?
في العام الماضي ، عندما أعلنت Google عن إمكانية تطوير تطبيقات سطح المكتب باستخدام Flutter ، رأت Canonical فرصة جذابة لإنشاء توزيعات Linux ، بما في ذلك Ubuntu ، وهي منصة جذابة لمطوري Flutter. يتقدم Flutter بسرعة إلى الأمام من حيث القدرات عبر الأنظمة الأساسية. أرادت شركة Canonical أن تكون في طليعة هذه الحركة. من خلال مساعدة Flutter في دعم تطبيقات Linux ، تمنح Canonical مطوري تطبيقات Flutter آلية سهلة للغاية لنشر أعمالهم في Snap Store ، وهو متجر تطبيقات Linux. من خلال جعل Linux النظام الأساسي الذي يدعم تطبيقات Flutter رسميًا ، تمنح Canonical المطورين الفرصة لعرض مشاريعهم على ملايين مستخدمي Linux وتوسيع عدد المشاريع عالية الجودة.متاح لمثل هؤلاء المستخدمين.
يبدو أن الميزات التالية لـ Flutter والنظام البيئي لهذا الإطار جذابة بشكل خاص لـ Canonical:
- مجتمع سريع النمو من مطوري التطبيقات.
- دعم لمنصات متعددة.
- القدرة على تطوير تطبيقات أصلية مُحسَّنة جيدًا.
- ميزات خاصة بأطر واجهة المستخدم الحديثة ، مثل دعم عناصر واجهة مستخدم التخطيط التصريحية التفاعلية.
- بيئة تطوير تطبيقات غنية باستخدام VS Code و Android Studio و IntelliJ.
تعامل منشور Google الأصلي حول تطوير سطح المكتب في Flutter مع إصدار ألفا يدعم تطبيقات macOS وخطط لدعم تطبيقات Linux و Windows. قامت Canonical باستثمارات كبيرة في تطوير Flutter مع فريق تطوير متخصص يهدف ، بالعمل مع المطورين في Google ، إلى ضمان أن مستخدمي معظم توزيعات Linux يمكنهم الاستمتاع بتطبيقات Flutter بكل سهولة. ستواصل Canonical العمل مع Google لزيادة تحسين دعم Linux والحفاظ على الإمكانات المتاحة لتطبيقات Flutter على Linux بنفس مستوى دعم الأنظمة الأساسية الأخرى.
تطبيق Flokk - دليل على استعداد Flutter لتطوير سطح المكتب
لإثبات أن Flutter جاهز لتطوير الأجهزة المحمولة ، عملنا مع المصممين والمطورين في gskinner لإنشاء تطبيق Flutter لسطح المكتب مبتكر وجذاب. هذا هو Flokk - تطبيق حقيقي يعمل مع البيانات الحقيقية. على وجه الخصوص - مع قائمة جهات الاتصال من جهات اتصال Google. هنا عرض فيديو من Flokk.
يتيح لك هذا التطبيق إدارة جهات الاتصال الخاصة بك. على وجه الخصوص - البحث عن جهات الاتصال وإضافة جهات اتصال جديدة وتعديل جهات الاتصال الحالية. يسمح لك Flokk أيضًا بربط جهات الاتصال الخاصة بك بحسابات Twitter و GitHub المناسبة والعمل مع البيانات من تلك الحسابات.
تم بناء Flokk Contacts على Flutter لأجهزة كمبيوتر سطح المكتب
. حقيقة أن التطبيق يمكنه عرض الإشعارات من Twitter و GitHub يحولها إلى شيء مثل الشبكة الاجتماعية الشخصية للمستخدم. إذا لم يتم دمج الشبكة الاجتماعية التي تهتم بها مع Flokk بعد ، فيمكنك حل هذه المشكلة ببساطة عن طريق إرسال العلاقات العامة المقابلة إلى مستودع المشروع ، لأن Flokk هو مشروع مفتوح المصدر بالكامل.
بالإضافة إلى تقديم أفكار مبتكرة لتفاعل المستخدم ، يستخدم Flokk قدرات Flutter لإنشاء واجهات جذابة وسهلة الاستخدام. يظهر أحد الأمثلة على هذه الاحتمالات في الشكل التالي. يظهر هنا أنه عند التبديل إلى السمة الداكنة للتطبيق ، لا يتم إجراء تغيير بسيط للون ولكن متحرك.
تسمح قدرات Flutter لـ Flokk بتقديم رسوم متحركة سلسة ، وتمرير عالي الأداء ، وسمات سهلة الاستخدام.
يقود Grant Skinner الفريق الإبداعي وراء Flokkمعروف بحلول التصميم الممتازة والأفكار المبتكرة لتجربة المستخدم. إليك ما قاله جرانت عن العمل مع Flutter على Linux: "تبين أن تطوير تطبيق Flokk Contacts كان مهمة سهلة للغاية! تمكنا من تطبيق جميع تجارب تطوير Flutter هنا وإنشاء تطبيق يستهدف Linux دون اللجوء إلى أي حيل خاصة. تبين أن التطبيق جيد جدًا. لقد استمتعنا حقًا بالعمل مع فريق Canonical. لقد كانوا متحمسين ومتحمسين لأعمالنا وأرادوا جعل Flutter أفضل من خلال التفكير ليس فقط في Linux ، ولكن في جميع الأنظمة الأساسية الأخرى أيضًا. لقد كان مشروعًا رائعًا وأحب حقًا إمكانية تطوير تطبيقات Flutter لأنظمة تشغيل سطح المكتب الأخرى. "
إذا كنت ترغب في استخدام Flokk على جهاز Linux الخاص بك ، فيمكنك تنزيل أحدث إصدار من التطبيق من GitHub . وإذا كنت تستخدم snapd ، فيمكنك تنزيل Flokk من Snap Store .
تثبيت Flutter على Linux
الآن بعد أن رأيت نوعية تطبيقات سطح المكتب التي يمكنك إنشاؤها باستخدام Flutter ، وخاصة تطبيقات Linux ، قد ترغب في تجربة Flutter على صندوق Linux الخاص بك. من أجل تبسيط عملية إعداد أنظمة Linux لتطوير تطبيقات Flutter قدر الإمكان ، يسعدنا أن نعلن أن Flutter SDK لنظام Linux متاح كحزمة snap في متجر Snap.... تحتوي هذه الحزمة على كل ما تحتاجه لتطوير تطبيقات Flutter باستخدام توزيعة Linux المفضلة لديك. ومع ذلك ، لن تحتاج إلى تثبيت مجموعة كاملة من تبعيات التطوير. كل ما عليك فعله هو تثبيت حزمة Flutter SDK و IDE snap التي تختارها. ثم لديك كل ما تحتاجه لإنشاء تطبيقات Linux الخاصة بك وبنائها ونشرها.
على سبيل المثال ، إذا كنت ترغب في البدء في تطوير تطبيقات Flutter على Linux ، وترغب في Visual Studio Code ، فإليك مجموعة من الأوامر التي ستحتاج إلى تشغيلها في الجهاز:
$ snap install --classic flutter
$ snap install --classic code
$ code --install-extension dart-code.flutter
إذا كنت ترغب في العمل على Linux لإنشاء ليس فقط سطح المكتب ، ولكن أيضًا تطبيقات الهاتف المحمول ، يمكنك الاستعداد لذلك عن طريق تثبيت Android SDK أو Android Studio (تم تضمين Android SDK هنا بالفعل). يمكنك العثور على تفاصيل حول أداة Flutter SDK هنا .
تطوير تطبيقات Linux لسطح المكتب
بعد تثبيت Flutter SDK على كمبيوتر Linux الخاص بك ، تحتاج إلى الانتقال إلى قناة
dev
أو master
تحديث Flutter لإنشاء تطبيقات سطح المكتب . فأنت بحاجة إلى تمكين الدعم لتطبيقات سطح مكتب Linux:
$ flutter channel dev
$ flutter upgrade
$ flutter config --enable-linux-desktop
الآن عندما تنشئ مشروع Flutter جديدًا ، سيكون لديك دليل فرعي
linux
يسمح لك بتشغيل التطبيق على Linux:
$ flutter create counter
$ cd counter
$ flutter run -d linux
يعمل تطبيق Flutter Counter الشهير بشكل رائع على نظام Linux
أيضًا ، وسيكون لديك تطبيق Linux جديد تمامًا تم إنشاؤه باستخدام Flutter ويعمل على أحدث إصدار مستقر من GTK +. إذا كان لديك بالفعل مشروع Flutter تريد تجهيزه بدعم Linux ، فبعد أن قمت بذلك بعد تمكين دعم Linux في مثل هذه المشاريع ، يمكنك إضافة الدليل إلى مشروعك
linux
بنفسك:
$ cd my_flutter_app
$ flutter create .
سيؤدي هذا إلى إنشاء دليل فرعي بمشروع خاص مطلوب لإنشاء وتشغيل تطبيق Flutter على سطح مكتب Linux.
ترتيب الوصول إلى كود Linux الأصلي من Flutter
بالإضافة إلى دعم تطبيقات سطح المكتب عن طريق كتابة رمز Dart لإنشاء عناصر واجهة مستخدم Flutter ، يمكن لتطبيق Linux لسطح المكتب الوصول إلى إمكانات Linux الأصلية باستخدام قنوات النظام الأساسي أو واجهة الوظائف الأجنبية (FFI) لـ C / C ++ ... أو ، إذا كنت تفضل ذلك ، يمكنك إعادة استخدام الكود الحالي الذي يمكن العثور عليه في pub.dev، على موقع مدير الحزم لـ Dart and Flutter. معظم الحزم التي تجدها في pub.dev مكتوبة بلغة Dart فقط ، ومعظم هذه الحزم تعمل بشكل جيد في تطبيقات Linux. تحتوي بعض الحزم ، التي تسمى المكونات الإضافية ، على كود أصلي يستهدف نظامًا أساسيًا معينًا. كجزء من هذا الإصدار ، نشرنا ثلاثة مكونات إضافية على pub.dev تستخدم وظائف Linux الأصلية:
- url_launcher : يفتح عنوان URL في متصفحك الافتراضي.
- Shared_preferences : تفضيلات المستخدم المستخدمة في جلسات التطبيق المختلفة.
- path_provider : معلومات المسار المتعلقة بأدلة معينة ، مثل دليل التحميلات والصور وما شابه ذلك.
يمكنك استخدام كل من هذه المكونات الإضافية في تطبيقاتك ، ولكن يمكن أيضًا أن تكون بمثابة أمثلة لكيفية العمل مع ميزات Linux الأصلية من كود Flutter. على سبيل المثال ، هذا هو الكود المصدري لتنفيذ البرنامج المساعد url_launcher.
نشر التطبيقات في Snap Store
لنشر تطبيق Flutter على Snap Store ، تحتاج أولاً إلى تثبيت Snapcraft ، الأداة المستخدمة لإنشاء ونشر التطبيقات كحزم snap:
$ sudo snap install snapcraft --classic
للاستفادة من إمكانات Snapcraft ، ستحتاج إلى إنشاء ملف في دليل مشروع التطبيق
snapcraft.yaml
. على سبيل المثال ، كيف يبدو مثل هذا الملف لـ Flokk:
name: flokk-contacts
version: 1.0.1
summary: Flokk Contacts
description: A fresh and modern Google Contacts manager that integrates with GitHub and Twitter.
confinement: strict
base: core18
grade: stable
apps:
flokk-contacts:
command: flokk-contacts
extensions: [flutter-master]
plugs:
- network
parts:
flokk-contacts:
source: .
plugin: flutter
flutter-target: lib/main.dart # ,
الآن في الدليل الذي يحتوي على الملف ،
snapcraft.yaml
يمكنك تشغيل Snapcraft لإنشاء حزمة تطبيق snap:
$ snapcraft
إذا كان كل شيء يعمل كما هو متوقع ، فسيقوم هذا الأمر بإنشاء ملف في دليل العمل الحالي. سوف يطلق عليه شيء من هذا القبيل:
flokk-contacts_1.0.1_amd64.snap
بعد تجهيز حسابك لنشر التطبيقات على Snap Store ، يمكنك نشر اللقطة التي أنشأتها للتو:
$ snapcraft login
$ snapcraft register flokk-contacts
$ snapcraft upload flokk-contacts_1.0.1_amd64.snap --release edge
نحن هنا نحمل التطبيق إلى Snap Store ونحاول نشره في موجز Edge . بمجرد نشر التطبيق على هذه القناة ، يمكنك تثبيته إما من خلال عميل سطح المكتب Snap Store أو باستخدام سطر الأوامر:
$ snap install --edge flokk-contacts
يمكن العثور هنا على تفاصيل حول كيفية إنشاء تطبيقك الأول ونشره على Snap Store .
أمثلة على تطبيقات Flutter Desktop
يعد تطبيق Flokk مثالًا رائعًا على مشروع حقيقي لأجهزة سطح مكتب Linux. للحصول على مثال أبسط ، ألق نظرة على تطبيق Photo Search . تم إنشاؤه خصيصًا لإثبات قدرات Flutter لتطوير تطبيقات سطح المكتب.
تطبيق البحث عن الصور
هذا تطبيق بسيط للبحث عن الصور عبر الإنترنت يستخدم العديد من المكونات الإضافية للوصول إلى الوظائف الأصلية للأنظمة الأساسية التي يدعمها ، بما في ذلك macOS و Linux.
إذا كنت بحاجة إلى إرشادات خطوة بخطوة حول كيفية تطوير تطبيقات Linux لسطح المكتب ،فقم بإلقاءنظرة على هذا البرنامج التعليمي لمعمل الرموز. يركز على استخدام OAuth و GraphQL لبناء عميل GitHub باستخدام Flutter.
عميل GitHub
إذا كنت تبحث عن استكشاف مشروع أكثر تعقيدًا يستخدم الكثير من إمكانيات Flutter ولديه بعض أمثلة الأكواد المثيرة للاهتمام ، فيمكنك إلقاء نظرة على تطبيق Flutter Gallery . تم إعادة بنائه العام الماضي. وهي تدعم الآن منصات سطح المكتب بالإضافة إلى الأنظمة الأساسية للجوّال. إذا كنت تريد مشاهدة هذا التطبيق قيد التشغيل ، فيمكنك تنزيله من Snap Store .
يمكن تنزيل تطبيق Flutter Gallery من Snap Store
وهنا تطبيق سطح مكتب آخر يوضح إمكانيات Flutter الترفيهية. هذه لعبة باتوفو متعددة اللاعبينتم إنشاؤها بواسطة Thorsten Lorenz. تتيح هذه اللعبة الجميلة للاعبين من جميع أنحاء العالم التنافس ضد بعضهم البعض في الوقت الفعلي.
لعبة Batufo التي تعمل على منصات مختلفة مدعومة من Flutter
Thorsten ابتكرت هذه اللعبة بدعم من منصات مختلفة ، بما في ذلك Linux و macOS و Android و iOS. إذا كنت مهتمًا بمعرفة كيفية تطوير هذه اللعبة ، وإذا كنت ترغب في مشاهدة تطور هذا المشروع ، فيمكنك مشاهدةمقاطع الفيديو هذه والبحث في مستودع المشروع. على Linux ، يمكن تثبيت هذه اللعبة من Snap Store .
النتيجة
مع إصدار الإصدار ألفا من Flutter for Linux ، وبفضل التعاون الوثيق بين Google و Canonical ، يمكن لمطوري Linux الآن استخدام إمكانات Flutter لإنشاء تطبيقات مصممة خصيصًا لأنظمة التشغيل الخاصة بهم. كل ما عليك فعله هو تثبيت Flutter SDK snap ، وإنشاء التطبيق واختباره باستخدام VS Code أو Android Studio ، ونشره على Snap Store. للحصول على أخبار حول تطوير سطح المكتب باستخدام Flutter ، انظر هنا . وهو أمر مهم جدًا بالنسبة لنا ، حاول ترك تعليقحول الميزات الجديدة لـ Flutter. سيساعدنا هذا في جعل دعم Linux لتطبيقات Flutter جيدًا قدر الإمكان. في الواقع ، نحن نسعى جاهدين لتحقيق الشيء نفسه من خلال العمل مع منصات أخرى.
يعد Flutter for Linux من فريق التطوير في Canonical خطوة عملاقة إلى الأمام ، وخطوة نحو حلمنا في جعل Flutter إطار تطوير التطبيقات النهائي لجميع الأنظمة الأساسية. حقيقة أن تطبيقات Flutter يمكن تطويرها الآن لسطح المكتب تجعل محرك Flutter أكثر سهولة في الوصول إلى مجموعة متنوعة من الأجهزة. بينما لا تستطيع Google دعم هذه الأجهزة بشكل مباشر ، تخطط الشركة لمواصلة بناء شراكات مع شركات أخرى وتطوير نظام Flutter البيئي.
نريد رؤية Flutter على جميع الأجهزة التي تحتاج إلى تطبيقات سريعة وجذابة.
هل جربت إنشاء تطبيقات Flutter لنظام التشغيل Linux؟