أخبار المنتجات

الإصدار 3 من Jetpack Navigation مستقر

يستغرق الاطِّلاع على المقال 3 دقائق
عرض الملف الشخصي لـ "دون تيرنر"
Don Turner مهندسة علاقات المطوّرين

أصبح الإصدار 1.0 من Jetpack Navigation 3 ثابتًا 🎉. يمكنك استخدامه في تطبيقاتك على الإصدار العلني اليوم. تستخدم شركة JetBrains هذه الميزة بالفعل في تطبيق KotlinConf.

‫Navigation 3 هي مكتبة تنقّل جديدة تم إنشاؤها من البداية لتتوافق مع الحالة في Jetpack Compose. تمنحك هذه المكتبة إمكانية التحكّم الكامل في سجلّ الرجوع، وتساعدك في الاحتفاظ بحالة التنقّل، وتتيح لك إنشاء تنسيقات متجاوبة بسهولة (مثل تنسيق القائمة والتفاصيل). تتوفّر حتى نسخة متوافقة مع مختلف الأنظمة الأساسية من JetBrains.

لماذا مكتبة جديدة؟

تم تصميم مكتبة Jetpack Navigation الأصلية (المعروفة الآن باسم Nav2) قبل 7 سنوات، وعلى الرغم من أنّها تخدم أهدافها الأصلية بشكل جيد وتم تحسينها بشكل متكرر، إلا أنّ طريقة إنشاء التطبيقات الآن قد تغيّرت بشكل أساسي. 

أصبح الآن من الشائع استخدام البرمجة التفاعلية مع واجهة مستخدم تعريفية. تتّبع Nav3 هذا النهج. على سبيل المثال، تراقب NavDisplay (مكوّن واجهة المستخدم Nav3 الذي يعرض شاشاتك) ببساطة قائمة بالمفاتيح (يمثّل كل منها شاشة) تستند إلى حالة Compose وتعدّل واجهة المستخدم عند تغيُّر هذه القائمة.

nav-display.png

يمكن أن يصعّب Nav2 أيضًا الحصول على مصدر واحد للحقيقة لحالة التنقّل لأنّه يتضمّن حالة داخلية خاصة به. باستخدام Nav3، يمكنك توفير حالتك الخاصة، ما يمنحك تحكّمًا كاملاً.

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

يتيح لك هذا النهج ما يلي: 

يمكنك الاطّلاع على مزيد من المعلومات حول تصميمها وميزاتها في مدوّنة الإطلاق

نقل البيانات من Navigation 2

إذا كنت تستخدم حاليًا Nav2، وتحديدًا Navigation Compose، عليك التفكير في الانتقال إلى Nav3. لمساعدتك في ذلك، يتوفّر دليل نقل البيانات. في ما يلي الخطوات الرئيسية: 

  1. أضِف اعتماديات التنقّل 3.
  2. عدِّل مسارات التنقّل لتنفيذ NavKey. لا يجب أن تنفّذ مساراتك هذه الواجهة لاستخدام Nav3، ولكن في حال تنفيذها، يمكنك الاستفادة من وظيفة rememberNavBackStack في Nav3 لإنشاء سجلّ احتياطي ثابت.
  3. أنشئ فئات لتخزين حالة التنقّل وتعديلها، وهي المكان الذي يتم فيه تخزين حِزم الرجوع.
  4. استبدِل NavController بهذه الفئات.
  5. انقِل وجهاتك من NavGraph في NavHost إلى entryProvider.
  6. استبدِل NavHost بـ NavDisplay.

تجربة نقل بيانات وكيل الذكاء الاصطناعي

يمكنك تجربة استخدام وكيل ذكاء اصطناعي لقراءة دليل النقل وتنفيذ الخطوات في مشروعك. لتجربة ذلك باستخدام ميزة Agent Mode ضمن "Gemini في استوديو Android"، اتّبِع الخطوات التالية:

  • احفظ نسخة Markdown من الدليل في مشروعك.
  • ألصِق هذا الطلب في الوكيل (ولكن لا تضغط على Enter): "نقل هذا المشروع إلى Navigation 3 باستخدام ".
  • اكتب ‎ @migration-guide.md - سيوفّر ذلك الدليل كسياق للوكيل. 

كما هي الحال دائمًا، احرص على مراجعة التغييرات التي يجريها وكيل الذكاء الاصطناعي بعناية، فقد يرتكب أخطاءً. 

يسرّنا معرفة رأيك في أدائك أو أداء وكيلك، لذا يُرجى إرسال ملاحظاتك هنا.

وصفات تنقّل لذيذة للسيناريوهات الشائعة

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

code-recipes.png

تتوفّر حاليًا 19 وصفة، بما في ذلك: 

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

إذا كان لديك حالة استخدام شائعة تريد الاطّلاع على وصفة لها، يُرجى تقديم طلب للحصول على وصفة

ملخّص

لبدء استخدام Nav3، اطّلِع على المستندات والوصفات. بالإضافة إلى ذلك، يمكنك متابعة محتوى تقني طوال الأسبوع، بما في ذلك: 

  • فيديو تفصيلي حول واجهة برمجة التطبيقات يغطّي التقسيم إلى وحدات والرسومات المتحركة والتنسيقات التكيّفية.
  • جلسة أسئلة وأجوبة مباشرة مع المهندسين الذين صمّموا Nav3

يبدأ أسبوع Nav3 Spotlight في 1 ديسمبر 2025. 


كالعادة، إذا واجهت أي مشاكل، يُرجى إبلاغنا بها هنا

المؤلف:
متابعة القراءة