تم إطلاق الإصدار الثابت 1.0 من Jetpack Navigation 3 🎉. يمكنك الآن استخدامه في تطبيقاتك العلنية. وتستخدمه JetBrains حاليًا في تطبيق KotlinConf.
Navigation 3 هي مكتبة تنقّل جديدة تم إنشاؤها من الصفر لتتوافق مع حالة Jetpack Compose. تمنحك هذه الميزة تحكّمًا كاملاً في الأنشطة السابقة، وتساعدك في الاحتفاظ بحالة التنقّل، وتتيح لك إنشاء تنسيقات تكيُّفية بسهولة (مثل عرض على شكل قائمة مع تفاصيل). يتوفّر أيضًا إصدار من JetBrains يعمل على عدّة منصات.
لماذا نستخدم مكتبة جديدة؟
تم تصميم مكتبة Jetpack Navigation الأصلية (التي تُعرف الآن باسم Nav2) قبل 7 سنوات، وعلى الرغم من أنّها تخدم أهدافها الأصلية بشكل جيد وتم تحسينها بشكل متكرر، إلا أنّ طريقة إنشاء التطبيقات الآن قد تغيّرت بشكل جذري.
أصبحت البرمجة التفاعلية باستخدام واجهة مستخدم تعريفية هي المعيار الآن. ويعتمد Nav3 هذا النهج. على سبيل المثال، NavDisplay (مكوّن واجهة مستخدم Nav3 الذي يعرض شاشاتك) يراقب ببساطة قائمة بالمفاتيح (يمثّل كل منها شاشة) مدعومة بحالة Compose ويعدّل واجهة المستخدم الخاصة به عند تغيير هذه القائمة.
قد تجعل Nav2 أيضًا من الصعب الحصول على مصدر وحيد للحقيقة لحالة التنقّل لأنّها تتضمّن حالتها الداخلية الخاصة. باستخدام Nav3، يمكنك تقديم حالتك الخاصة، ما يمنحك تحكّمًا كاملاً.
أخيرًا، طلبتم المزيد من المرونة وإمكانية التخصيص. بدلاً من استخدام واجهة برمجة تطبيقات واحدة متكاملة، توفّر Nav3 واجهات برمجة تطبيقات أصغر حجمًا ومنفصلة (أو "وحدات أساسية") يمكن دمجها معًا لإنشاء وظائف معقّدة. يستخدم Nav3 نفسه هذه الوحدات الأساسية لتوفير إعدادات تلقائية معقولة لحالات استخدام التنقّل المحدّدة جيدًا.
يتيح لك هذا النهج ما يلي:
- تخصيص الصور المتحركة على الشاشة على مستوى التطبيق ككل أو على مستوى كل صورة متحركة على حدة
- عرض لوحات متعددة في الوقت نفسه وإنشاء تنسيقات مرنة باستخدام Scenes API
- يمكنك بسهولة استبدال مكوّنات Nav3 بعمليات التنفيذ الخاصة بك إذا أردت سلوكًا مخصّصًا
يمكنك الاطّلاع على مزيد من المعلومات حول تصميمه وميزاته في مدوّنة الإطلاق.
نقل البيانات من Navigation 2
إذا كنت تستخدم Nav2 حاليًا، وتحديدًا Navigation Compose، ننصحك بالانتقال إلى Nav3. لمساعدتك في ذلك، يتوفّر دليل نقل البيانات. الخطوات الرئيسية هي:
- أضِف اعتماديات الإصدار 3 من مكوّن التنقّل.
- يُرجى تعديل مسارات التنقّل لتنفيذ NavKey. ليس من الضروري أن تنفّذ مساراتك هذه الواجهة لاستخدام Nav3، ولكن إذا تم تنفيذها، يمكنك الاستفادة من دالة rememberNavBackStack في Nav3 لإنشاء أنشطة سابقة محفوظة.
- أنشئ فئات للاحتفاظ بحالة التنقّل وتعديلها، حيث يتم الاحتفاظ بالأنشطة السابقة.
- استبدِل NavController بهذه الفئات.
- انقل وجهاتك من NavGraph في NavHost إلى entryProvider.
- استبدِل NavHost بـ NavDisplay.
تجربة نقل بيانات وكيل الذكاء الاصطناعي
يمكنك تجربة استخدام وكيل ذكاء اصطناعي لقراءة دليل نقل البيانات وتنفيذ الخطوات في مشروعك. لتجربة ذلك باستخدام ميزة Agent Mode ضمن Gemini في "استوديو Android":
- احفظ نسخة Markdown هذه من الدليل في مشروعك.
- الصق هذا الطلب في الوكيل (ولكن لا تضغط على مفتاح Enter): "Migrate this project to Navigation 3 using " (نقل هذا المشروع إلى Navigation 3 باستخدام).
- اكتب @migration-guide.md، وسيؤدي ذلك إلى تزويد الوكيل بالدليل كسياق.
كالعادة، احرص على مراجعة التغييرات التي أجراها وكيل الذكاء الاصطناعي بعناية، فقد يرتكب أخطاء.
يسرّنا معرفة رأيك في أدائك أو أداء وكيلك، لذا يُرجى إرسال ملاحظاتك هنا.
وصفات تنقّل رائعة للسيناريوهات الشائعة
بالنسبة إلى حالات الاستخدام الشائعة ولكن الدقيقة، لدينا مستودع للوصفات. يوضّح هذا المثال كيفية دمج واجهات برمجة تطبيقات Nav3 بطريقة معيّنة، ما يتيح لك اختيار الوصفة أو تعديلها حسب احتياجاتك الخاصة. إذا تبيّن أنّ إحدى الوصفات شائعة، سننظر في "ترقية" الأجزاء غير الدقيقة منها إلى مكتبة Nav3 الأساسية أو المكتبات الإضافية.
تتوفّر حاليًا 19 وصفة، بما في ذلك:
- الأنشطة السابقة المتعددة
- التقسيم إلى وحدات وحقن التبعية
- تمرير وسيطات التنقّل إلى ViewModels (بما في ذلك استخدام Koin)
- عرض النتائج من الشاشات حسب الأحداث والحالة المشتركة
نعمل حاليًا على إعداد وصفة للروابط لصفحات معيّنة، بالإضافة إلى دمج Koin، ولدينا العديد من الخطط الأخرى. نشر أيضًا مهندس من JetBrains إصدارًا من الوصفات متوافقًا مع Compose Multiplatform.
إذا كانت لديك حالة استخدام شائعة تريد الاطّلاع على وصفة لها، يُرجى تقديم طلب وصفة.
ملخّص
للبدء في استخدام Nav3، يمكنك الاطّلاع على المستندات والوصفات. بالإضافة إلى ذلك، ترقَّب أسبوعًا كاملاً من المحتوى الفني، بما في ذلك:
- فيديو يقدّم نظرة متعمّقة على واجهة برمجة التطبيقات، ويشمل التقسيم إلى وحدات، والصور المتحركة، والتنسيقات التكيُّفية.
- جلسة أسئلة وأجوبة مباشرة مع المهندسين الذين صمّموا Nav3
يبدأ أسبوع Nav3 Spotlight في 1 ديسمبر 2025.
كالعادة، إذا واجهت أي مشاكل، يُرجى إرسالها هنا.
-
أخبار المنتجاتفي عام 2025، توسّعت منظومة Android المتكاملة لتشمل أجهزة أخرى تتخطى حدود الهاتف. واليوم، تتاح للمطوّرين فرصة الوصول إلى أكثر من 500 مليون جهاز نشط، بما في ذلك الأجهزة القابلة للطي والأجهزة اللوحية وأجهزة الواقع الممتد وأجهزة Chromebook والسيارات المتوافقة.
Fahd Imtiaz • مدّة القراءة: دقيقتان -
أخبار المنتجاتبما أنّ Unity تشغّل أكثر من نصف جميع الألعاب على الأجهزة الجوّالة في جميع أنحاء العالم، فإنّ الانطباعات الأولى مهمة. بالنسبة إلى مطوّري الألعاب، تُعدّ تجربة الإعداد السلسة والموثوقة للاعبين ضرورية لتعزيز معدّل الاحتفاظ باللاعبين من اليوم الأول وزيادة تفاعلهم على المدى الطويل.
Michelle Martin • مدّة القراءة: دقيقة واحدة -
أخبار المنتجاتمن خلال تطوير التطبيقات على Android XR، يمكنك تلبية احتياجات المستخدمين في أي وقت، سواء كانوا يبحثون عن تجربة غامرة بالكامل في المنزل أو تجربة سريعة أثناء التنقل، وذلك من خلال مجموعة واسعة من التطبيقات المكانية. في مؤتمر Android Dev Summit، احتفلنا بإنجاز رائع من خلال إطلاق نظارة XREAL AURA.
Amy Zeppenfeld, Vinny DaSilva • مدّة القراءة: 3 دقائق
يمكنك الحصول على آخر الإحصاءات حول تطوير تطبيقات Android في بريدك الوارد أسبوعيًا.