כיום יש יותר מ-300 מיליון מכשירי Android עם מסך גדול, כולל טאבלטים, מכשירים מתקפלים, מכשירי Googlebook, מכשירי ChromeOS, מסכים לרכב וטלוויזיות, והמספר הזה ממשיך לגדול. כדי לספק חוויית משתמש אופטימלית במגוון ההולך וגדל של מכשירים עם מסך גדול, וגם בטלפונים רגילים, כדאי לפתח אפליקציות מותאמות.
מהן אפליקציות אדפטיביות?
אפליקציות רספונסיביות משנות את הפריסה בהתאם לשינויים בתצוגת האפליקציה, בעיקר בגודל של חלון האפליקציה. אבל אפליקציות רספונסיביות מתאימות גם לשינויים במצב של מכשירים מתקפלים, כמו מצב שולחן או מצב ספר, ולשינויים בצפיפות המסך ובגודל הגופן.
במקום רק למתוח או לכווץ את הרכיבים בממשק המשתמש בהתאם לגודל החלון, אפליקציות דינמיות מחליפות את רכיבי הפריסה ומציגות או מסתירות תוכן. לדוגמה, בטלפונים רגילים, אפליקציה מותאמת עשויה להציג סרגל ניווט תחתון, אבל במסכים גדולים, פס ניווט. במסכים גדולים, אפליקציות רספונסיביות מציגות יותר תוכן, כמו פריסה של שני חלונות, רשימה ופרטים. במסכים קטנים, מוצג פחות תוכן, או הרשימה או הפרטים.
בעבר, אפליקציות בדרך כלל פעלו במסך מלא. כיום, אפליקציות פועלות במצב ריבוי חלונות בחלונות בגודל שרירותי, ללא קשר לגודל המסך של המכשיר. המשתמשים יכולים לשנות את גודל החלון בכל שלב. לכן, גם בסוג מכשיר אחד, האפליקציות צריכות להיות מותאמות.
אפליקציות רספונסיביות נראות טוב ופועלות היטב בכל מכשיר ובכל הגדרה.
למה כדאי ליצור ממשקי משתמש דינמיים?
המשתמשים מצפים שהאפליקציה תפעל בצורה חלקה בכל המכשירים שלהם ותספק יכולות משופרות במסכים גדולים. המשתמשים יכולים לבצע כמה משימות בו-זמנית במצב ריבוי חלונות כדי לשפר את חוויית השימוש באפליקציה ולהגביר את הפרודוקטיביות.
אפליקציות שמוגבלות לביצוע משימה אחת בטלפונים רגילים מפספסות בסיס משתמשים הולך וגדל של אפשרויות מגוונות.
Google Play
ב-Google Play יש אוספים והמלצות של אפליקציות שמותאמות לטאבלטים ולמכשירים מתקפלים, שמאפשרים למשתמשים לגלות אפליקציות באיכות גבוהה.
ב-Play, אפליקציות ומשחקים שעברו אופטימיזציה למסכים גדולים מדורגים גבוה יותר מאפליקציות שלא עברו אופטימיזציה. הדירוג ב-Play מבוסס על ההנחיות בנוגע לאיכות האפליקציות למסכים גדולים. דירוג גבוה יותר משפר את החשיפה, כי הוא מאפשר למשתמשים עם כמה מכשירים לראות בטלפונים שלהם דירוגים וביקורות שספציפיים למסכים גדולים.
באפליקציות שלא עומדות בתקני האיכות של חנות Play למסכים גדולים, מוצגת אזהרה בדף הפרטים של האפליקציה. האזהרה מיידעת את המשתמשים שהאפליקציה עלולה לא לפעול בצורה תקינה במכשירים עם מסך גדול.
כדי להגדיל את הסיכויים שהאפליקציה תופיע בתוצאות החיפוש ב-Google Play ולהגדיל את מספר המכשירים שבהם אפשר להוריד אותה, כדאי לפתח אפליקציות שמתאימות את עצמן למכשיר.
איך מתחילים
חשוב לחשוב על עיצוב רספונסיבי בכל שלבי הפיתוח של האפליקציה, מהתכנון ועד לפריסה. ליידע מעצבים גרפיים על עיצוב רספונסיבי. אם תעצבו את האפליקציה כך שתהיה רספונסיבית, היא תהיה קלה לניהול, ניתנת להרחבה ומוכנה לגורמי צורה ולמצבי חלונות עתידיים.
כדי ליצור אפליקציה רספונסיבית שתומכת בכל הגדלים וההגדרות האישיות של המסכים, צריך לבצע את הפעולות הבאות:
- שימוש בקטגוריות של גודל חלון כדי לקבל החלטות לגבי הפריסה
- פיתוח באמצעות הספרייה Compose Material 3 Adaptive
- תמיכה בקלט מעבר למגע
- בדיקה בכל סוגי המכשירים
מיומנויות ב-Android
הצגה ב-GitHubאיך יוצרים אפליקציה מותאמת
adaptive כדי לעדכן את ממשק המשתמש של האפליקציה, כך שיתאים למכשירים ולמסכים שונים של Android.android skills add adaptiveמחלקות של גודל חלון
המידות של חלון האפליקציה יכולות להיות שונות במכשירים שונים, או באותו מכשיר במקרה של מכשירים מתקפלים, גם כשהאפליקציה מוצגת במסך מלא. כיווני מכשיר שונים יוצרים יחסי גובה-רוחב שונים. במצב ריבוי חלונות, הגודל, יחס הגובה-רוחב והכיוון של חלון האפליקציה יכולים להיות שונים מאלה של מסך המכשיר.
אפליקציות רספונסיביות מפשטות את הבעיה של קביעת גודל החלון, יחס הגובה-רוחב והכיוון, וניהול שלהם, על ידי התחשבות רק בחלון האפליקציה בזמן עיבוד הפריסות, וזה עובד גם כשחלון האפליקציה הוא המסך המלא.
מחלקות של גודל חלון מסווגות את חלונות האפליקציה כקומפקטיים, בינוניים או מורחבים על סמך הרוחב או הגובה של החלון.
מחשבים את WindowSizeClass של האפליקציה באמצעות הפונקציה ברמה העליונה currentWindowAdaptiveInfo() של ספריית Compose Material 3 Adaptive. הפונקציה מחזירה מופע של WindowAdaptiveInfo, שמכיל את windowSizeClass. האפליקציה מקבלת עדכונים בכל פעם שסוג גודל החלון משתנה:
val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
חלוניות תוכן
הפריסה של פעילות נקראת לפעמים מסך. לדוגמה, לאפליקציה יכולים להיות מסך בית, מסך רשימה ומסך פרטי פריט. המונחים האלה מציינים שכל פעילות ממלאת את מסך המכשיר.
עם זאת, במסכי מכשירים שגדולים מספיק כדי לתמוך ברוחב המורחב של מחלקת גודל החלון, כמה מסכי פעילות יכולים להופיע במסך בו-זמנית. חלונית היא מונח מדויק יותר לתצוגות תוכן של פעילויות ספציפיות.
סיווגים של גודל חלון מאפשרים לכם לקבוע כמה חלוניות תוכן להציג בפריסות עם כמה חלוניות, כפי שצוין ב-Material Design.
אפשר לנווט בין החלוניות. בגדלים קומפקטיים ובינוניים של חלונות, האפליקציות מוצגות בחלונית אחת, ולכן הניווט לכל יעד מציג חלונית אחת.
במכשירים עם מסך גדול, אפליקציות יכולות להציג תוכן קשור בכמה חלוניות, למשל בפריסה של רשימה ופרטים. כשעוברים לאחת מהחלוניות, מוצגת הפריסה של שתי החלוניות. אם גודל החלון משתנה לקומפקטי או בינוני, באפליקציות רספונסיביות מוצג רק חלונית אחת, יעד הניווט, הרשימה או הפרטים.
|
|
|
Compose Material 3 Adaptive
Jetpack Compose היא גישה מודרנית ודקלרטיבית לפיתוח אפליקציות מותאמות אישית, בלי הנטל של שכפול ותחזוקה של כמה קובצי פריסה.
ספריית Compose Material 3 Adaptive מכילה רכיבי Composable שמנהלים את קטגוריות הגודל של החלונות, רכיבי הניווט, פריסות עם כמה חלוניות, מצבי קיפול ומיקום הציר, לדוגמה:
NavigationSuiteScaffold: מעבר אוטומטי בין סרגל הניווט לבין מסילת הניווט בהתאם לגודל החלון של האפליקציה ולמצב המכשיר.
ListDetailPaneScaffold: הטמעה של פריסת רשימה-פרטים קנונית.הפריסה מותאמת לגודל החלון של האפליקציה. מציג רשימה ופרטים של פריט ברשימה בחלוניות זו לצד זו במחלקה של גודל חלון מורחב, אבל רק את הרשימה או את הפרטים במחלקות של גודל חלון קומפקטי ובינוני.
SupportingPaneScaffold: הטמעה של פריסת חלונית התמיכה הקנונית.מציג את חלונית התוכן הראשית וחלונית תומכת בגודל חלון מורחב, אבל רק את חלונית התוכן הראשית בגודל חלון קומפקטי ובינוני.
הספרייה Compose Material 3 Adaptive היא תלות מרכזית בפיתוח אפליקציות רספונסיביות.
הגדרה והמשכיות
אפליקציות דינמיות שומרות על המשכיות במהלך שינויים בהגדרות.
שינוי בהגדרות מתרחש כשמשנים את הגודל של חלון האפליקציה, כשמשנים את המצב של מכשיר מתקפל או כשמשנים את צפיפות המסך או את הגופן.
כברירת מחדל, שינויים בהגדרות יוצרים מחדש את הפעילות באפליקציה, וכל מצב הפעילות אובד. כדי לשמור על המשכיות, אפליקציות רספונסיביות שומרות את המצב ב-method onSaveInstanceState() של הפעילות או ב-ViewModel.
מצב אבטחה
אפליקציות רספונסיביות מגיבות לשינויים במצב של מכשירים מתקפלים. התנוחות כוללות תנוחת שולחן ותנוחת ספר.
הממשק WindowInfoTracker ב-Jetpack WindowManager מאפשר לקבל רשימה של אובייקטים מסוג DisplayFeature במכשיר. אחת מהתכונות של המסך היא FoldingFeature.State, שמציינת אם המכשיר פתוח לגמרי או חצי פתוח.
הספרייה Compose Material 3 Adaptive מספקת את הפונקציה currentWindowAdaptiveInfo() ברמה העליונה, שמחזירה מופע של WindowAdaptiveInfo שמכיל את windowPosture.
קלט מעבר למגע
משתמשים מחברים לעיתים קרובות מקלדות חיצוניות, משטחי מגע, עכברים וסטיילוסים למכשירים עם מסך גדול. הציוד ההיקפי משפר את הפרודוקטיביות של המשתמשים, את דיוק הקלט, את הביטוי האישי ואת הנגישות. רוב מכשירי ChromeOS מגיעים עם מקלדות ומשטחי מגע מובנים.
אפליקציות רספונסיביות תומכות במכשירים חיצוניים לקליטת נתונים, אבל מסגרת Android עושה הרבה מהעבודה בשבילכם:
Jetpack Compose מגרסה 1.7 ואילך: כברירת מחדל, יש תמיכה בניווט באמצעות מקש Tab במקלדת ובלחיצה, בחירה וגלילה באמצעות העכבר או משטח המגע.
ספריית Jetpack
androidx.compose.material3: מאפשרת למשתמשים לכתוב בכל רכיבTextFieldבאמצעות סטיילוס.עזרה במקשי קיצור: מאפשרת למשתמשים לגלות את מקשי הקיצור של פלטפורמת Android ושל האפליקציות. כדי לפרסם את מקשי הקיצור של האפליקציה בכלי העזר למקשי הקיצור, צריך לשנות את פונקציית ה-callback של החלון
onProvideKeyboardShortcuts().
כדי לתמוך באופן מלא בגורמי צורה בכל הגדלים, אפליקציות רספונסיביות תומכות בקלט מכל הסוגים.
איך בודקים אפליקציות מותאמות
בודקים גדלים שונים של מסכים וחלונות ותצורות שונות של מכשירים. כדי לבדוק את פריסות האפליקציה, השתמשו בצילומי מסך מצד המארח ובתצוגות מקדימות של Compose. מריצים את האפליקציה באמולטורים של Android Studio ובמכשירי Android מרוחקים שמתארחים במרכזי הנתונים של Google.
הנחיות איכות לאפליקציות למסכים גדולים
הנחיות האיכות לאפליקציות למסכים גדולים עוזרות לוודא שהאפליקציה הרספונסיבית פועלת היטב בטאבלטים, במכשירים מתקפלים ובמכשירי ChromeOS. ההנחיות כוללות בדיקות שמאפשרות לאמת את תכונות האפליקציה בחוויית שימוש הכרחית (CUJ). למרות שההנחיות מתמקדות במסכים גדולים, הן מתאימות לכל גודל מסך.
מערכים מרובים של הגדרות אישיות
הממשק DeviceConfigurationOverride ב-Compose מגרסה 1.7 ואילך מאפשר לשנות היבטים שונים של הגדרות המכשיר. ה-API מדמה תצורות שונות של מכשירים באופן מקומי לכל תוכן קומפוזבילי שרוצים לבדוק. לדוגמה, אפשר לבדוק כמה גדלים שרירותיים של ממשק משתמש בהרצה אחת של חבילת המקרים לבדיקה במכשיר או באמולטור אחד.
בעזרת פונקציית התוסף DeviceConfigurationOverride.then(), אתם יכולים לבדוק כמה פרמטרים של הגדרות בו-זמנית, כמו גודל הגופן, הלוקאל, העיצוב וגודל הפריסה.
צילומי מסך מצד המארח
בדיקות של צילומי מסך מצד המארח הן דרך מהירה וניתנת להרחבה לוודא את המראה החזותי של פריסות האפליקציה. אפשר להשתמש בצילומי מסך מצד המארח כדי לבדוק את ממשק המשתמש במגוון גדלים של מסכים.
מידע נוסף זמין במאמר בדיקת צילומי מסך של תצוגה מקדימה ב-Compose.
יצירת תצוגות מקדימות
תצוגות מקדימות של Compose מאפשרות לבדוק את ממשק המשתמש של האפליקציה בתצוגת העיצוב של Android Studio. בתצוגות המקדימות נעשה שימוש בהערות כמו @PreviewScreenSizes, @PreviewFontScale ו-@PreviewLightDark כדי לאפשר לכם לראות תוכן קומפוזבילי בהגדרות שונות. אתם יכולים אפילו לבצע פעולות בתצוגות המקדימות.
בנוסף, ב-Android Studio מודגשות בעיות נפוצות בתצוגות המקדימות, כמו כפתורים או שדות טקסט רחבים מדי.
מידע נוסף זמין במאמר תצוגה מקדימה של ממשק המשתמש באמצעות תצוגות מקדימות של פונקציות קומפוזביליות.
אמולטורים
ב-Android Studio יש מגוון אמולטורים לבדיקת גדלים שונים של פריסות:
- אמולטור עם אפשרות לשינוי גודל: מדמה טלפון, טאבלט או מכשיר מתקפל ומאפשר לעבור ביניהם במהירות.
- אמולטור של Pixel Fold: מדמה את הטלפון המתקפל Pixel Fold עם המסך הגדול
- אמולטור של Pixel Tablet: מדמה את המכשיר עם המסך הגדול של Pixel Tablet
- אמולטור למחשב: מאפשר לבדוק את שינוי הגודל והמיקום של החלונות, את העברת העכבר מעל פריטים ואת מקשי הקיצור
סטרימינג למכשיר שמחובר לרשת אחרת
אתם יכולים להתחבר בצורה מאובטחת למכשירי Android מרוחקים שמתארחים במרכזי הנתונים של Google, ולהריץ את האפליקציה במכשירי Pixel ו-Samsung העדכניים ביותר. אתם יכולים להתקין אפליקציות ולנפות בהן באגים, להריץ פקודות ADB, לסובב ולקפל מכשירים כדי לוודא שהאפליקציה פועלת כמו שצריך במגוון מכשירים אמיתיים.
הסטרימינג ממכשירים שמחוברים לרשת אחרת משולב ב-Android Studio. מידע נוסף זמין במאמר סטרימינג למכשירי Android, באמצעות Firebase.
מקורות מידע נוספים
- I/O 2026: איך ליצור ממשק משתמש דינמי באמצעות סוכן ה-AI של Android Studio
- I/O 2024: פיתוח אפליקציות רספונסיביות ל-Android