إطار بناء الواجهات البرمجية والتفاعلية لأندرويد

في البداية، جيتباك كومبوز (Jetpack Compose) هو إطار عمل مفتوح المصدر ومستجيب (Reactive) لبناء واجهات المستعمل لنظام أندرويد، طورته شركة جوجل باستخدام لغة كوتلن. أُعلن عن المعاينة الأولى لإطار العمل في مايو 2019، بينما أُتيحت النسخة المستقرة الجاهزة للإنتاج الفعلي في يوليو 2021. ونتناول فيما يلي مزيدًا من التفاصيل.
@Composable
علاوةً على ذلك، تُبنى واجهة المستعمل لتطبيقات نظام أندرويد في إطار العمل "كومبوز" باستخدام دوال المُعَلِّمَة (@Composable)، وهي الدوال التي تُحدد شكل عناصر الشاشة بناءً على حالتها. يعتمد "جيتباك كومبوز" على إضافة لمترجم لغة كوتلن لتحويل دوال المُعَلِّمَة إلى عناصر واجهة مستعمل فعلية. مثلًا، يُحدد الكود التالي عنصر واجهة مستعمل بسيط:
التاريخ
وفي هذا السياق، انتقل "كومبوز" إلى المرحلة التجريبية المتقدمة في فبراير 2021، بينما أُطلقت أول نسخة جاهزة للإنتاج الفعلي في يوليو من العام نفسه.
كذلك، أُعلن عن المعاينة الأولى لإطار العمل جيتباك كومبوز (Jetpack Compose) في مؤتمر جوجل إمباكت في مايو 2019. وصدرت النسخة المخصصة للمطورين (Developer Preview) في أكتوبر 2019، تلتها النسخة التجريبية الأولى في أغسطس 2020.
المزايا والخصائص
كذلك، وعند تحديث الحالة، يتم استدعاء دوال المعلمة لتحديث العناصر الظاهرة علي واجهة المستعمل بالقيم الجديدة في عملية يطلق عليها إعادة البناء او التشكيل Recomposition ، ويكون هذا التحديث في العنصر الذي حدث به التغير وتبقي باقي العناصر في واجهة المستعمل كما هي.
وفي هذا السياق، كذلك يُعد جيتباك جلانس (Jetpack Glance) إطار عمل مبنيًا على "جيتباك كومبوز" لتطوير المصغرات لنظام أندرويد، وقد أُطلق أول إصدار مستقر منه في سبتمبر 2023.
ومن جهة أخرى، شهد الإصدار 1.0 تقديم ميزة معاينة كومبوز (Compose Preview) المُدمجة داخل بيئة أندرويد استوديو بدءًا من إصدار (Arctic Fox)؛ وتتيح هذه الميزة معاينة المكونات بإعدادات وتكوينات مختلفة دون الحاجة لترجمة التطبيق وتشغيله على جهاز فعلي.
إضافةً إلى ذلك، يدعم جيتباك كومبوز نظام أندرويد بدءًا من الإصدار 5.0 فما فوق. يعتمد إطار العمل على لغة البرمجة كوتلن، ويقدم نموذج برمجة مستجيبًا (Reactive) شبيهاً بأطر عمل واجهات المستعمل الأخرى مثل فلاتر ، وفيو دوت جي إس، ورياكت نيتف .
علاوةً على ذلك، وفي سبتمبر 2024، أُطلق الإصدار المستقر 1.0 من واجهات برمجة التطبيقات لـ Jetpack Compose المخصصة لبناء واجهات مستعمل متكيفة باستعمال نمط Material 3.
من جانب آخر، تُعرَّف واجهة المستعمل في "كومبوز" باستخدام دوال عادية تأتي بعد المُعَلِّمَة @Composable، وتُسمى دوال المُعَلِّمَة لأنه تاتي بعد العلامة @Composable ، وظيفة هذه الدوال هو تشكيل عناصر واجهة المستعمل. و يستعمل مترجم "كومبوز" دوال المُعَلِّمَة لإنشاء كود واجهة المستعمل المكرر في أي جزء من البرنامج (Boilerplate code).
الإنتشار
من جانب آخر، وبحلول أكتوبر 2022، بلغت نسبة التطبيقات التي تعتمد على "كومبوز" 16% من بين أصل 1000 تطبيق الأكثر استخدامًا على متجر جوجل بلاي، وكان من بينها تطبيقات لشركات كبرى مثل إير بي إن بي، و لايفت، و سكوير . وفي مايو 2024، ارتفعت هذه النسبة لتصل إلى 40%.
من جهة ثانية، كما أعادت جوجل كتابة أجزاء من تطبيق الإعدادات في نظام أندرويد 14 باستعمال "كومبوز". ومن جانبها، طوّرت شركة ميتا تطبيقها للتواصل الاجتماعي ثريدز في غضون خمسة أشهر فقط باستعمال "كومبوز"، كما أُعيدت كتابة تطبيق إنستغرام لنظام أندرويد باستعمال الإطار نفسه.
كذلك، وفي سنة 2022، أوضحت جوجل تفاصيل استخدامها لإطار العمل "كومبوز" أثناء إعادة كتابة تطبيق متجر جوجل بلاي؛ حيث ذكرت أن "بناء واجهة المستعمل أصبح يتطلب كودًا أقل بكثير، يقل أحيانًا بنسبة تصل إلى 50%"، إضافة إلى تمكن المطورين من تحسين أداء التطبيق.
وعلى صعيد آخر، عند إطلاق الإصدار 1.0 من جيتباك كومبوز ، صرّحت شركة جوجل قائلة: "هناك بالفعل أكثر من 2,000 تطبيق في متجر جوجل بلاي تستعمل كومبوز – بل إن تطبيق متجر جوجل بلاي نفسه يستعمله."
fun Greeting(name: String) {
Text(text = "Hello $name")
}
كومبوز عابر المنصات
من جانب آخر، أُطلق الإصدار التجريبي الأول (1.0 alpha) في أغسطس 2021، وثُم أُضيفت إمكانية دعم نظام تطبيقات أبل آي أو إس في مايو 2023.
إضافةً إلى ذلك، يُعد كومبوز عابر المنصات إطار عمل لتطوير واجهات المستعمل متعدد منصات التشغيل، طوّرته شركة جيت برينز بناءً على إطار العمل جيتباك كومبوز. يُعتبر هذا الإطار نسخة مقتبسة و محولة من "جيتباك كومبوز" ليعمل على أنظمة ويندوز، وماك أو إس، و لينكس، إلى جانب واجهات الويب.
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟