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

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

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

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

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

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

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

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

nav-display.png

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

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

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

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

מיגרציה מ-Navigation 2

אם אתם כבר משתמשים ב-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 – הוא עלול לטעות! 

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

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

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

code-recipes.png

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

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

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

סיכום

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

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

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


כמו תמיד, אם נתקלתם בבעיות, אתם מוזמנים לדווח עליהן כאן

נכתב על ידי:

להמשך הקריאה