Chromium Chronicle n.o 28: Comienza a usar Chrome en iOS

Episodio 28: de Mark Cogan en París, Francia (enero de 2022)
Episodios anteriores

En 2022, Chrome en iOS celebrará su 10o aniversario. Chrome es una de las apps para iOS más usadas; actualmente es la segunda app de utilidades en la App Store de EE.UU.

Chrome en iOS ofrece todas las excelentes funciones de Chrome que nuestros usuarios adoran, como Sincronización, Traductor, Incógnito, Administrador de contraseñas, Autocompletar y muchas más. Chrome en iOS también se integra con las funciones nativas de iOS, como el autocompletado de contraseñas en todo el dispositivo y el modo multiventana.

Sin embargo, hay un aspecto importante que hace que Chrome en iOS sea muy diferente de todas las demás implementaciones de la plataforma Chrome.

Chrome en iOS no usa Blink.

Debido a las reglas de la App Store de Apple, Chrome en iOS debe usar las APIs de la plataforma de iOS para recuperar y procesar contenido web. Por lo tanto, Chrome en iOS usa WebKit, Nitro y CFNetwork mientras otras plataformas de Chrome usan Blink, V8 y //net. Debido a esto, y a la API limitada disponible para que las apps para iOS interactúen con el contenido de páginas web, muchas funciones de Chrome que usan las APIs de //content se implementan en Chrome para iOS mediante la inyección de JavaScript.

Las funciones multiplataforma de //components están estructuradas para compartir la mayor cantidad de código posible en todas las plataformas y, al mismo tiempo, mantener las dependencias de //content aisladas:

ls components/some_component

content/        # code with dependencies on //content.
core/           # cross-platform code with no //content dependencies.
ios/            # iOS implementation using JavaScript injection.

Entre otras diferencias importantes entre Chrome en iOS y otras plataformas, se incluyen las siguientes:

  • Las apps para iOS deben ser de un solo proceso, por lo que Chrome en iOS no puede fork().
  • Chrome en iOS está escrito en Objective-C++ (una combinación de C++ y Objective-C), junto con Swift.
  • Si bien puedes compilar y ejecutar Chrome en iOS directamente en un dispositivo iOS, también puedes desarrollar muchas funciones en el excelente simulador de dispositivos que proporciona Apple.

Introducción a Chrome en iOS

Necesitarás:

  • Una computadora con macOS de 64 bits que ejecute macOS 11.3 o versiones posteriores Se admite Apple Silicon.
  • Xcode, el IDE para plataformas de Apple, versión 13.0 o posterior.
  • Es la versión actual del JDK.

Consulta las instrucciones de compilación para obtener más información.

La recuperación de la fuente es muy similar a hacerlo en otras plataformas:

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

Después de eso, puedes compilar desde la línea de comandos (o desde Xcode):

autoninja -C out/Debug-iphonesimulator chrome

Más información sobre Chrome en el desarrollo de funciones para iOS

Le recomendamos que consulte la guía de estilo de Chromium. Lee la documentación para desarrolladores de Apple para obtener más información sobre Swift, Xcode y otros recursos específicos para iOS.

Si sueles ser desarrollador de iOS y nunca usaste Chromium, consulta la documentación sobre abstracciones y estructuras de datos importantes.