Chromium Chronicle n°28: premiers pas avec Chrome sur iOS

Épisode 28:Mark Cogan à Paris, France (janvier 2022)
Épisodes précédents

En 2022, Chrome sur iOS fêtera ses 10 ans. Chrome est l'une des applications iOS les plus utilisées. Elle est actuellement la deuxième application utilitaire sur l'App Store aux États-Unis.

Chrome sur iOS offre toutes les fonctionnalités de Chrome appréciées de nos utilisateurs, y compris la synchronisation, la traduction, la navigation privée, le gestionnaire de mots de passe, la saisie automatique et bien d'autres. Chrome sur iOS s'intègre également aux fonctionnalités iOS natives, telles que le mode multifenêtre et la saisie automatique des mots de passe au niveau de l'appareil.

Cependant, un aspect majeur rend Chrome sur iOS très différent de toutes les autres implémentations de la plate-forme Chrome.

Sous iOS, Chrome n'utilise pas Blink.

En raison des règles de l'App Store d'Apple, Chrome sur iOS doit utiliser les API de la plate-forme iOS pour récupérer et afficher le contenu Web. Chrome sur iOS utilise donc WebKit, Nitro et CFNetwork, alors que d'autres plates-formes Chrome utilisent Blink, V8 et //net. En raison de cela et de l'API limitée disponible pour permettre aux applications iOS d'interagir avec le contenu des pages Web, de nombreuses fonctionnalités Chrome qui utilisent les API //content sont implémentées dans Chrome sous iOS avec injection JavaScript.

Les fonctionnalités multiplates-formes de //components sont structurées de manière à partager autant de code que possible sur toutes les plates-formes, tout en cloisonnant les dépendances //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.

Voici d'autres différences importantes entre Chrome sur iOS et d'autres plates-formes:

  • Les applications iOS devant être à processus unique, Chrome sur iOS ne peut pas fork().
  • Sur iOS, Chrome est écrit en Goal-C++ (combinaison de C++ et Goal-C), et en Swift.
  • Bien que vous puissiez compiler et exécuter Chrome sur iOS directement sur un appareil iOS, vous pouvez également développer de nombreuses fonctionnalités dans le simulateur d'appareil très performant fourni par Apple.

Premiers pas avec Chrome sur iOS

Vous avez alors besoin de :

  • Un ordinateur macOS 64 bits exécutant macOS 11.3 ou version ultérieure Apple Silicon est compatible.
  • Xcode, l'IDE pour les plates-formes Apple, version 13.0 ou supérieure.
  • Version actuelle du JDK.

Pour en savoir plus, consultez les instructions de compilation.

La récupération de la source est semblable à celle des autres plates-formes:

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

Vous pouvez ensuite compiler à partir de la ligne de commande (ou de Xcode):

autoninja -C out/Debug-iphonesimulator chrome

En savoir plus sur le développement de fonctionnalités Chrome sur iOS

Nous vous invitons à vous reporter au guide de style Chromium. Consultez la documentation Apple destinée aux développeurs pour en savoir plus sur Swift, xCode et d'autres ressources spécifiques à iOS.

Si vous êtes généralement un développeur iOS et que vous débutez avec Chromium, consultez la documentation sur les abstractions et les structures de données importantes.