گوگل کتابخانه جدید Jetpack Navigation 3 را منتشر کرده است که از پایه مدیریت اعلانها در برنامههای اندروید را بازطراحی میکند. این کتابخانه جدید کنترل کامل روی پشته بازگشت را فراهم میکند و بهصورت یکپارچه با مدیریت وضعیت Jetpack Compose ادغام میشود.
Jetpack Navigation 3 بر این شناخت ایجاد شد که اگرچه نسخهٔ پیشین آن کاملاً عملکردی بود، اما «نحوهٔ ساخت برنامهها بهطور اساسی تغییر کرده است».
بهطور خاص، همانطور که مهندس گوگل دان ترنر توضیح میدهد، اکثر برنامههای مدرن امروز از پارادایم برنامهنویسی واکنشی پیروی میکنند. این امکان را فراهم میسازد تا بهصورت رادیکال روش مدیریت پشتهٔ نماها توسط توسعهدهندگان تغییر یابد. بهعنوان مثال، با 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.