گوگل کتابخانه جدید Jetpack Navigation 3 را عرضه کرده است که از پایه، پردازش اعلانها در برنامههای اندروید را بازطراحی میکند. این کتابخانه جدید کنترل کامل بر پشتهٔ بازگشت را فراهم میکند و بهراحتی با مدیریت وضعیت Jetpack Compose ادغام میشود.
Jetpack Navigation 3 بر پایه اینگونه به وجود آمد که، با وجود عملکرد کامل نسخه پیشین، «نحوه ساخت برنامهها بهطور بنیادین تغییر کرده است».
بهطور خاص، همانگونه که مهندس گوگل Don Turner توضیح میدهد، اکثر برنامههای مدرن امروز از پارادایم برنامهنویسی واکنشی پیروی میکنند. این امر امکان تغییر اساسی در روش مدیریت پشتهٔ نمایش را برای توسعهدهندگان فراهم میسازد. برای مثال، در Navigation 3 برای رفتن به نمای جدید تنها کافی است یک مورد را به لیستی که توسط کامپوننت NavDisplay کتابخانه نظارت میشود، اضافه کنید. بههمین ترتیب، زمانی که میخواهید از یک صفحه به عقب بازگردید، مورد مربوطه را از لیست حذف میکنید. سپس NavDisplay بهصورت خودکار رابط کاربری را بر پایهٔ تغییرات لیست بهروزرسانی میکند.
یکی دیگر از مزایای عمدهٔ استفاده از مدیریت حالت Jetpack بهعنوان پایهٔ Navigation 3 این است که ایجاد یک منبع یکپارچهٔ حقیقت را بسیار ساده میکند. این منبع دقیقاً با حالت تعریفشده توسط توسعهدهنده همراستا میشود. در مقابل، Navigation 2 حالت داخلی خود را حفظ میکرد که منجر به تقسیم حالت برنامه بین نمایش برنامه و حالت Navigation 2 میشد.
Navigation 3 بهصورت کامل ماژولار شده است و از طریق APIهای مستقل که بهصورت یکپارچه با هم کار میکنند، انعطافپذیری و قابلیت سفارشیسازی بیشتری را فراهم میآورد. این امکان به توسعهدهندگان میدهد تا توابع پیچیده و خاص هر مورد استفاده را ایجاد کرده و از رفتارهای پیشفرضی که Navigation 3 برای الگوهای رایج ناوبری ارائه میکند، انحراف یافته و سفارشیسازی کنند. نکته جالب این است که این پیشفرضها نیز با استفاده از همان APIهای پایه پیادهسازی میشوند. برای مثال، توسعهدهندگان میتوانند انیمیشنهای صفحه را سفارشی کنند یا طرحبندیهای انعطافپذیری بسازند که بهصورت همزمان چند پانل را نمایش دهند.
برای دستیابی به سفارشیسازی بیشتر، توسعهدهندگان میتوانند مؤلفههای خاص Navigation 3 را با پیادهسازیهای خود جایگزین کنند. این کار بهدلیل در دسترس بودن کامل کد Navigation 3 در پروژه متنباز اندروید (AOSP) سادهتر میشود.
برای استفاده از Navigation 3 در یک برنامه، توسعهدهندگان باید یک کلید یکتا به هر مؤلفه قابل نمایش اختصاص دهند، سپس آن کلید را به پشتهٔ بازگشت اضافه کنند و NavDisplay را طوری تنظیم کنند که تغییرات این کلید را نظارت کند تا محتوای صفحه را بهصورت خودکار اضافه یا حذف نماید.
برای سادهسازی کار توسعهدهندگان، گوگل مخزنی را منتشر کرده است که در حال حاضر شامل ۱۹ دستورالعمل ناوبری میشود و بهزودی موارد بیشتری همچون پشتههای چندگانه، انتقال پارامترهای ناوبری، بازگرداندن نتایج از صفحهها و غیره اضافه خواهد شد.
در نهایت، Navigation 3 همچنین بر روی Jetpack Compose Multiplatform شرکت JetBrains قابلدسترس است. اگرچه هنوز در مرحلهٔ آلفا قرار دارد، این امکان را برای برنامههای غیراندروید فراهم میکند تا از APIهای جدید ناوبری بهرهبرداری کنند. برای حمایت بهتر از تجربههای کاملاً بومی، نسخهٔ چندپلتفرمی Navigation 3 شامل بهبودهای مخصوص به هر پلتفرم است، مانند پشتیبانی از حرکات کشیدن از لبه صفحه (edge pan) در iOS.