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

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

בשנת 2022, תחגוג את יום השנה העשירי של Chrome ב-iOS. 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, אבל אפשר גם לפתח תכונות רבות בסימולטור המכשירים המשופר ש-Apple מספקת.

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

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

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

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

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

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

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

autoninja -C out/Debug-iphonesimulator chrome

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

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

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