Table of Contents
בניית יישומים שעובדים בצורה חלקה על המערכת האקולוגית של אפל – מאייפון ו-iPads ועד Macs – אינה עוד נחמדה ל-A-ve; זוהי ציפייה שמשתמשים רוצים להתחיל משימה בטלפון שלהם ולסיים אותו במחשב הנייד שלהם, או ליהנות מאותו אפליקציה עם ממשק שמרגיש יליד על מסך מגע וגם על מערכת מקלדת-שימוש.
הבנת ההבדלים בפלטפורמת
לפני צלילה ליישום, זה קריטי לחדור את ההבדלים הבסיסיים בין iOS ו- macOS.למרות שניהם לרוץ על Apple סיליקון ולשתף מסגרות מערכת רבות, הם מעוצבים על ידי מודלים שונים של אינטראקציה, מגבלות חומרה וציפיות של משתמשים.
מודל אינטראקציה: מגע מול Pointer
iOS בנוי למניפולציה ישירה באמצעות מגע.משתמשים להתחבר, להחליק, צובט ו 3D Touch (שם זמין) כל רכיב ממשק חייב להיות לפחות 44×44 נקודות כדי לספק יעד נוח להכות. macOS, לעומת זאת, מסתמכ על מניפולציה עקיף: ⁇ נשלט על ידי עכבר או עוקב אחר Macvice, מקלדת עבור קלט מדויק, וברים כי יושב בחלק העליון של המסך.
גודל המסך והחלטה
מסכים אייפון נעים בין 4.7 " ל 6.9"; אייפדים עולים עד 13"; Macs יכולים להגיע 32 " ומעבר.אבל גודל גולמי הוא רק חלק מהסיפור. iOS משתמש במערכת קואורדינט מבוססת נקודה (נקודות לעומת פיקסלים) אשר באופן אוטומטי בקנה מידה עבור צפיפות התצוגה (למשל, @2x, @3x, על macOS, חלונות יכולים להיות בגודל חופשי, ומסגרת AppKit מניחה מחדש של פורמטים גמישים לא רק על גבי דינמיקה.
תבניות ניווט
ב- iOS, ניווט הוא בדרך כלל מבוסס ערימה (push/פופ) או מבוסס לשונית על השורש. משתמשים מצפים להחליק בחזרה או להצמיד כפתור אחורי.על macOS, ניווט היררכי מופיע לעתים קרובות ב- Sidebar (למשל, Mail, Finder) בשילוב עם תצוגות מרובות-pane תוכן.
טיפוגרפיה, ספיגה ושפה חזותית
הנחיות הממשק האנושי של אפל (HIG) לרשום גדלים שונים וספאם לכל פלטפורמה. A כותרת שנראה אלגנטי על תצוגת 27 "Retina עשוי להיות גדול ללא קריאה על iPhone SE. יותר באופן תת-קרקעי, macOS משתמש יותר קל, יותר translucent UI אלמנטים (vibrancy), בעוד iOS נוטה לכיוון רקע מוצק, מעוות, מעודות לכל פלטפורמה בונה אמון חזותי ולהפחית עומס קוגניטיבי.
אסטרטגיות לתמיכה רב-המתונות
ברגע שאתה מבין את ההבדלים, אתה צריך תוכנית ברמה גבוהה עבור איך הקוד והעיצוב שלך יחצה את שתי הפלטפורמות.אין אף אחד בגודל של אחד - כל התשובה, אבל הגישות המוצלחות ביותר נופלות לאחת מכמה קטגוריות - או לשלב אותם.
עיצוב אחראי עם לייפוס הסתגלות
הבסיס של כל אסטרטגיה רב-פעמית הוא פריסה שמגיבת לחלל הזמין. ב- iOS, זה אומר באמצעות מגבלות Auto Layout, תצוגות ערימה ושיעורי גודל (פעולה מול רוחב רגיל / שעה) ב-macOS, אתה יכול להשתמש Auto Layout, כמו גם, אבל אתה צריך לטפל בחלון מחדש של נוף, הוא להימנע ממסגרות קשיחות וניתן להציג מחדש פרופיל על בסיס מכשיר iphone, אבל על בסיס דיוק, לדוגמה, על גבי מסך, על בסיס דיוקנאות ו-i.
Universal Apps (Single Binary)
אפל זכתה בתואר "אפליקציית יוניברסאלית" מאז iOS 2.0, שבו אחד בינארי פועל על iPhone, iPad ו- iPod touch.עם כניסת Mac Catalyst ו- Apple Silicon, אותה גישה יכולה כעת לכלול macOS.התועלת הגדולה ביותר היא בסיס קוד יחיד, צמצום השכפול ולהבטיח שוויון תכונה.
SwiftUI: The Modern Path
(הופנה מהדף SwiftUI) תוכנן מן הקרקע כדי להיות מבהיל ולוח-הפנמות (Platified and cross-platform) היררכיה תצוגה סוויפט יחידנית יכולה לייצר ממשקים מקומיים עבור iOS, iPadOS, macOS, WatchOS ו- TVOS. SwiftUI משתמשת בפלטפורמה-adaptive Modifiers: AFLT:2 מתנהג כמו ערימה על iPhone ותצוגה מפוצלת ב- MacLTF3 ו-FIRDI הוא מספר תכונות חדשות, אך לא ניתן ל-DI.
Mac Catalyst
אם יש לך אפליקציית iPad קיימת, Mac Catalyst מאפשר לך להביא אותה ל-macOS עם עבודה מינימלית יותר. Catalyst משתמשת UIKit אבל להתאים תפריטים, קיצורי דרך מקלדת וניהול חלונות. עם זאת, יישומים Catalyst לעתים קרובות מרגיש פחות "Mac-like" מאשר AppKit Native AppKit.You צריך להשקיע זמן בהוספת פריטים נייחים מתאימים, הוראות תפריט, חלופות לתועלת פרודוקטיביות רבות, 2.
5.פלטפורמות-Specific
כמה יכולות ייחודיות לכל פלטפורמה. macOS תומך במספר חלונות, ברים בתפריט, ובשורה התחתונה: iOS מצטיין במצלמה/AR, משוב גלקטי, ושירותים מבוססי מיקום. אסטרטגיה רב-דקית טובה מאמצת את ההבדלים האלה: גרסת iOS עשויה להציע כפתור מצלמה בעוד ה- MacOS משתמשת בצלם מהמערכת.
המונחים: Consistent Branding
עקביות חזותית - הלוגו, צבעים, איקונוגרפיה, והטון הכולל - מחזקת זהות המותג על פני מכשירים.אבל "עקביות" לא אומר "זהות" צבעו העיקרי של המותג שלך עשוי להראות רקע מוצק על iOS ומבטא עדין על macOS. השתמש בטופוגרפיה של פלטפורמה-appropriate (סן Francisco על פלטפורמות אפל) וספאג כי מרגיש הילידים עבור משתמשים באופן מיידי כמו יישום של המערכת האקולוגית שלך ללא קשר לא מקוון אחר.
יישום UI
עם אסטרטגיה שנבחרה, הגיע הזמן לכתוב קוד שמתאים. הן SwiftUI והן UIKit מציעים כלים חזקים ליצירת ממשקים להגיב למכשיר הנוכחי ולסביבה.
שימוש בסדנאות גודל ואוסף Trait
מערכת איסוף התכונות של UIKit מספקת עדכונים אוטומטיים כאשר הכיוון של המכשיר, גודל הכיתה או שינויים בקנה מידה התצוגה. iOS מגדיר שני כיתות בגודל: FLT:5 ו-FLT:6 עבור רוחב וגובה כאחד. על Mac Catalyst, כיתות הגודל הם בדרך כלל רוחב קבוע וגובה קבוע.You יכול להתגבר על שיטות כמו FLT 7 להחליף או להתאים את ה-ספאם לדוגמה, אתה יכול להיות רק תצוגת קומפקטי (DIRD) כאשר אתה יכול להיות מחולק רק על פני שטח קבוע (DIRDIRDIRDIRD) קומפקטי) קומפקטי (DIRDIRDIRDIRDIRDIRDIRD) קומפקטי (DIRDIRDIRDIRD) קומפקטית רק על פני שטח קבוע (D) קומפקטית תצוגת קומפקטית תצוגת נוף לאחור קומפקטי) קומפקטי).
המונחים: SwiftUI'S Conditional Modifiers
ב- SwiftUI, השתמש בערך הסביבה של ההרחבה (FLT:8) או ב-FLT:9 כדי לבנות פריסות הסתגלות:
struct ContentView: View {
@Environment(\.horizontalSizeClass) var sizeClass
var body: some View {
if sizeClass == .compact {
TabView { ... }
} else {
NavigationSplitView { ... } detail: { ... }
}
}
}
אותו מושג חל על macOS: ניתן לבדוק את ה-FLT:11 או להשתמש ב-(FLT:12 כדי לנהל מספר חלונות.
התאמת שליטה וג'ים
בקרות מגע ראשון כמו שקופיות יכול להיות מדביק על macOS ללא עכבר.verse, תפריטים פופובר שעובד באופן מושלם על iPhone עשוי להרגיש מחוספס על מסך גדול. השתמש ב-FLT:14 (UIKit) או FLT:15 (SwiftUI) להחליף רכיבים שלמים.לדוגמה, תאריך על iOS עשוי להראות גלגל קומפקטי, בעוד הגרסה קומפקטית משתמש עם שדה נופל עם טקסט.
ארגזים ותפריטים
macOS מצפה לבר תפריט עם פקודות סטנדרטיות (File, Edit, View וכו ') על iOS, Toolbars הם בדרך כלל קבוע בחלק העליון או התחתון של המסך.עם Catalyst, אתה יכול להשתמש בתוספים FLT:16, אבל ב SwiftUI אתה יכול להגדיר קיצור דרך FLT:17 עבור macOS. עבור חוויה מאוחדת, לעצב את הפעולות הליבה שלך להופיע כפריטים על שני, אבל לתת למשתמשים נוספים של Macbar.
ניהול נתונים והמדינה במכשירים
תמיכה מרובה device היא לא רק על UI - זה על המשכיות נתונים המשתמשים מצפים שעבודתם יישמרה ונרכרונה כך שהם יכולים לאסוף לאן הם עזבו.
iCloud ו-CloudKit
iCloud מספק את עמוד השדרה עבור מסנכרן מסמכים (באמצעות iCloud Drive) והנתונים המובנות (באמצעות CloudKit) האפליקציה שלך צריכה להשתמש ב-FLT 18 עבור Core Data, אשר דוחפת באופן אוטומטי שינויים במכשירים של משתמשים.זה עובד על iOS ו- MacOS כאחד. עבור יישומים SwiftUI, תוכל לשלב את FLT:19 עם חנויות ענןKited מתמשכת.
Handoff ו- Universal Clipboard
Handoff מאפשר למשתמשים להתחיל פעילות במכשיר אחד ולהמשיך אותו על מכשיר אחר.אימוץ (FLT:20) כדי לסמן את ההקשר הנוכחי של המשתמש - למשל, לערוך מסמך, סקירה על רכישה - כך שהמכשיר השני יכול לשחזר את המדינה המדויקת. Universalboard פועל גם באופן אוטומטי אם אתה משתמש בנתוני טקסט ייעודיים של מערכת.
שיקום המדינה
ב- iOS, שימור המדינה ושיקום הם קריטיים כי משתמשים לעתים קרובות לעבור בין יישומים. על macOS, זה פחות נפוץ אבל עדיין צפוי לאחר Reboot. UseFLT:21 (או SwiftUI's FLT 22) כדי לשמור על מיקום הגלולות, כרטיסיות שנבחרו, וקלט טקסט.זה מבטיח חוויה עקבית אם המשתמש הוא על iPhone או Mac.
בדיקות ואופטימיזציה
אסטרטגיה רב-פעמית היא רק טובה כמו משטר הניסויים שלה.הבדלים בגדלי מסך, מאפייני ביצועים והתנהגות מערכת ההפעלה יכולים לעמוד על באגים עדינים שקל להחמיץ בסביבה של פיתוח חד-פעמי.
Xcode Simulator ו-Previews
סימולטורים של Xcode מאפשרים לך לבחון הגדרות iOS מרובות ו- MacOS מבלי צורך בחומרה פיזית. השתמש בתפריט "מכשיר מסמנת" לעבור בין iPhone, iPad ו- Mac Catalyst מטרות. SwiftUI Previews הם חזקים במיוחד: אתה יכול מיידית מספר רב של ספקים תצוגה מקדימה להראות את UI שלך על iPhone 15 Pro, iPad, ו- Mac בו זמנית, סימולטור לא יכול לשחזר את כל התנאים של מכשיר אמיתי - עדיין לחץ פיזי, עדיין לחץ פיזי.
מעבדות התקן ו- Beta Testing
לרוץ על מגוון של מכשירים אמיתיים: iPad עם מקלדת, iPhone מבוגר, Mac עם מסך קטן, ו- MacBook Pro DPI גבוה לשים לב איך הפריסה ההסתגלות שלך מתנהג עם הגדרות נגישות (טקסט גדול, טקסט נועז, סוג דינמי) השתמש TestFlight כדי להפיץ בטא לבנות ולאסוף משוב של משתמשים בנושאים שונים.
ביצוע פרופ'
ל- iOS ול-macOS יש פרופילים תרמיים וזיכרון שונים.A ראייה מורכבת SwiftUI המבצעת היטב על iPad M2 עשויה להתגמל על אינטל Mac אם הוא משתמש יותר מדי דוגמאות של FLT:23. השתמש ב- Xcode כדי לפרופיל האפליקציה שלך בכל מטרה: לבדוק ציור מופרז, מחיאות ראייה גדולים, ואנימציה לא פתורים.
המונחים: a Cross-Platformאחריות
עיצוב נגישות אינו אופציונלי - ויש ליישם אותו באופן עקבי בכל המכשירים. הן iOS והן macOS לשתף את קורא המסך VoiceOver ולתמוך בסוג דינמי, אבל הם שונים כיצד פעולות נגישות מוצגות. על iOS, לחץ ארוך עשוי לעורר פעולה אישית; על macOS, פעולה זהה יכול להיות חשוף באמצעות קיצור דרך מקלדת או תפריט.
מסקנה
(עיצוב אסטרטגיה תמיכה רב-פעמית עבור iOS ו- MacOS יישומים הוא אתגר רב-פעמי כי תגמולים זהירים תכנון.על ידי הבנת ההבדלים הבסיסיים במודלים של אינטראקציה, פרדיגמות מסך ומוסכמות פלטפורמה, אתה יכול לבחור את הגישה האדריכלית הנכונה - בין אם זה של SwiftUI של מוצר מערכת ההפעלה שלך הוא לספק את התוצאות ה-Date-platformation הרשמי שלך, אפליקציה אוניברסלית עם פריסות מבוססות תכונות, או MacCatalyst עבור iPad-I עבור פרויקטים עם מתודולוגיה-I-I הוא מבטיח את התצורה יעילה מאוד.