אירוע ניווט

‫Navigation Event היא ספריה שמספקת פתרון Kotlin Multiplatform ‏ (KMP) לשילוב אירועי ניווט ברמת המערכת באפליקציה. היא מיועדת לשמש כשכבת הבסיס לטיפול בהוראות ניווט בפלטפורמות שונות שנתמכות.

קונספטים מרכזיים

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

NavigationEventDispatcher הוא המחלקה המרכזית שאחראית לניהול כל הצרכנים הרשומים של אירועי ניווט (NavigationEventHandler) ולתיאום זרימת האירועים.

בהגדרה היררכית, כל רכיבי ה-dispatcher באותה שרשרת חולקים NavigationEventProcessor יחיד, שמנהל את המצב הגלובלי ומבטיח סדר שליחה יחיד ומאוחד בכל העץ.

NavigationEventHandler היא מחלקה מופשטת שמקבלת ומטפלת באירועי ניווט שנשלחים על ידי NavigationEventDispatcher. היא מגדירה שיטות של קריאה חוזרת שמתאימות לשלבים שונים במחזור החיים של תנועת ניווט, למשל כשתנועה מתחילה, מתקדמת, מסתיימת או מבוטלת.

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

NavigationEvent היא מחלקת נתונים שמכילה את הפרטים של תנועת הניווט.

NavigationEventInfo היא מחלקה מופשטת שמספקת מידע הקשרי על מצב הניווט.

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

הוראות ניווט וטריגרים נתמכים

מערכת אירועי הניווט מתוכננת לכלול יותר מאשר רק את הכפתור "הקודם" של המערכת, עם עיצובים שתומכים בכיווני ניווט מרובים ובשיטות קלט בפלטפורמות שונות.

מסלולים נתמכים

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

פלטפורמה

חזרה

למעלה

העברה

דף הבית

טלפון Android

🚫

טאבלט Android

🚫

אינטרנט (דפדפן)

🚫

iOS (iPhone/iPad)

🚫

טריגרים נתמכים

הטיפול בקלט מתבצע באמצעות מנגנונים שונים בכל פלטפורמה:

Trigger כדי לחלק אותן לפי טריגר

טלפון Android

אינטרנט (דפדפן)

iOS (iPhone/iPad)

הכפתור 'הקודם' במקלדת

‫✅ חזרה

‫✅ חזרה

הכפתור "הקודם" בתוכנה

🚫

‫✅ חזרה

‫✅ חזרה

לחצן חץ למעלה בתוכנה

‫✅ עלייה

🚫

🚫

תנועה מצד שמאל

‫✅ חזרה

‫✅ חזרה

תנועה מימין

‫✅ חזרה

‫✅ העברה

תנועה מלמטה

‫✅ דף הבית

🚫

‫✅ דף הבית