Chromium Chronicle #28:開始使用 iOS 版 Chrome

第 28 集:作者:法國巴黎的 Mark Cogan (2022 年 1 月)
上一集

2022 年 Chrome iOS 版將歡慶 10 週年。 Chrome 是目前最受歡迎的 iOS 應用程式之一,目前是美國 App Store 排名第 2 的「公用事業」應用程式。

iOS 版 Chrome 提供了使用者喜愛的所有 Chrome 實用功能,包括同步、翻譯、無痕模式、密碼管理工具、自動填入等。 iOS 版 Chrome 也整合了 iOS 原生功能,例如多視窗模式和裝置層級密碼自動填入功能。

不過,iOS 版 Chrome 與所有其他 Chrome 平台實作項目有很大的差異。

iOS 版 Chrome 不支援 Blink。

根據 Apple 的 App Store 規則,iOS 版 Chrome 必須使用 iOS 平台 API 擷取及顯示網頁內容。因此 iOS 版 Chrome 採用 WebKit、Nitro 和 CFNetwork,其他 Chrome 平台則使用 Blink、V8 和 //net。因此,以及 iOS 應用程式可以使用的有限 API 與網頁內容互動,許多使用 //content API 的 Chrome 功能在 iOS 的 Chrome 中都是透過 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.

iOS 版 Chrome 和其他平台上的其他重要差異包括:

  • iOS 應用程式必須是單一程序,因此 iOS 版 Chrome 無法 fork()
  • iOS 版 Chrome 是以 Objective-C++ (C++ 和 Objective-C) 編寫而成,以及一些 Swift。
  • 雖然您可以直接在 iOS 裝置上編譯及執行 Chrome,但您也可以使用 Apple 提供的強大裝置模擬器,執行許多功能開發工作。

在 iOS 裝置上開始使用 Chrome

您會需要以下項目:

  • 搭載 macOS 11.3 以上版本的 macOS 電腦 (64 位元)。支援 Apple Silicon。
  • Xcode (Apple 平台的 IDE 13.0 以上版本)。
  • 目前的 JDK 版本。

詳情請參閱建構操作說明

擷取來源的方式與其他平台類似:

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

接著,您可以透過指令列 (或 Xcode) 建構:

autoninja -C out/Debug-iphonesimulator chrome

進一步瞭解如何開發 iOS 版 Chrome

建議您參閱 Chromium 樣式指南。請參閱 Apple 的開發人員說明文件,進一步瞭解 Swift、xCode 和其他 iOS 專用資源。

如果您一般是 iOS 開發人員,且剛開始使用 Chromium,請參閱重要抽象和資料結構說明文件