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