Chromium Chronicle #28: Bắt đầu với Chrome trên iOS

Tập 28: của Mark Cogan ở Paris, Pháp (tháng 1 năm 2022)
Các tập trước

Vào năm 2022, Chrome trên iOS sẽ kỷ niệm 10 năm ra mắt. Chrome là một trong những ứng dụng iOS được sử dụng rộng rãi nhất—hiện là ứng dụng Tiện ích số 2 trong App Store ở Hoa Kỳ.

Chrome trên iOS cung cấp tất cả các tính năng tuyệt vời của Chrome mà người dùng yêu thích, bao gồm Đồng bộ hoá, Dịch, Ẩn danh, Trình quản lý mật khẩu, Tự động điền và nhiều tính năng khác. Chrome trên iOS cũng tích hợp với các tính năng gốc của iOS, chẳng hạn như tự động điền mật khẩu trên toàn thiết bị và chế độ nhiều cửa sổ.

Tuy nhiên, có một điều chính làm cho Chrome trên iOS rất khác biệt so với tất cả các cách triển khai nền tảng Chrome khác.

Chrome trên iOS không sử dụng Blink.

Theo các quy tắc của App Store của Apple, Chrome trên iOS phải sử dụng API nền tảng iOS để tìm nạp và hiển thị nội dung web. Do đó, Chrome trên iOS sử dụng CGI, Nitro và CFNetwork, trong đó các nền tảng Chrome khác sử dụng Blink, V8 và //net. Do đó, cùng với API bị giới hạn dành cho ứng dụng iOS để tương tác với nội dung trang web, nhiều tính năng của Chrome sử dụng API //content được triển khai trong Chrome trên iOS bằng cách chèn JavaScript.

Các tính năng trên nhiều nền tảng trong //components có cấu trúc để chia sẻ nhiều mã nhất có thể trên tất cả các nền tảng trong khi vẫn tách biệt các phần phụ thuộc //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.

Những điểm khác biệt quan trọng khác giữa Chrome trên iOS và các nền tảng khác bao gồm:

  • Ứng dụng iOS bắt buộc phải theo quy trình đơn, vì vậy, Chrome trên iOS không thể fork().
  • Chrome trên iOS được viết bằng Objective-C++ (kết hợp giữa C++ và Objective-C), cùng với một số Swift.
  • Mặc dù bạn có thể trực tiếp biên dịch và chạy Chrome trên iOS trên thiết bị iOS, nhưng bạn cũng có thể phát triển nhiều tính năng trong trình mô phỏng thiết bị có chức năng khá mạnh mẽ mà Apple cung cấp.

Làm quen với Chrome trên iOS

Bạn cần có:

  • Máy tính macOS, 64 bit, chạy macOS 11.3 trở lên. Apple Silicon được hỗ trợ.
  • Xcode, IDE dành cho các nền tảng của Apple, phiên bản 13.0 trở lên.
  • Phiên bản hiện tại của JDK.

Xem hướng dẫn tạo để biết thêm thông tin.

Tìm nạp nguồn giống như các nền tảng khác:

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

Sau đó, bạn có thể tạo từ dòng lệnh (hoặc từ Xcode):

autoninja -C out/Debug-iphonesimulator chrome

Tìm hiểu thêm về quá trình phát triển tính năng của Chrome trên iOS

Bạn nên tham khảo Hướng dẫn về quy tắc lập trình Chromium. Đọc tài liệu dành cho nhà phát triển của Apple để tìm hiểu thêm về Swift, xCode và các tài nguyên khác dành riêng cho iOS.

Nếu bạn thường là nhà phát triển iOS và mới sử dụng Chromium, hãy tham khảo tài liệu về các thành phần trừu tượng và cấu trúc dữ liệu quan trọng.