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

Tập 28: của Mark Cogan tại 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 của 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ộ hóa, 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 như tự động điền mật khẩu trên nhiều cửa sổ và trên toàn thiết bị.

Tuy nhiên, có một điều quan trọng khiến Chrome trên iOS rất khác biệt so với tất cả các phương pháp 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 trong App Store của Apple, Chrome trên iOS phải sử dụng các API nền tảng iOS để tìm nạp và hiển thị nội dung trên web. Vì vậy, Chrome trên iOS sử dụng WebKit, Nitro và CFNetwork, trong đó các nền tảng Chrome khác đang sử dụng Blink, V8 và //net. Do đó, và API bị giới hạn dành cho các ứ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 tính năng 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ả 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:

  • Các ứng dụng iOS phải là một quy trình đơn, vì vậy, Chrome trên iOS không thể fork().
  • Chrome trên iOS được viết bằng Mục tiêu-C++ (sự kết hợp giữa C++ và Mục tiêu-C), cùng với một số Swift.
  • Mặc dù bạn có thể biên dịch và chạy Chrome trên iOS ngay 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ị khá mạnh mà Apple cung cấp.

Bắt đầu sử dụng Chrome trên iOS

Bạn sẽ 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 cho các nền tảng của Apple, phiên bản 13.0 trở lên.
  • Phiên bản JDK hiện tại.

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

Quá trình tìm nạp nguồn cũng 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ề cách 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ề kiểu 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 cấu trúc dữ liệu và bản tóm tắt quan trọng.