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 para iOS celebrará su 10o aniversario. Chrome es una de las aplicaciones de iOS más usadas y, actualmente, es la segunda aplicación de utilidad en la tienda de aplicaciones 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 funciones nativas de iOS, como el autocompletado de contraseñas en el modo multiventana y de todo el dispositivo.

Sin embargo, hay un aspecto importante que diferencia a Chrome en iOS de todas las demás implementaciones de la plataforma de 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 renderizar el 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 las páginas web, muchas funciones de Chrome que usan las APIs de //content se implementan en Chrome, en iOS, a través de 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.

Otras diferencias importantes entre Chrome en iOS y otras plataformas 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 algo de Swift.
  • Si bien puedes compilar y ejecutar Chrome en iOS directamente en un dispositivo iOS, también puedes desarrollar muchas funciones en el potente 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 una versión posterior Apple Silicon es compatible.
  • 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.

El proceso para recuperar la fuente es muy similar al de otras plataformas:

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

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

autoninja -C out/Debug-iphonesimulator chrome

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

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

Si sueles ser desarrollador en iOS y no tienes experiencia en Chromium, consulta la documentación sobre abstracciones y estructuras de datos importantes.