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