يضيف Jetpack Compose for Desktop طبقة Swing ودعم Apple Silicon

أصدرت JetBrains إصدارًا جديدًا من Jetpack Compose for Desktop، وهو إطار عمل مفتوح المصدر لتطوير واجهة المستخدم عبر الأنظمة الأساسية.

إذا كنت تقوم بأي نوع من أعمال التطوير، فمن المحتمل أنك سمعت عن JetBrains. إنها الشركة التي تقف وراء المجموعة الضخمة من بيئة التطوير المتكاملة (IDEs) التي تتضمن IntelliJ (قاعدة Android Studio)، وCLion، وPhpStorm، وغيرها الكثير. وهم الذين صنعوا أيضًا كوتلين، لغة البرمجة متعددة المنصات ذات الشعبية الكبيرة.

وقد عادت JetBrains إليها مرة أخرى. منذ أكثر من عام بقليل، قدمت Google محرك تخطيط جديدًا لنظام Android يسمى Jetpack Compose. لقد مرت عدد غير قليل من التغييرات الرئيسية منذ ذلك الحين، ولكنه تحول إلى بديل كفؤ (وإن كان لا يزال غير مستقر إلى حد ما) لتخطيطات XML الكلاسيكية لنظام Android.

ما علاقة Jetpack Compose بـ JetBrains؟ حسنًا، أولاً، إنه مكتوب بلغة Kotlin. ولكن أيضًا، تعمل JetBrains بصمت على نقل ميزة Compose إلى مساحة سطح المكتب. لقد تم الإعلان عنه كمعاينة مبكرة للمطورين، والآن أصبح JetBrains جاهزًا للإعلان رسميًا عن وجوده.

ما هو Jetpack يؤلف؟

لقد تحدثت عن ذلك قليلاً في المقدمة، ولكن أعتقد أنه يستحق المزيد من التوضيح. إذا كنت قد قمت بتطوير نظام التشغيل Android من قبل، فمن المحتمل أنك معتاد على كيفية عمل التخطيطات. أولاً، تقوم بتصميم تخطيطك في ملف XML، ثم تتفاعل مع هذا التخطيط من Java أو Kotlin. على الرغم من كونه عمليًا، إلا أنه قديم بعض الشيء، وقد يكون من الصعب إدارة تخطيطاتك المقسمة عبر اللغات.

وكبديل لذلك، بدأت Google في تطوير Jetpack Compose. يعد Compose محرك تخطيط لنظام Android مبنيًا على Kotlin. كل تخطيطك ورمزك المنطقي موجود في مكان واحد، مما يجعل التفاعل أسهل كثيرًا. كما أنه تعريفي، بدلاً من النمط الحتمي لتخطيطات XML.

قد يستغرق الانتقال من محرك تخطيط تعريفي من محرك أمري بعض الوقت للتعود عليه، ولكن يعد Compose بالتأكيد تحسينًا مقارنة بـ XML، على الرغم من أنه لا يزال في مراحله الأولى.

Jetpack يؤلف لسطح المكتب

لذا، يعد Compose بديلاً رائعًا للتخطيط لتطبيقات Android الأصلية. لكنها ليست (عادة) مشتركة بين الأنظمة الأساسية. وهنا يأتي دور JetBrains. قامت الشركة بنقل Jetpack Compose إلى مساحة سطح المكتب، مع دعم أنظمة التشغيل Windows وLinux وmacOS (كل من Intel وARM).

على الرغم من وجود محركات تخطيط أخرى لسطح المكتب، مثل Electron وJavaFX وUWP، إلا أنها تعاني من بعض الفوضى في الوقت الحالي. بعضها لا يعمل عبر الأنظمة الأساسية، لذا فهو يعمل فقط على نظام تشغيل واحد محدد. البعض الآخر عبارة عن منصة مشتركة من الناحية الفنية، ولكنها تتطلب الكثير من العمل لتوزيعها. ولا يزال التعامل مع البعض الآخر مجرد صعوبة، مثل JavaFX.

من ناحية أخرى، يعد Jetpack Compose for Desktop سهل الاستخدام نسبيًا، ويدعم قياس العرض، وله تصميم مدمج، وهو (تقريبًا) مشترك بين الأنظمة الأساسية بالكامل. على الرغم من أنه لا يمكنك بعد تجميع جميع التوزيعات من نظام تشغيل واحد، إلا أن الكود نفسه قابل للنقل بالكامل. تمامًا كما هو الحال مع Android، يعتمد التطبيق المعبأ على Java، على الرغم من أن المستخدمين لا يحتاجون إلى تثبيت JDK لاستخدامه.

التوافق المتبادل

نظرًا لأن Compose for Desktop لا يزال جديدًا، فهو يفتقد بعض الميزات. ولمساعدة المطورين على التغلب على هذه القيود، يمكن تشغيل Compose for Desktop بشكل تفاعلي مع اثنين من محركات تخطيط Java الأكثر شيوعًا، JavaFX وSwing. إذا كان لديك تطبيق سطح مكتب تم تطويره في أحد هذين المحركين (أو كليهما)، فيمكنك البدء في الانتقال إلى Compose مع الحفاظ على قاعدة التعليمات البرمجية الحالية لديك.

أندرويد + سطح المكتب

ماذا لو كنت تريد جلب تطبيق Compose Android إلى سطح المكتب؟ حسنًا، يمكنك أيضًا (نوعًا ما) القيام بذلك. يمكن بسهولة مشاركة عناصر واجهة المستخدم الخاصة بتطبيقك بين Android وسطح المكتب. لن تتمكن من مشاركة كل شيء، ولكن من المؤكد أن ذلك يجعل التطوير أسهل.

دعم أبل السيليكون

لقد ذكرت هذا أعلاه، ولكنني سأذكره مرة أخرى. ال أجهزة Mac الجديدة من Apple Silicon رائعة جدًا، لكن المعالجات تعتمد على بنية ARM CPU، مما يعني أن الكثير من تطبيقات macOS تعمل حاليًا من خلال مترجم Rosetta 2 x86. على الرغم من أن شركة Apple قامت بعمل جيد جدًا في هذه الترجمة، إلا أن برامج ARM الأصلية ستظل تعمل بشكل أفضل.

حسنًا، يدعم Jetpack Compose for Desktop خدمة Apple Silicon أصلاً. وهذا يعني أنه لا داعي للقلق بشأن انخفاض الأداء بسبب الترجمة أو بشأن الدعم المستقبلي عندما توقف Apple تقديمه.

وظائف

لذا، من الجيد جدًا أن تقوم JetBrains بإنشاء محرك تخطيط جديد لسطح المكتب، ولكن من يستطيع أن يقول إنه أفضل مما لدينا الآن؟

أنا.

لقد استخدمت أحدث إصدار متاح حتى كتابة هذا (0.2.0-build132) لإنشاء تطبيق بسيط لمنح الأذونات لـ SystemUI Tuner. نظرًا لأنني لست على دراية بالإنشاء والتصميم التعريفي، فقد كان الأمر أكثر صعوبة بالنسبة لي من تطبيق تخطيط XML، لكنني فعلت ذلك. وهو أسهل بكثير في الاستخدام من JavaFX.

على الرغم من أن دعم السمة (أي الوضع المظلم) لا يزال غير واضح بعض الشيء، فمن السهل جدًا إنشاء تخطيط تفاعلي، وبصرف النظر عن عدد قليل من الومضات عند تغيير حجم النافذة، فإن كل شيء يعمل بشكل جيد.

إذا كنت تريد التحقق من التطبيق، فإن كود المصدر متاح على جيثب. ما عليك سوى استيراده باستخدام IntelliJ أو Android Studio وسيكون جاهزًا للتشغيل.


أنا شخصياً متحمس جدًا لبرنامج Jetpack Compose لسطح المكتب. لم أكن أعلم بوجوده من قبل، لكنه بالفعل محرك تخطيط سطح المكتب المفضل لدي. يمكنك معرفة المزيد على موقع Jetpack Compose لسطح المكتب أو على جيثب.

ما رأيك في ذلك؟ هل يستحق الأمر التحقق وربما استخدامه بدلاً من الأطر الأخرى المتاحة؟ اسمحوا لي أن أعرف!

اعتمادات الصورة المميزة: JetBrains على جيثب