Chromium Chronicle Nr. 28: Erste Schritte mit Chrome unter iOS

Folge 28: von Mark Cogan in Paris, Frankreich (Januar 2022)
Vorherige Folgen

2022 wird Chrome für iOS 10 Jahre alt. Chrome ist eine der am häufigsten verwendeten iOS-Apps und derzeit auf Platz 2 der Dienstprogramm-Apps im App Store in den USA.

Chrome für iOS bietet all die großartigen Chrome-Funktionen, die unsere Nutzer schätzen, z. B. Synchronisierung, Übersetzung, Inkognitomodus, Passwortmanager, Autofill und viele mehr. Chrome unter iOS kann auch in native iOS-Funktionen wie den Mehrfenstermodus und das automatische Ausfüllen von Passwörtern für das gesamte Gerät integriert werden.

Es gibt jedoch einen wichtigen Vorteil, der Chrome unter iOS deutlich von allen anderen Chrome-Plattformimplementierungen unterscheidet.

Blink wird von Chrome unter iOS nicht verwendet.

Aufgrund der App Store-Regeln von Apple muss Chrome unter iOS die iOS-Plattform-APIs zum Abrufen und Rendern von Webinhalten verwenden. Daher werden in Chrome unter iOS WebKit, Nitro und CFNetwork verwendet, während andere Chrome-Plattformen Blink, V8 und //net nutzen. Aus diesem Grund und aufgrund der begrenzten API, die für iOS-Apps zur Interaktion mit Webseiteninhalten verfügbar ist, werden viele Chrome-Funktionen, die die //content APIs verwenden, in Chrome unter iOS per JavaScript-Einschleusung implementiert.

Plattformübergreifende Funktionen in //components sind so strukturiert, dass so viel Code wie möglich auf allen Plattformen geteilt wird, wobei //content-Abhängigkeiten isoliert bleiben:

ls components/some_component

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

Weitere wichtige Unterschiede zwischen Chrome unter iOS und anderen Plattformen:

  • iOS-Apps müssen im Einzelprozess ausgeführt werden. Daher kann Chrome unter iOS fork() nicht verwenden.
  • Chrome unter iOS ist in Objective-C++, einer Mischung aus C++ und Objective-C, und mit Swift geschrieben.
  • Sie können Chrome unter iOS zwar direkt auf einem iOS-Gerät kompilieren und ausführen, aber auch viele Funktionen in dem leistungsstarken Gerätesimulator von Apple entwickeln.

Einführung in Chrome für iOS

Folgendes wird benötigt:

  • Einen macOS-Computer mit 64 Bit und macOS 11.3 oder höher. Apple Silicon wird unterstützt.
  • Xcode, die IDE für Apple-Plattformen, Version 13.0 oder höher.
  • Die aktuelle Version des JDK.

Weitere Informationen finden Sie in der Erstellungsanleitung.

Das Abrufen der Quelle ähnelt anderen Plattformen:

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

Danach können Sie über die Befehlszeile (oder aus Xcode) erstellen:

autoninja -C out/Debug-iphonesimulator chrome

Weitere Informationen zur Entwicklung von Chrome für iOS-Funktionen

Weitere Informationen finden Sie im Chromium-Styleguide. Weitere Informationen zu Swift, xCode und anderen iOS-spezifischen Ressourcen finden Sie in der Entwicklerdokumentation von Apple.

Wenn Sie normalerweise iOS-Entwickler sind und Chromium noch nicht kennen, lesen Sie die Dokumentation zu wichtigen Abstraktionen und Datenstrukturen.