The Chromium Chronicle n. 28: guida introduttiva a Chrome su iOS

Episodio 28: di Mark Cogan a Parigi, Francia (gennaio 2022)
Puntate precedenti

Nel 2022, Chrome su iOS festeggerà il suo 10° anniversario. Chrome è una delle app per iOS più utilizzate ed è attualmente la seconda app Utility numero 2 nell'App Store degli Stati Uniti.

Chrome su iOS offre tutte le fantastiche funzionalità di Chrome apprezzate dai nostri utenti, tra cui sincronizzazione, Traduttore, la modalità di navigazione in incognito, Gestore delle password, la compilazione automatica e molte altre. Chrome su iOS si integra anche con le funzionalità native di iOS, come la compilazione automatica delle password a livello di dispositivo e multi-finestra.

Tuttavia, c'è un aspetto importante che rende Chrome su iOS molto diverso da tutte le altre implementazioni della piattaforma Chrome.

Chrome su iOS non utilizza Blink.

A causa delle regole dell'App Store di Apple, Chrome su iOS deve utilizzare le API della piattaforma iOS per il recupero e il rendering dei contenuti web. Quindi Chrome su iOS utilizza WebKit, Nitro e CFNetwork mentre altre piattaforme Chrome utilizzano Blink, V8 e //net. Per questo motivo, e per via dell'API limitata disponibile per le app per iOS per interagire con i contenuti delle pagine web, molte funzionalità di Chrome che utilizzano le API //content vengono implementate in Chrome su iOS tramite JavaScript injection.

Le funzionalità multipiattaforma in //components sono strutturate in modo da condividere quanto più codice possibile su tutte le piattaforme, mantenendo le dipendenze di //content isolate:

ls components/some_component

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

Altre differenze importanti tra Chrome su iOS e altre piattaforme includono:

  • Le app per iOS devono essere elaborate in modo singolo, pertanto Chrome su iOS non può fork().
  • Chrome su iOS è scritto in Objective-C++ (un mix di C++ e Objective-C), insieme ad alcuni caratteri Swift.
  • Puoi compilare ed eseguire Chrome su iOS direttamente su un dispositivo iOS, ma puoi anche sviluppare molte funzioni nel potente simulatore del dispositivo fornito da Apple.

Guida introduttiva a Chrome su iOS

Ti serviranno:

  • Un computer macOS, a 64 bit, con macOS 11.3 o versioni successive. Apple Silicon è supportato.
  • Xcode, l'IDE per piattaforme Apple, versione 13.0 o successiva.
  • La versione attuale del JDK.

Per ulteriori informazioni, consulta le istruzioni per la creazione.

Il recupero del codice sorgente è molto simile ad altre piattaforme:

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

A questo punto, puoi utilizzare la riga di comando (o Xcode):

autoninja -C out/Debug-iphonesimulator chrome

Scopri di più sullo sviluppo delle funzionalità di Chrome su iOS

Ti invitiamo a consultare la guida di stile di Chromium. Leggi la documentazione per gli sviluppatori di Apple per scoprire di più su Swift, xCode e altre risorse specifiche per iOS.

Se sei uno sviluppatore iOS e non hai mai utilizzato Chromium, consulta la documentazione su importanti astrazioni e strutture di dati.