מכשירים מתקפלים מספקים הזדמנות לפיתוח אפליקציות חדשניות. מסכים גדולים וקטנים באותו מכשיר מציעים חוויית אינטראקציה משלימה אך שונה. תכונות קיפול כמו מצב שולחן ומצב ספר מאפשרות פריסות יצירתיות וממשקי משתמש לא שגרתיים.
עיצוב רספונסיבי/מותאם
התמיכה במכשירים מתקפלים מתחילה בעיצוב רספונסיבי. פריסות רספונסיביות מאפשרות לאפליקציה להיראות ולפעול בצורה מצוינת במגוון גדלים של מסכים. הטמעה של עיצוב רספונסיבי באמצעות הרכיב הקומפוזבילי BoxWithConstraints.
אבל כדי לתמוך בצורה אופטימלית במסכים המקופלים והפתוחים של מכשיר מתקפל, הפריסה צריכה להשתנות. ההבדלים בגודל המסך וביחס הגובה-רוחב של מסכים מקופלים ופתוחים יכולים להיות גדולים מאוד, כך שגם פריסה רספונסיבית לא יכולה להתאים לשני המסכים בצורה מספקת. עיצוב אדפטיבי יוצר פריסות חלופיות שממוטבות לגדלים שונים של מסכים ולתצורות שונות. פריסות דינמיות מספקות חוויית משתמש אופטימלית כשמכשיר מתקפל מקופל או פתוח, במצב לאורך או לרוחב, או במצב של הצבה על משטח או במצב של החזקה כמו ספר.
לדוגמה, מכשיר מתקפל עם מסך גדול שנפתח בפריסה לרוחב הוא כמו טאבלט. פריסה של שתי חלוניות עם סרגל ניווט מאפשרת ניצול מצוין של המסך הרחב. כשהמכשיר מקופל, הוא דומה לטלפון רגיל. הפריסה של עמודה אחת עם סרגל ניווט בתחתית היא פשוטה אבל יעילה. הפריסות נפרדות, ולכן אפשר לבצע אופטימיזציה לכל אחת מהן בהתאם לתרחיש השימוש הספציפי שלה.
מכשירים מתקפלים יכולים להתקפל במגוון דרכים, למשל פנימה, כשהמסך מתקפל לתוך המכשיר, או החוצה, כשהמסך עוטף את המכשיר. עיצוב רספונסיבי או עיצוב שניתן להתאמה מאפשרים לאפליקציה לתמוך בכל מיני גורמי צורה של מכשירים מתקפלים.
למידע נוסף על עיצוב רספונסיבי או אדפטיבי למכשירים מתקפלים, אפשר לעיין במקורות המידע הבאים:
- תמיכה בגדלים שונים של תצוגה
- Material Design – החלת פריסה
מצבים ותנוחות של מכשירים מתקפלים
הקיפול של מכשיר מתקפל מחלק את המסך לשני חלקים. הקיפול יכול להיות אזור גמיש במסך, או במכשירים עם שני מסכים, ציר שמפריד בין שני המסכים.
לקיפול יש מאפיין של מימד ושל occlusionType, שמגדיר אם הקיפול מסתיר חלק מהמסך. במכשירים עם שני מסכים, occlusionTypeFULL, ולא ניתן לראות תוכן באזור ההפרדה (הציר) גם אם אפליקציה משתרעת על שני המסכים.
מכשירים מתקפלים יכולים להיות במצבי קיפול שונים, כמו FLAT (פתוח לגמרי) או HALF_OPENED (מצב ביניים בין פתוח לגמרי לסגור לגמרי).
כשמכשיר נמצא במצב HALF_OPENED, יש שני מצבים אפשריים, בהתאם לאוריינטציה של הקיפול: מצב שולחני (קיפול אופקי) ומצב ספר (קיפול אנכי).
מצבי ההחזקה של המכשיר כמוצב על השולחן או כמו ספר מאפשרים פריסות חדשות, אבל מצב המכשיר גם מטיל מגבלות מסוימות.HALF_OPENED לדוגמה, יכול להיות שיהיה קשה למשתמשים לגשת לרכיבי אינטראקטיביות בממשק המשתמש שנמצאים ליד ההפרדה בין חלקי הדף, וקשה לקרוא טקסט שמוצג מעל ההפרדה בין חלקי הדף (או בלתי קריא אם occlusionType הוא FULL).
מעצבים את הפריסות כך שרכיבי ממשק המשתמש יהיו נגישים בכל מצבי המכשיר. ממקמים את תיבות הדו-שיח ואת התפריטים הקופצים כך שהם לא יכסו את החלק העליון של הדף. חשוב לוודא שהתוכן החשוב גלוי כשהמכשיר מקופל חלקית. פיצול התוכן לשני אזורים כשהמכשיר פתוח בחצי – למעלה ולמטה במצב שולחן, ימין ושמאל במצב ספר.
מידע נוסף על קיפולים ועל מצבי קיפול זמין במאמר הוספת תמיכה בקיפול לאפליקציה.
המשכיות של האפליקציה
אפליקציה נעצרת ומופעלת מחדש כשהיא עוברת ממסך אחד למסך אחר כשמכשיר מתקפל או נפרש. כדי לשמור על רצף הפעולות של המשתמש, האפליקציה צריכה לשחזר את המצב שלה כשיוצרים מחדש את פריסת האפליקציה במסך מקופל או פתוח. לדוגמה, אפליקציות צריכות:
- שמירת הטקסט שהוקלד בשדות קלט
- שחזור מצב המקלדת
- שחזור מיקום הגלילה של שדות שניתנים לגלילה
- המשך הפעלת המדיה מהמקום שבו היא הופסקה כשהאפליקציה הופסקה
פריסות המסך השונות במכשיר מתקפל צריכות להשלים זו את זו. לדוגמה, אם במסך המקופל מוצגים תמונה ותיאור של מוצר מחנות וירטואלית, במסך הפתוח צריכה להיות המשכיות של התמונה והתיאור, אבל גם תוכן משלים כמו מפרט המוצר או ביקורות.
מידע נוסף על ניהול מצב האפליקציה והמשכיות זמין במאמרים שמירת מצבי ממשק המשתמש וטיפול בשינויים בהגדרות.
ריבוי משימות
למכשירים מתקפלים עם מסך גדול יש מסך בגודל של טאבלט, שמתאים במיוחד לריבוי משימות במצב מרובה חלונות. במכשירים מתקפלים יש תמיכה במצב מסך מפוצל. בחלק מהמכשירים יש אפילו תמיכה במצב ממשק מחשב, שבו האפליקציות מוצגות בחלונות שאפשר להזיז ולשנות את הגודל שלהם, בדומה למערכת חלונות במחשב.
|
|
|
|
|
ב-Android 12 (רמת API 31) ובגרסאות מאוחרות יותר, ברירת המחדל היא מצב ריבוי חלונות – במסכים גדולים, כל האפליקציות פועלות במצב ריבוי חלונות ללא קשר להגדרת האפליקציה. בגרסאות קודמות עד Android 7.0 (רמת API 24), צריך להגדיר את האפליקציה כך שניתן יהיה לשנות את הגודל שלה כדי לתמוך במצב ריבוי חלונות.
מידע על ריבוי משימות במצב מרובה חלונות זמין במאמר תמיכה במצב מרובה חלונות.
גרירה ושחרור
במכשירים מתקפלים עם מסך גדול יש מספיק מקום במסך כדי לבצע אינטראקציות של גרירה ושחרור. מצב ריבוי חלונות במכשירים מתקפלים מאפשר גרירה ושחרור בין אפליקציות.
אינטראקציות של גרירה ושחרור יוצרות חוויית משתמש פרודוקטיבית ומרתקת. מוסיפים לאפליקציה יכולות גרירה ושחרור באמצעות מסגרת הגרירה והשחרור של Android. מידע נוסף מופיע במאמר הפעלת גרירה ושחרור.