Aflevering 28: door Mark Cogan in Parijs, Frankrijk (januari 2022)
Vorige afleveringen
In 2022 viert Chrome op iOS zijn 10e verjaardag. Chrome is een van de meest gebruikte iOS-apps; het is momenteel de nummer 2 Utility-app in de Amerikaanse App Store.
Chrome op iOS biedt alle geweldige Chrome-functies waar onze gebruikers dol op zijn, waaronder synchronisatie, vertalen, incognito, wachtwoordbeheer, automatisch aanvullen en nog veel meer. Chrome op iOS kan ook worden geïntegreerd met native iOS-functies, zoals het automatisch invullen van wachtwoorden in meerdere vensters en op het hele apparaat.
Er is echter één belangrijk ding dat Chrome op iOS heel anders maakt dan alle andere Chrome-platformimplementaties.
Chrome op iOS gebruikt Blink niet.
Vanwege de App Store-regels van Apple moet Chrome op iOS de iOS-platform-API's gebruiken voor het ophalen en weergeven van webinhoud. Chrome op iOS gebruikt dus WebKit, Nitro en CFNetwork, terwijl andere Chrome-platforms Blink, V8 en //net
gebruiken. Als gevolg hiervan en vanwege de beperkte API die beschikbaar is voor iOS-apps om te communiceren met de inhoud van webpagina's, worden veel Chrome-functies die de //content
API's gebruiken, in Chrome op iOS geïmplementeerd met behulp van JavaScript-injectie.
Platformonafhankelijke functies in //components
zijn zo gestructureerd dat ze zoveel mogelijk code op alle platforms delen, terwijl //content
inhoudsafhankelijkheden in silo's blijven:
ls components/some_component
content/ # code with dependencies on //content.
core/ # cross-platform code with no //content dependencies.
ios/ # iOS implementation using JavaScript injection.
Andere belangrijke verschillen tussen Chrome op iOS en andere platforms zijn:
- iOS-apps moeten uit één proces bestaan, dus Chrome op iOS kan niet
fork()
. - Chrome op iOS is geschreven in Objective-C++ (een mix van C++ en Objective-C), samen met wat Swift.
- Hoewel je Chrome op iOS rechtstreeks op een iOS-apparaat kunt compileren en uitvoeren, kun je ook veel functies ontwikkelen in de behoorlijk capabele apparaatsimulator die Apple biedt.
Ga aan de slag met Chrome op iOS
Je zal nodig hebben:
- Een macOS-computer, 64-bit, met macOS 11.3 of hoger. Apple Silicon wordt ondersteund.
- Xcode, de IDE voor Apple-platforms, versie 13.0 of hoger.
- De huidige versie van de JDK.
Zie de bouwinstructies voor meer informatie.
Het ophalen van de bron lijkt veel op andere platforms:
mkdir ${HOME}/chromium-ios
cd ${HOME}/chromium-ios
fetch ios
Daarna kunt u bouwen vanaf de opdrachtregel (of vanuit Xcode):
autoninja -C out/Debug-iphonesimulator chrome
Meer informatie over de ontwikkeling van Chrome op iOS-functies
We raden u aan de Chromium-stijlgids te raadplegen. Lees de ontwikkelaarsdocumentatie van Apple voor meer informatie over Swift, xCode en andere iOS-specifieke bronnen.
Als je doorgaans een iOS-ontwikkelaar bent en nieuw bij Chromium, raadpleeg dan de documentatie over belangrijke abstracties en datastructuren .