גרסה 1.0 של Jetpack Navigation 3 יציבה 🎉. אתם יכולים להשתמש בה באפליקציות הייצור שלכם כבר היום. חברת JetBrains כבר משתמשת בו באפליקציית KotlinConf.
Navigation 3 היא ספריית ניווט חדשה שנבנתה מאפס כדי לתמוך במצב של Jetpack Compose. היא מאפשרת לכם שליטה מלאה במקבץ פעילויות קודמות (back stack), עוזרת לכם לשמור על מצב הניווט ומאפשרת לכם ליצור בקלות פריסות אדפטיביות (כמו רשימה ופירוט). יש אפילו גרסה בפלטפורמות שונות של JetBrains.
למה צריך ספרייה חדשה?
ספריית הניווט המקורית של Jetpack (עכשיו Nav2) תוכננה לפני 7 שנים, ולמרות שהיא משרתת היטב את המטרות המקוריות שלה ועברה שיפורים חוזרים, הדרך שבה אפליקציות נבנות השתנתה באופן מהותי.
תכנות ריאקטיבי עם ממשק משתמש דקלרטיבי הוא עכשיו הנורמה. Nav3 משתמש בגישה הזו. לדוגמה, NavDisplay (רכיב ממשק המשתמש Nav3 שמציג את המסכים) פשוט עוקב אחרי רשימה של מקשים (כל אחד מייצג מסך) שמגובה על ידי מצב Compose, ומעדכן את ממשק המשתמש שלו כשהרשימה הזו משתנה.
בנוסף, יכול להיות שיהיה קשה להשתמש ב-Nav2 כדי להגדיר מקור מהימן אחד למצב הניווט, כי יש לו מצב פנימי משלו. ב-Nav3, אתם מספקים את הסטייט שלכם, כך שיש לכם שליטה מלאה.
בנוסף, ביקשת יותר גמישות ויכולת התאמה אישית. במקום להשתמש ב-API יחיד ומונוליטי, Nav3 מספקת ממשקי API קטנים ומנותקים (או 'אבני בניין') שאפשר לשלב ביניהם כדי ליצור פונקציונליות מורכבת. הספרייה Nav3 עצמה משתמשת באבני הבניין האלה כדי לספק הגדרות ברירת מחדל הגיוניות לתרחישי שימוש מוגדרים היטב בניווט.
הגישה הזו מאפשרת לכם:
- התאמה אישית של אנימציות במסך ברמה הגלובלית וברמה האישית
- להציג כמה חלוניות בו-זמנית וליצור פריסות גמישות באמצעות Scenes API
- אם רוצים התנהגות מותאמת אישית, אפשר להחליף בקלות את רכיבי Nav3 בהטמעות משלכם
מידע נוסף על העיצוב והתכונות של התוסף זמין בבלוג ההשקה.
מיגרציה מ-Navigation 2
אם אתם כבר משתמשים ב-Nav2, ובמיוחד ב-Navigation Compose, כדאי לשקול מעבר ל-Nav3. כדי לעזור לכם בביצוע המעבר, הכנו מדריך להעברת נתונים. השלבים העיקריים הם:
- מוסיפים את יחסי התלות של Navigation 3.
- מעדכנים את מסלולי הניווט כדי להטמיע את NavKey. לא חייבים להטמיע את הממשק הזה במסלולים כדי להשתמש ב-Nav3, אבל אם עושים את זה, אפשר לנצל את הפונקציה rememberNavBackStack של Nav3 כדי ליצור מקבץ פעילויות קודמות (back stack) מתמשך.
- יוצרים מחלקות כדי להחזיק ולשנות את מצב הניווט – כאן נשמרים מחסני הנתונים של החזרה.
- מחליפים את NavController במחלקות האלה.
- מעבירים את היעדים מ-NavGraph של NavHost אל entryProvider.
- מחליפים את NavHost ב-NavDisplay.
ניסויים בהעברת סוכני AI
אפשר להתנסות בשימוש בסוכן AI כדי לקרוא את מדריך ההעברה ולבצע את השלבים בפרויקט. כדי לנסות את זה באמצעות Agent Mode ב-Gemini ב-Android Studio:
- שומרים את גרסת ה-Markdown של המדריך הזה בפרויקט.
- מדביקים את ההנחיה הזו לסוכן (אבל לא מקישים על Enter): "Migrate this project to Navigation 3 using ".
- מקלידים @migration-guide.md – הפעולה הזו תספק את המדריך כהקשר לסוכן.
כמו תמיד, חשוב לבדוק בקפידה את השינויים שבוצעו על ידי סוכן ה-AI – הוא עלול לטעות!
נשמח לשמוע איך הייתה חוויית השירות שלך או של הנציג שטיפל בפנייה. אפשר לשלוח משוב כאן.
מתכונים שימושיים לניווט בתרחישים נפוצים
לתרחישי שימוש נפוצים אבל מורכבים, יש לנו מאגר מתכונים. המאמר הזה מראה איך לשלב את ממשקי ה-API של Nav3 בצורה מסוימת, ומאפשר לכם לבחור או לשנות את המתכון בהתאם לצרכים הספציפיים שלכם. אם מתכון מסוים יתברר כפופולרי, נשקול להוסיף את החלקים הלא מורכבים שלו לספריית הליבה של Nav3 או לספריות של תוספים.
יש כרגע 19 מתכונים, כולל מתכונים ל:
- Multiple back stacks
- מודולריזציה והזרקת תלות
- העברת ארגומנטים של ניווט אל ViewModels (כולל שימוש ב-Koin)
- החזרת תוצאות ממסכים לפי אירועים ולפי מצב משותף
אנחנו עובדים כרגע על מתכון לקישורים עמוקים, וגם על שילוב של Koin, ויש לנו עוד הרבה תוכניות. מהנדס מ-JetBrains פרסם גם גרסה של המתכונים ל-Compose Multiplatform.
אם יש לכם תרחיש נפוץ שאתם רוצים לקבל מתכון בשבילו, אתם יכולים לשלוח בקשה למתכון.
סיכום
כדי להתחיל להשתמש ב-Nav3, כדאי לעיין במסמכים ובמתכונים. בנוסף, כדאי לעקוב אחרי התוכן הטכני שיועלה במשך שבוע שלם, כולל:
- סרטון מידע מעמיק על ה-API, שכולל הסברים על מודולריזציה, אנימציות ופריסות דינמיות.
- מפגש שאלות ותשובות עם המהנדסים שבנו את Nav3.
שבוע ההדגשה של Nav3 מתחיל ב-1 בדצמבר 2025.
כמו תמיד, אם נתקלתם בבעיות, אתם מוזמנים לדווח עליהן כאן.
-
חדשות על מוצריםבשנת 2025, הסביבה העסקית של Android התרחבה הרבה מעבר לטלפון. כיום, למפתחים יש הזדמנות להגיע ליותר מ-500 מיליון מכשירים פעילים, כולל מכשירים מתקפלים, טאבלטים, XR, Chromebook ומכוניות תואמות.
Fahd Imtiaz • משך הקריאה: 2 דקות -
חדשות על מוצריםהיום אנחנו שמחים להודיע על השקת הגרסה היציבה של ספריות AndroidX Security State גרסה 1.1.0 ו-Security State Provider גרסה 1.0.0.
Maunik Shah, Alec Garcia, Joseph Yong • משך הקריאה: 4 דקות -
חדשות על מוצריםהיום אנחנו משיקים את קבוצת המשימות הראשונה לטווח ארוך (LHT), שהן משימות מורכבות מאוד שמהנדס צריך להקדיש להן כמה ימים או אפילו שבוע כדי להשלים אותן. בנוסף, אנחנו משיקים הערכה באמצעות סוכן, ומתחילים עם סוכנים מספקי מודלים תואמים.
Matthew McCullough • משך הקריאה: 3 דקות
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?