הטמעת Split View / Slide Over לאפליקציית iPad

אם גרסת ה-iPad של האפליקציה שלכם לא מחלקת מסך עם תוכניות אחרות, המשתמשים עוברים למתחרים. אנו מתאימים את הממשק לריבוי משימות ב-iPad באופן מלא: מניתוח הסיבות ועד למסירה ותמיכה. לאחר ההטמעה האפליקציה פועלת כראוי ב-Split View וב-Slide Over, ושיעור הנטישות בטאבלטים יורד באופן ניכר.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
הטמעת Split View / Slide Over לאפליקציית iPad
בינוני
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

מדוע אפליקציית iPad אינה עובדת ב-Split View: ניתוח הסיבות

המשתמש פותח את האפליקציה ב-iPad, גורר חלון שני לצד — והממשק מתפרק: הפאנל חורג מהקצה, הרשימה נחתכת, הכפתורים דורסים זה את זה. הסיבה כמעט תמיד אחת: האפליקציה תוכננה לקנבס מסך מלא קבוע, ו-split view ipad שובר את הקנבס הזה. המערכת מעניקה לחלון רוחב שרירותי, וכל מה שהיה מקובע ל"רוחב המסך" מפסיק להתאים למציאות.

המקור הראשון לתקלה — מידות קשיחות. אם בקוד הפריסה מוטבעים ערכים מוחלטים במקום יחסיים, בעת כיווץ החלון לשליש מהמסך התוכן נחתך או נמתח מעבר לגבולות. פריסה אדפטיבית ipad נבנית על מחלקות גודל ונקודות עוגן: הממשק נבנה מחדש לפי הרוחב הזמין, ולא לפי דגם המכשיר. בלי זה, המעבר בין מצב מסך מלא ל-split view הופך לאסון חזותי.

השכבה השנייה של הבעיות — multitasking ipad ומחזור החיים של החלון. בעת גרירת המפריד המערכת משנה את מידות החלון פעמים רבות, והאפליקציה מחויבת לעבד כל שינוי כראוי, ולא רק את השינוי הסופי. אם זרם האירועים הזה מתעלמים ממנו, הפריסה נשארת במצב מיושן עד ההפעלה הבאה.

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

הגורם השלישי — מידות החלון ב-iPad כישות נפרדת. ב-split view זמינות תצורות שונות: חצי, שליש, מצב שכבה מעל אפליקציה אחרת. כל אחת מהן מגדירה מגבלות משלה על רוחב מינימלי של עמודות, התנהגות ניווט וצפיפות תוכן. אפליקציה שאינה מבחינה בין המצבים האלה נראית סביר בחלק מהמצבים, ובאחרים — בלתי קריאה.

מפרקים כיצד זה נסגר: מהמרת הפריסה למכולות אדפטיביות ועד טיפול באירועי שינוי גודל החלון ושמירת מצב הסצנה.

מה נותנת הטמעה נכונה של Split View ו-Slide Over

מה משתנה במספרים

split view ipad תקין אינו "שתי עמודות על מסך רחב", אלא ניהול גודל החלון כמצב נפרד. כאשר המשתמש גורר את המפריד, המערכת מחשבת מחדש את הגיאומטריה בכל פריים, ואם הממשק בנוי על קואורדינטות קבועות, מתחילות חיתוכים של טקסט, חפיפה של פאנלים ואובדן פוקוס הקלט.

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

שלוש גישות להתאמה

פריסות קבועות לרזולוציות מסוימות. מהיר בהתחלה, אך כל תצורת חלון חדשה — באג נפרד. שיעור ההפעלות המוצלחות בריבוי משימות יורד: חלק מהמשתמשים רואים פריסה שבורה וסוגרים את האפליקציה.

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

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

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

מה מקבל הלקוח

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

עובדים על בקרי מכולות נייטיביים — UIKit נותן התנהגות צפויה בעת שינוי גודל החלון ללא טיימרים ידניים והרשמות להתראות.

שלבי יישום תמיכה בריבוי משימות ב-iPad

תמיכה בריבוי משימות ב-iPad אינה דגל בהגדרות הפרויקט, אלא בנייה מחדש של כל לוגיקת המסכים: אותו ממשק צריך לעבוד באופן זהה גם במצב מסך מלא וגם בעמודה צרה לצד אפליקציה אחרת. להלן כיצד אנו מובילים את יישום split view מה� audits ועד למסירת התיעוד.

  1. ביקורת הממשק הנוכחי. עוברים על כל המסכים ומתעדים מה יישבר בעת כיווץ: מידות קבועות מראש, מיקום מוחלט, חלונות מודאליים במסך מלא, טבלאות ללא גלילה אופקית. בפלט — מפת נקודות בעייתיות עם עדיפויות.
  2. תכנון סכמות אדפטיביות. מגדירים נקודות שבירה של הפריסה וכללי בנייה מחדש: היכן רשימה הופכת לעמודה, היכן פאנל הפרטים עובר לעמודה נפרדת, מה מתקפל לתצוגה קומפקטית. מתאמים התנהגות לכל מחלקת רוחב חלון.
  3. הגדרת התנהגות חלונות. קובעים כיצד האפליקציה מגיבה לגרירת מחיצה, שינוי כיוון ומעבר בין split view ל-slide over. מצב הממשק נשמר בכל שינוי גודל — המשתמש אינו מאבד הקשר.
  4. בדיקת מצבי חלון. מריצים תרחישים בכל התצורות: מסך מלא, שתי עמודות, פאנל צד צר, החלפת אפליקציה ראשית. בודקים לא רק את הפריסה, אלא גם את הלוגיקה — שמירת נתונים, פעולת ניווט, נכונות מחוות.
  5. מסירת תיעוד. מוסרים לצוות הלקוח את סכמת נקודות השבירה, כללי התנהגות החלונות וצ'קליסט לבדיקת מסכים חדשים, כדי שעבודות המשך לא ישברו את ריבוי המשימות.

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

במה Split View שונה מ-Slide Over ומתי להשתמש בכל אחד?

Split View ו-Slide Over הם שני מצבי ריבוי משימות שונים ב-iPad, וההבדל ביניהם אינו קוסמטי אלא ארכיטקטוני. ב-Split View האפליקציה מחלקת את המסך עם אפליקציה שכנה בחלקים קבועים, החלון חי ברוחב מוגבל, והמערכת שולחת שינויי גודל כאירועי פריסה רגילים.

ב-Slide Over האפליקציה נעה מעל בפאנל צר, מבלי לשנות את הפריסה של האפליקציה הראשית שמתחתיה. עבור מהנדס זה אומר: ב-Split View הממשק שלכם מחויב להתארגן מחדש לכל רוחב שרירותי, ב-Slide Over — לעבוד בפורמט צר ויציב, מבלי לשבור את הרקע.

ההבדל המרכזי הוא במצב הניווט. ב-Split View המשתמש מצפה ששתי האפליקציות ישמרו על ההקשר: המסמך הפתוח, המיקום ברשימה, הטיוטה. המשמעות היא שאין לאפס את מחסנית הניווט בכל שינוי גודל — אחרת בעת גרירת המפריד המסך מתאפס למסך הראשי.

ב-Slide Over האפליקציה חיה מעל ולעיתים קרובות נתפסת כפאנל זמני: כאן מתאים מצב קל, חזרה מהירה לאותו מקום והיעדר מעברים כבדים.

גם התנהגות המחוות מכתיבה את הבחירה. ב-Split View המפריד נמשך, החלון משנה פרופורציות, והחלקה מהקצה מחליפה אפליקציות — המחווה חייבת להישאר צפויה ולא להתנגש עם הניווט שלכם. ב-Slide Over הפאנל מוחלק הצידה, ואם תתלו על מחווה זו פעולה משלכם, המשתמש יאבד את היכולת לסגור את החלון. אנו מפרידים בין התרחישים הללו ברמת טיפול במחוות ואיננו מיירטים את קצוות המערכת.

המסקנה המעשית פשוטה. Split View מתאים במקום שבו נדרשת עבודה מקבילה עם שני מקורות: דואר ולוח שנה, מסמך והערות, קטלוג וכרטיס מוצר. Slide Over — לתרחישי עזר והתייחסות: צ'אט מעל העבודה, תצוגה מהירה, מענה להתראה מבלי לאבד הקשר.

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

מקרה בוחן: כיצד אפליקציית iPad הפסיקה להישבר ב-Split View

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

במצב Split View הממשק לא חישב מחדש את הרוחב: כרטיסי היומן חפפו זה לזה, פאנל הסינון גלש אל מחוץ לגבולות המסך, ובעת גרירת חלון דרך Slide Over האפליקציה איבדה את הטקסט שהוזן ואיפסה את מיקום הרשימה. פניות לתמיכה בתרחישים אלה היוו כ�רבע מכלל הפניות בחודש.

מה היה לפני

הניתוח חשף שלוש סיבות בלתי תלויות. הפריסה הייתה מקובעת לקואורדינטות מוחלטות במקום לאילוצים אדפטיביים, ולכן בעת שינוי רוחב המיכל האלמנטים לא הסתדרו מחדש. מצב המסך נשמר בשכבת תצוגה זמנית והושמד בכל מעבר בין מצבי ריבוי המשימות. ומטפלי שינוי גודל החלון פעלו בהשהיה, כך שהממשק "הדביק" את הגיאומטריה החדשה בקפיצות.

מה שינו

העברנו את הפריסה לאילוצים אדפטיביים עם נקודות בקרה לפי רוחב: עמודה אחת בחלון צר, שתיים ב-Split View, שלוש במצב מסך מלא. את המצב הוצאנו לשכבה נפרדת ששורדת יצירה מחדש של התצוגה — מיקום הרשימה, טיוטת הקלט והלשונית הפתוחה משוחזרים בכל החלפה. את עיבוד שינויי הגודל העברנו למודל מבוסס אירועים ללא סקירה, והסרנו את הקפיצות בעת גרירת המפריד.

מדד לפני אחרי
פניות בנושא פריסה בריבוי משימות ~25% מהפניות מקרים בודדים
אובדן מצב בעת החלפה משוחזר באופן יציב אינו משוחזר
ציור מחדש בעת גרירה קפיצות, השהיה חלק, ללא השהיה
כיסוי מצבים בבדיקות מסך מלא בלבד כל שלושת המצבים

מה נהיה

מספר הפניות לתמיכה בנושא ריבוי משימות ירד כמעט לאפס, ושיעור המשתמשים העובדים ב-Split View עלה — התרחיש הפסיק להיות מסוכן. הבדיקות מורצות כעת בכל שלושת מצבי הרוחב, ולכן רגרסיות נתפסות לפני השחרור ולא אחרי התלונות. גישה זו לפריסה אדפטיבית תרגלנו על UIKit ואנו מעבירים אותה לפרויקטים אחרים כדפוס תקני.

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

מה אם יש לנו UI-פריימוורק משלנו? העקרונות זהים — נקודות בקרה לפי רוחב ושכבת מצב חיצונית; משתנה רק התחביר של הקישורים.

תארו את המשימה — נחזור עם הערכה ותוכנית עבור האפליקציה שלכם.

ספקות בנוגע לתאימות, מיגרציה וחזרה לאחור: מה נדון

לפני הפעלת split view ipad בגרסת Release, לקוחות בדרך כלל שואלים שלוש שאלות: האם ההתאמה תשבור תרחישים קיימים בטלפון, האם ניתן להחזיר שינויים באופן ממוקד, ומה יישאר בפרויקט לאחר המסירה. אנו עונים לגופו של עניין.

מה אם לאחר המיגרציה של אפליקציית iPad חלק מהתרחישים בטלפון יתנהגו אחרת?

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

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

האם ניתן להחזיר שינויים באופן חלקי? כן: הפריסה נשלטת באמצעות תצורה, ולא מפוזרת על פני קוד המסכים. די להחזיר את מערך הכללים הקודם עבור גרסה מסוימת — שאר השיפורים נשארים ב-Build.

עד כמה זה תואם ל-Stack הנוכחי? ההתאמה נשענת על מנגנוני הפלטפורמה הסטנדרטיים, ולכן אינה דורשת שינוי ארכיטקטורה או כתיבה מחדש של שכבת הרשת. את המגבלות אנו מתעדים מראש: היכן שהפלטפורמה אינה מספקת את ההתנהגות הנדרשת, אנו מציעים פתרון עוקף ומתארים אותו בתיעוד.

הלקוח מקבל לידיו:

  • תרשימי מצבי התאמה: כיצד הפריסה משתנה בעת גרירת המפריד ושינוי כיוון;
  • תצורות עדיפות תוכן עבור כל מחלקת גודל חלון;
  • מדיניות חזרה לאחור: אילו כללים מוחזרים ובאיזה סדר;
  • תיעוד ההתאמה — מה והיכן לשנות בעת הוספת מסכים חדשים;
  • מערך בדיקות רגרסיה עבור טלפון וטאבלט;
  • יומן מגבלות פלטפורמה ידועות עם פתרונות עוקפים.

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