אפליקציות מותאמות תומכות במסכים בכל הגדלים: מסך המכשיר כולו, חלונות שניתן לשנות את הגודל שלהם במצב 'חלונות מרובים', כיוון לאורך ולרוחב, מסכים מקופלים ופתוחים של מכשירים מתקפלים.
רשימה קצרה של הגדרות API וממשקי API מאפשרת לכם ליצור אפליקציות מותאמות אישית. עם זאת, חלק מההגדרות וממשקי ה-API המיושנים לא תואמים לאפליקציות מותאמות, וצריך להימנע מהם.
יכולת שינוי הגודל
אפליקציות מותאמות תומכות באפשרות לשנות את גודל האפליקציה ובמצב של כמה חלונות.
המאפיין resizeableActivity
של אלמנטים המניפסט <activity>
ו-<application>
מפעיל או משבית את מצב החלונות המשותפים ב-Android 11 (רמת API 30) ואילך. במכשירים עם Android מגרסה 12 ואילך (רמת API 31 ואילך), מסכים גדולים תומכים במצב 'חלונות מרובים' ללא קשר למאפיין. מידע נוסף זמין במאמר תמיכה במצב 'חלונות מרובים'.
מאפשרים לאפליקציה להשתתף בתרחישים של ריבוי חלונות וריבוי משימות, כדי לשפר את הפרודוקטיביות והשביעות הרצון של המשתמשים.
מגדירים את הערך resizeableActivity="true"
אם האפליקציה מטרגטת לרמות API נמוכות מ-24. אחרת, אפשר לשכוח ממנו – הערך שמוגדר כברירת מחדל הוא true
ב-Android 7.0 (רמת API 24) ואילך.
אין להגדיר את resizeableActivity="false"
לאף רמת API. אל תחרגו את האפליקציה שלכם מתרחישי שימוש שכוללים מצב של כמה חלונות.
כיוון
אפליקציות מותאמות תומכות בתצוגה לאורך ובתצוגה לרוחב, ללא קשר לגודל המסך או למצב החלון.
הגדרת המניפסט screenOrientation
מגבילה את כיוון הפעילות.
מסירים את ההגדרה screenOrientation
מהמניפסט של האפליקציה.
נעילה של כיוון האפליקציות לא מונעת שינויים בגודל החלון. הגודל של האפליקציות משתנה כשהן עוברות למצב 'חלונות מרובים', כשהמכשיר מקופל או פתוח, או כשמשנים את הגודל של חלון מסוג מחשב. האפליקציה צריכה לתמוך בשינויים בגודל החלון, ללא קשר להגדרת המאפיין screenOrientation
.
לא להגביל את כיוון הפעילות. אפליקציות עם נעילה של הכיוון מוצגות בפורמט letterbox במכשירים עם מסך גדול ובגדלי חלון לא תואמים.
אפליקציות בפורמט letterbox יהיו חשופות פחות ב-Google Play בטאבלטים, במכשירים מתקפלים ובמכשירי ChromeOS.
יחס גובה-רוחב
גודל המסך והחלון משתנה, וכך גם יחסי הגובה-רוחב שלהם – ממסך גבוה וצר, דרך ריבוע ועד למסך קצר ורחב.
הגדרות המניפסט minAspectRatio
ו-maxAspectRatio
מגבילות את יחס הגובה-רוחב של האפליקציה לערכים שמוגדרים מראש.
התאמת האפליקציה למסך, ללא קשר למימדים היחסיים.
מסירים את ההגדרות minAspectRatio
ו-maxAspectRatio
מהמניפסט של האפליקציה. לחלופין, מוודאים שאפשר לשנות את הגודל של האפליקציה, ויחס הגובה-רוחב יתאים את עצמו (ראו הקטע שינוי גודל).
אל תנסו לשלוט במימדים היחסיים של האפליקציה. אם האפליקציה פועלת במסך או בחלון עם יחס גובה-רוחב שאינו תואם ליחס הגובה-רוחב של האפליקציה, האפליקציה תופיע בפורמט letterbox.
בגרסה Android 14 ואילך (רמת API 34 ואילך), המשתמשים יכולים לשנות את יחס הגובה-רוחב של האפליקציה כדי להרחיב אפליקציות בפורמט letterbox כך שייכללו את כל אזור התצוגה הזמין. מצב תאימות למכשיר
גודל החלון
אופטימיזציה של פריסות לגדלים שונים של מסכים היא ההנחה המרכזית של עיצוב רספונסיבי. אפליקציות מותאמות מתמקדות בגודל החלון של האפליקציה ולא בגודל המסך של המכשיר. כשהאפליקציה מוצגת במסך מלא, חלון האפליקציה הוא מסך המכשיר.
סיווגים של גודל חלון מספקים דרך שיטתית לקביעת הגודל של חלון האפליקציה ולסיווג שלו. כדי להתאים את האפליקציה, משנים את הפריסות כשהסיווג של גודל החלון משתנה.
הערכת גודל החלון של האפליקציה על סמך כיתות של גדלי חלונות.
כדי לקבוע את סיווג גודל החלון, משתמשים בפונקציה ברמה העליונה currentWindowAdaptiveInfo()
בספרייה Compose Material 3 Adaptive. למידע נוסף, ראו פיתוח אפליקציות מותאמות.
אל תזניחו את התועלת של הגדרות הכיתה של גודל החלון וממשקי ה-API המובנים. אין להשתמש בממשקי API שהוצאו משימוש כדי לחשב את גודל החלון.
ממשקי API שהוצאו משימוש
ממשקי ה-API הישנים של הפלטפורמה לא מודדים בצורה נכונה את חלון האפליקציה. חלק מהם מודדים את מסך המכשיר, וחלקם לא כוללים את עיצוב המערכת.
משתמשים ב-WindowManager#getCurrentWindowMetrics()
וב-WindowMetrics#getBounds()
כדי לקבל את גודל חלון האפליקציה. משתמשים ב-WindowMetrics#getDensity()
כדי לקבל את צפיפות התצוגה.
אסור להשתמש בממשקי ה-API הקודמים הבאים של Display
כדי לקבוע את גודל החלון:
getSize()
: הוצא משימוש ב-Android 11 (רמת API 30)getMetrics()
: הוצא משימוש ב-Android 11 (רמת API 30)getRealSize()
: הוצא משימוש ב-Android 12 (רמת API 31)getRealMetrics()
: הוצא משימוש ב-Android 12 (רמת API 31)
פיתוח נייטיב
Jetpack Compose מיועד לפיתוח ממשק משתמש מותאם. אין קובצי XML, אין קובצי פריסה ואין מגדירי משאבים. רק רכיבים מורכבים ללא מצב (composables) מבוססי Kotlin, כמו Column
, Row
ו-Box
שמתארים את ממשק המשתמש, ורכיבי שינוי (modifiers) כמו offset
, padding
ו-size
שמוסיפים התנהגות לרכיבי ממשק המשתמש.
פיתוח באמצעות Compose. להתעדכן בתכונות ובגרסאות החדשות ביותר.
אל תסתמכו על טכנולוגיה מיושנת. אל תתנו לאפליקציה שלכם להפוך למיושנת.
יצירת ספרייה דינמית של Material 3
ספריית Compose Material 3 Adaptive מספקת רכיבים וממשקי API שמאפשרים לפתח אפליקציות מותאמות.
כדי להפוך את האפליקציה שלכם להתאמה אישית, תוכלו להשתמש בממשקי ה-API הבאים:
NavigationSuiteScaffold
: מעבר בין סרגל הניווט לפס הניווט, בהתאם לקטגוריה של גודל החלון של האפליקציה.ListDetailPaneScaffold
: הטמעת הפריסה הקנונית של רשימת פרטים. התאמת הפריסה לגודל חלון האפליקציה.SupportingPaneScaffold
: הטמעת הפריסה הקנונית של חלונית התמיכה.
אל תמציאו את הגלגל מחדש. אל תפספו את השיפורים ביעילות הפיתוח שמספקות כל ספריות Jetpack Compose.
פריסות
המשתמשים מצפים שהאפליקציות ינצלו את כל שטח המסך הזמין באמצעות תוכן משלים או פקדים משופרים.
באפליקציות עם התאמה אישית מתבצעת אופטימיזציה של הפריסות על סמך שינויים במסך, במיוחד שינויים בגודל חלון האפליקציה או שינויים בתנוחת המכשיר.
משנים את רכיבי ממשק המשתמש כשגודל החלון משתנה, כדי לנצל את שטח התצוגה הזמין. לדוגמה, אפשר להחליף את שורת הניווט התחתונה שמשמשת בחלונות בגודל קומפקטי בסרגל ניווט אנכי בחלונות בגודל בינוני ובחלונות מורחבים. לשנות את המיקום של תיבת הדו-שיח כך שאפשר יהיה לגשת אליה בכל המסכים.
כדאי לארגן את התוכן בחלוניות כדי לאפשר פריסות עם כמה חלוניות, כמו רשימה עם פרטים וחלונית תמיכה להצגת תוכן דינמי.
אם אתם לא משתמשים בחלוניות תוכן, אל תמתחו את רכיבי ממשק המשתמש רק כדי למלא את שטח המסך הזמין. קשה לקרוא שורות ארוכות של טקסט. לחצנים מורחבים נראים לא מעוצבים. אם משתמשים ב-Modifier.fillMaxWidth
, אל תניחו שזו ההתנהגות המתאימה לכל גדלי המסכים.
התקני קלט
המשתמשים לא משתמשים רק במסכי מגע כדי לקיים אינטראקציה עם אפליקציות.
אפליקציות מותאמות תומכות במקלדות, בעכברים ובעטים חיצוניים כדי לספק חוויית משתמש משופרת ולעזור למשתמשים לשפר את הפרודוקטיביות במגוון פורמטים.
אתם יכולים להשתמש בפונקציות המובנות של מסגרת Android כדי לנווט באמצעות מקשי Tab במקלדת, ולחיצות, בחירות וגלילות בעכבר או בלוח המגע. מפרסמים את מקשי הקיצור של האפליקציה בכלי העזר למקשי הקיצור.
אתם יכולים להשתמש בספריית Material 3 של Jetpack כדי לאפשר למשתמשים לכתוב בכל רכיב TextField
באמצעות סטיילוס.
לא להקשות על השימוש בשיטות קלט חלופיות. לא ליצור בעיות נגישות.
סיכום
- פיתוח אפליקציות באמצעות Compose וספריית Material 3 Adaptive
- התאמת הפריסות לקטגוריות של גדלי חלונות
- יצירת פריסות עם כמה חלונות
- איך משנים את הגודל של האפליקציה
- אף פעם לא לנעול את כיוון הפעילות
- ללא הגבלת יחס גובה-רוחב
- תמיכה בקלט מסוגים אחרים מלבד מגע
- הימנעות משימוש בממשקי API שהוצאו משימוש
✓ מבצעים את מה שהמשתמשים מצפים: מבצעים אופטימיזציה של האפליקציה כך שתתאים למגוון המכשירים שבהם אנשים משתמשים מדי יום.
✗ אל תחכו. רוצה להתחיל כבר היום?