חדשות על מוצרים

גרסה 3 של Jetpack Navigation יציבה

משך הקריאה: 3 דקות
צפייה בפרופיל של Don Turner
Don Turner מהנדס/ת ליחסי מפתחים

גרסה 1.0 של Jetpack Navigation 3 יציבה 🎉. אתם יכולים להשתמש בה באפליקציות הייצור שלכם כבר היום. חברת JetBrains כבר משתמשת בו באפליקציית KotlinConf שלה.

‫Navigation 3 היא ספריית ניווט חדשה שנבנתה מאפס כדי לתמוך במצב של Jetpack Compose. הוא מאפשר לכם שליטה מלאה במקבץ פעילויות קודמות (back stack), עוזר לכם לשמור על מצב הניווט ומאפשר לכם ליצור בקלות פריסות אדפטיביות (כמו רשימה ופירוט). יש אפילו גרסה בפלטפורמות שונות של JetBrains.

למה צריך ספרייה חדשה?

ספריית Jetpack Navigation המקורית (עכשיו Nav2) תוכננה לפני 7 שנים, ולמרות שהיא משרתת היטב את המטרות המקוריות שלה ועברה שיפורים חוזרים, הדרך שבה אפליקציות נבנות השתנתה באופן מהותי. 

תכנות ריאקטיבי עם ממשק משתמש הצהרתי הוא עכשיו הנורמה. ‫Nav3 משתמש בגישה הזו. לדוגמה, NavDisplay (רכיב ממשק המשתמש של Nav3 שמציג את המסכים) פשוט עוקב אחרי רשימה של מקשים (כל אחד מייצג מסך) שמגובה על ידי מצב Compose, ומעדכן את ממשק המשתמש כשהרשימה הזו משתנה.

nav-display.png

בנוסף, יכול להיות שיהיה קשה להשתמש ב-Nav2 כדי ליצור מקור אמת יחיד למצב הניווט, כי יש לו מצב פנימי משלו. ב-Nav3, אתם מספקים את הסטייט שלכם, כך שיש לכם שליטה מלאה.

בנוסף, ביקשת לקבל יותר גמישות ואפשרויות להתאמה אישית. במקום להשתמש ב-API יחיד ומונוליטי, ב-Nav3 נעשה שימוש בממשקי API קטנים יותר ומנותקים (או ב "אבני בניין") שאפשר לשלב ביניהם כדי ליצור פונקציונליות מורכבת. ספריית Nav3 עצמה משתמשת באבני הבניין האלה כדי לספק הגדרות ברירת מחדל הגיוניות לתרחישי שימוש מוגדרים היטב של ניווט. 

הגישה הזו מאפשרת לכם: 

מידע נוסף על העיצוב והתכונות של הכלי זמין בבלוג ההשקה. 

מיגרציה מגרסה 2 של Navigation

אם אתם כבר משתמשים ב-Nav2, ובמיוחד ב-Navigation Compose, כדאי לשקול מעבר ל-Nav3. כדי לעזור לכם בביצוע המעבר, יש לנו מדריך להעברת נתונים (מיגרציה). השלבים העיקריים הם: 

  1. מוסיפים את יחסי התלות של Navigation 3.
  2. מעדכנים את מסלולי הניווט כדי להטמיע את NavKey. לא חייבים להטמיע את הממשק הזה במסלולים כדי להשתמש ב-Nav3, אבל אם עושים את זה, אפשר לנצל את הפונקציה rememberNavBackStack של Nav3 כדי ליצור מקבץ פעילויות קודמות (back stack) מתמשך.
  3. יוצרים מחלקות כדי להחזיק ולשנות את מצב הניווט – כאן נשמרים מחסני הנתונים של ההיסטוריה.
  4. מחליפים את NavController במחלקות האלה.
  5. מעבירים את היעדים מ-NavGraph של NavHost אל entryProvider.
  6. מחליפים את NavHost ב-NavDisplay.

ניסויים בהעברת סוכני AI

אפשר להתנסות בשימוש בסוכן AI כדי לקרוא את מדריך ההעברה ולבצע את השלבים בפרויקט. כדי לנסות את זה באמצעות Agent Mode ב-Gemini ב-Android Studio:

  • שומרים את גרסת ה-Markdown של המדריך הזה בפרויקט.
  • מדביקים את ההנחיה הזו לסוכן (אבל לא מקישים על Enter): "העבר את הפרויקט הזה לניווט 3 באמצעות ".
  • מקלידים @migration-guide.md – כך המדריך יסופק לסוכן כהקשר. 

כמו תמיד, חשוב לבדוק בקפידה את השינויים שבוצעו על ידי סוכן ה-AI – הוא עלול לטעות! 

נשמח לשמוע איך הייתה חוויית השירות שלך או של הנציג שטיפל בפנייה. אפשר לשלוח משוב כאן.

מתכוני ניווט טעימים לתרחישים נפוצים

לתרחישי שימוש נפוצים אבל מורכבים, יש לנו מאגר מתכונים. המאמר הזה מראה איך לשלב את ממשקי Nav3 API בצורה מסוימת, כדי שתוכלו לבחור או לשנות את המתכון בהתאם לצרכים שלכם. אם מתכון מסוים יתברר כפופולרי, נשקול להוסיף את החלקים הלא-מורכבים שלו לספריית הליבה של Nav3 או לספריות של תוספים. 

code-recipes.png

נכון לעכשיו יש 19 מתכונים, כולל מתכונים ל: 

אנחנו עובדים כרגע על מתכון לקישורי עומק, וגם על שילוב של Koin, ויש לנו עוד הרבה תוכניות. מהנדס מ-JetBrains פרסם גם גרסה של המתכונים ל-Compose Multiplatform.

אם יש לכם תרחיש נפוץ שאתם רוצים לקבל מתכון בשבילו, אתם יכולים לשלוח בקשה למתכון. 

סיכום

כדי להתחיל להשתמש ב-Nav3, כדאי לעיין במסמכים ובמתכונים. בנוסף, כדאי לעקוב אחרי התוכן הטכני שיועלה במהלך השבוע, כולל: 

  • סרטון מידע מעמיק על ה-API, שכולל הסברים על מודולריזציה, אנימציות ופריסות דינמיות.
  • סשן שאלות ותשובות בשידור חי עם המהנדסים שבנו את Nav3.

שבוע ה-Spotlight של Nav3 מתחיל ב-1 בדצמבר 2025. 


כמו תמיד, אם נתקלת בבעיות, אפשר לדווח עליהן כאן. 

נכתב על ידי:
להמשך קריאה