Chromium Chronicle מס' 28: תחילת השימוש ב-Chrome ב-iOS

פרק 28: מאת מארק קוגן בפריז, צרפת (ינואר 2022)
הפרקים הקודמים

בשנת 2022, Chrome ב-iOS יחגוג 10 שנים. Chrome היא אחת מאפליקציות ה-iOS הנפוצות ביותר – כרגע היא האפליקציה מספר 2 ב-App Store בארה"ב.

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

עם זאת, יש דבר אחד חשוב שהופך את Chrome ב-iOS לשונה מאוד מכל היישומים האחרים של פלטפורמות Chrome.

Chrome ב-iOS לא משתמש ב-Blink.

בגלל הכללים של Apple App Store, דפדפן Chrome ב-iOS חייב להשתמש בממשקי ה-API של פלטפורמת iOS לאחזור ולעיבוד של תוכן מהאינטרנט. כך, Chrome ב-iOS משתמש ב-WebKit, Nitro ו-CFNetwork במקומות שבהם פלטפורמות אחרות של Chrome משתמשות ב-Blink, V8 ו-//net. בעקבות זאת, וה-API המוגבל שזמין לאפליקציות ל-iOS לאינטראקציה עם תוכן של דפי אינטרנט, תכונות רבות של Chrome שמשתמשות בממשקי ה-API מסוג //content מוטמעות ב-Chrome ב-iOS באמצעות החדרת JavaScript.

התכונות בפלטפורמות שונות ב-//components מיועדות לשיתוף קוד רב ככל האפשר בכל הפלטפורמות, תוך שמירה על יחסי התלות של //content מופרדים:

ls components/some_component

content/        # code with dependencies on //content.
core/           # cross-platform code with no //content dependencies.
ios/            # iOS implementation using JavaScript injection.

דוגמאות להבדלים חשובים נוספים בין Chrome ב-iOS לבין פלטפורמות אחרות:

  • אפליקציות ל-iOS נדרשות לעבור תהליך יחיד, ולכן Chrome ב-iOS לא יכול fork().
  • Chrome ב-iOS נכתב ב-Objective-C++ (שילוב של C++ ו-Objective-C), יחד עם כמה Swift.
  • למרות שניתן להדר ולהפעיל את Chrome ב-iOS ישירות במכשיר iOS, אפשר גם לפתח תכונות רבות בסימולטור המכשיר המשופר ש-Apple מספקת.

תחילת העבודה עם Chrome ב-iOS

הנתונים הדרושים:

  • מחשב עם macOS, גרסת 64 ביט, עם macOS מגרסה 11.3 ואילך. יש תמיכה ב-Apple Silicon.
  • Xcode, סביבת הפיתוח המשולבת (IDE) לפלטפורמות של Apple, גרסה 13.0 ואילך.
  • הגרסה הנוכחית של ה-JDK.

מידע נוסף זמין בהוראות לבנייה.

אחזור המקור דומה מאוד לפלטפורמות אחרות:

mkdir ${HOME}/chromium-ios
cd ${HOME}/chromium-ios
fetch ios

לאחר מכן, תוכלו ליצור גרסת build משורת הפקודה (או מ-Xcode):

autoninja -C out/Debug-iphonesimulator chrome

מידע נוסף על פיתוח תכונות של Chrome ב-iOS

אנו ממליצים לך לעיין במדריך הסגנון של Chromium. קרא את התיעוד למפתחים של Apple כדי לקבל מידע נוסף על Swift, xCode ומשאבים אחרים הספציפיים ל-iOS.

אם אתם בדרך כלל מפתחי iOS ואתם משתמשים חדשים ב-Chromium, עיינו במסמכי התיעוד בנושא הפשטות ומבני נתונים חשובים.