Chromium Chronicle #28: Начало работы с Chrome на iOS

Эпизод 28: Марк Коган в Париже, Франция (январь 2022 г.)
Предыдущие серии

В 2022 году Chrome на iOS отметит свое 10-летие. 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, использующие //content API, реализованы в 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 непосредственно на устройстве iOS, вы также можете разработать множество функций в вполне функциональном симуляторе устройства, который предоставляет Apple.

Начало работы с Chrome на iOS

Вам понадобится:

  • Компьютер macOS (64-разрядная версия) с macOS 11.3 или более поздней версии. Apple Silicon поддерживается.
  • Xcode, IDE для платформ Apple, версия 13.0 или выше.
  • Текущая версия JDK.

Дополнительную информацию смотрите в инструкциях по сборке .

Получение исходного кода во многом похоже на другие платформы:

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, обратитесь к документации по важным абстракциям и структурам данных .