La Toolchain per l'esecuzione delle app di Chrome sui dispositivi mobili è in anteprima per gli sviluppatori. Non esitare a fornirci il tuo feedback tramite il tracker dei problemi GitHub, il nostro forum per gli sviluppatori di app per Chrome su Stack Overflow o la nostra pagina per sviluppatori di G+.
Panoramica
Puoi eseguire le tue app di Chrome su Android e iOS tramite una toolchain basata su Apache Cordova, un framework di sviluppo mobile open source per la creazione di app mobile con funzionalità native utilizzando HTML, CSS e JavaScript.
Apache Cordova esegue il wrapping del codice web della tua applicazione con una shell nativa dell'applicazione e ti consente di distribuire la tua app web ibrida tramite Google Play e/o l'App Store di Apple. Per utilizzare Apache Cordova con un'app di Chrome esistente, utilizza lo strumento a riga di comando cca
(c ordova c hrome a pp).
Risorse aggiuntive
- Ci sono alcune considerazioni particolari che dovresti tenere a mente quando sviluppi con Cordova; le abbiamo elencate nella sezione Considerazioni.
- Per visualizzare le API di Chrome supportate sui dispositivi mobili, visita la pagina Stato API.
- Per visualizzare l'anteprima dell'app di Chrome su un dispositivo Android senza la Toolchain, utilizza lo Strumento per sviluppatori di app di Chrome (ADT).
Iniziamo.
Passaggio 1: installa gli strumenti di sviluppo
La catena di strumenti delle app di Chrome per dispositivi mobili può avere come target iOS 6 e versioni successive e Android 4.x e versioni successive.
Dipendenze di sviluppo per tutte le piattaforme
È richiesta la versione 0.10.0 (o successiva) di Node.js con
npm
:- Windows: installa Node.js utilizzando gli eseguibili di installazione scaricabili da nodejs.org.
- OS X o Linux: gli eseguibili per l'installazione sono disponibili anche su nodejs.org. Se vuoi evitare l'accesso root, potrebbe essere più pratico installare tramite nvm. Esempio:
curl https://raw.github.com/creationix/nvm/master/install.sh | sh source ~/.bash_profile || source ~/.profile || source ~/.bashrc nvm install 0.10 nvm alias default 0.10
Targeting Android
Durante lo sviluppo di un'applicazione per Android, dovrai installare anche:
- Java JDK 7 (o superiore)
- SDK Android versione 4.4.2 (o successive)
- Installa l'SDK Android e gli Strumenti per sviluppatori Android forniti con Android ADT Bundle.
- Aggiungi
sdk/tools
esdk/platform-tools
alla variabile di ambiente PATH. - OS X: la versione di Eclipse fornita con l'SDK Android richiede JRE 6. Se aprendo Eclipse.app non ti viene chiesto di installare JRE 6, scaricalo dal Mac App Store.
- Linux: l'SDK Android richiede librerie di supporto a 32 bit. Su Ubuntu, scaricali tramite:
apt-get install ia32-libs
.
- Formica Apache
- Aggiungi
apache-ant-x.x.x/bin
alla variabile di ambiente PATH.
- Aggiungi
Targeting iOS
Tieni presente che lo sviluppo per iOS può essere eseguito solo su OS X. Inoltre, dovrai installare:
- Xcode 5 (o versioni successive), che include gli strumenti a riga di comando Xcode
- ios-deploy (necessario per il deployment su un dispositivo iOS)
npm install -g ios-deploy
- ios-sim (necessario per il deployment nel simulatore iOS)
npm install -g ios-sim
- (Facoltativo) Registrati come sviluppatore iOS
- Questa operazione è necessaria per i test su dispositivi reali e per l'invio allo store.
- Puoi saltare la registrazione se prevedi di utilizzare solo i simulatori per iPhone/iPad.
Installa lo strumento a riga di comando cca
Installa cca
tramite npm:
npm install -g cca
Per aggiornare la Toolchain in un secondo momento con le nuove release: npm update -g cca
.
Verifica che tutti gli elementi siano installati correttamente eseguendo questo comando dalla riga di comando:
cca checkenv
Verrà visualizzato il numero di versione di cca
e la conferma dell'installazione dell'SDK per Android o iOS.
Passaggio 2: crea un progetto
Per creare un progetto di app di Chrome per dispositivi mobili predefinito in una directory denominata YourApp
esegui:
cca create YourApp
Se hai già creato un'app di Chrome e vuoi portarla su una piattaforma mobile, puoi utilizzare il flag --link-to
per creare un link simbolico all'app:
cca create YourApp --link-to=path/to/manifest.json
Se invece vuoi copiare i file esistenti dell'app Chrome, puoi utilizzare il flag --copy-from
:
cca create YourApp --copy-from=path/to/manifest.json
Non hai ancora un'app Chrome? Prova uno dei molti esempi di app Chrome con supporto per dispositivi mobili.
Passaggio 3: Sviluppo
Puoi creare ed eseguire la tua applicazione in due modi:
- Opzione A: dalla riga di comando, utilizzando lo strumento
cca
, oppure - Opzione B: utilizzando un IDE, come Eclipse o Xcode. L'uso di un IDE è del tutto facoltativo (ma spesso utile) per facilitare l'avvio, la configurazione e il debug della tua applicazione mobile ibrida.
Opzione A: sviluppare e creare utilizzando la riga di comando
Dalla directory principale della cartella del progetto generata da cca
:
Android
- Per eseguire la tua app sull'emulatore Android:
cca emulate android
- Nota: è necessario aver configurato un emulatore. Puoi eseguire
android avd
per configurarlo. Scarica altre immagini dell'emulatore eseguendoandroid
. Per velocizzare l'esecuzione delle immagini Intel, installa HAXM di Intel.
- Nota: è necessario aver configurato un emulatore. Puoi eseguire
- Per eseguire l'app su un dispositivo Android connesso:
cca run android
iOS
- Per eseguire l'app sul simulatore iOS:
cca emulate ios
- Per eseguire l'app su un dispositivo iOS connesso:
cca run ios
- Nota: a tal fine, è necessario impostare un profilo di provisioning per il dispositivo.
Opzione B: sviluppare e creare utilizzando un IDE
Android
- In Eclissi, seleziona
File
->Import
. - Scegli
Android
>Existing Android Code Into Workspace
. - Importa dal percorso appena creato con
cca
.- Dovresti avere due progetti da importare, uno dei quali è
*-CordovaLib
.
- Dovresti avere due progetti da importare, uno dei quali è
- Fai clic sul pulsante Riproduci per eseguire l'app.
- Dovrai creare una configurazione di esecuzione (come per tutte le applicazioni Java). Di solito ti viene richiesto automaticamente per la prima volta.
- La prima volta dovrai anche gestire i tuoi dispositivi/emulatori.
iOS
Apri il progetto in Xcode digitando in una finestra del terminale quanto segue:
cd YourApp open platforms/ios/*.xcodeproj
Assicurati di creare il target giusto.
In alto a sinistra (accanto ai pulsanti Esegui e Interrompi), c'è un menu a discesa per selezionare il progetto e il dispositivo di destinazione. Assicurati che sia selezionato
YourApp
e nonCordovaLib
.Fai clic sul pulsante Riproduci.
Apportare modifiche al codice sorgente dell'app
I tuoi file HTML, CSS e JavaScript si trovano nella directory www
della cartella del progetto cca.
Importante: dopo aver apportato modifiche a www/
, devi eseguire cca prepare
prima di eseguire il deployment dell'applicazione. Se esegui cca build
, cca run
o cca emulate
dalla riga di comando, il
passaggio di preparazione viene eseguito automaticamente. Se stai sviluppando utilizzando Eclipse/XCode, devi eseguire cca prepare
manualmente.
Debug
Puoi eseguire il debug dell'app Chrome per dispositivi mobili nello stesso modo in cui esegui il debug delle applicazioni Cordova.
Passaggio 4. Passaggi successivi
Ora che disponi di un'app di Chrome per dispositivi mobili funzionante, ci sono molti modi per migliorare l'esperienza sui dispositivi mobili.
Manifest per dispositivi mobili
Esistono alcune impostazioni delle app di Chrome che si applicano solo alle piattaforme mobile. Abbiamo creato un file www/manifest.mobile.json
per contenere questi valori e i valori specifici sono indicati in tutta la documentazione relativa ai plug-in e in questa guida.
Devi modificare i valori qui di conseguenza.
Icone
Le app mobile richiedono alcune risoluzioni più elevate delle icone rispetto alle app di Chrome desktop.
Per Android, sono necessarie le seguenti dimensioni:
- 36px, 48px, 78px, 96px
Per le app per iOS, le dimensioni richieste variano a seconda che supporti iOS 6 o iOS 7. Il numero minimo di icone richieste è:
- iOS 6: 57px, 72px, 114px, 144px
- iOS 7: 72px, 120px, 152px
Nel tuo file manifest.json
, un elenco completo di icone dovrebbe essere simile al seguente:
"icons": {
"16": "assets/icons/icon16.png",
"36": "assets/icons/icon36.png",
"48": "assets/icons/icon48.png",
"57": "assets/icons/icon57.png",
"72": "assets/icons/icon72.png",
"78": "assets/icons/icon78.png",
"96": "assets/icons/icon96.png",
"114": "assets/icons/icon114.png",
"120": "assets/icons/icon120.png",
"128": "assets/icons/icon128.png",
"144": "assets/icons/icon144.png",
"152": "assets/icons/icon152.png"
}
Le icone verranno copiate nelle posizioni appropriate per ogni piattaforma ogni volta che esegui cca prepare
.
Schermate iniziali
Le app su iOS mostrano una breve schermata iniziale durante il caricamento delle app. In platforms/ios/[AppName]/Resources/splash
è inclusa una serie di schermate iniziali
di Cordova predefinite.
Le dimensioni necessarie sono:
- 320px x 480px + 2x
- 768 px x 1024 px + 2x (iPad verticale)
- 1024 px x 768 px + 2x (iPad orizzontale)
- 640px x 1146px
Le immagini della schermata iniziale non sono attualmente modificate da cca
.
Passaggio 5: pubblica
Nella directory platforms
del tuo progetto sono presenti due progetti nativi completi: uno per Android e uno per iOS. Puoi creare versioni di release di questi progetti e pubblicarle su Google Play o nell'App Store per iOS.
Pubblica sul Play Store
Per pubblicare la tua applicazione Android sul Play Store:
Aggiorna i due ID versione di Android, quindi esegui
cca prepare
:android:versionName
viene impostato utilizzando la chiaveversion
inwww/manifest.json
(imposta anche la versione dell'app in pacchetto desktop).android:versionCode
impostato utilizzando la chiaveversionCode
inwww/manifest.mobile.js
.
Modifica (o crea)
platforms/android/ant.properties
e imposta le proprietàkey.store
ekey.alias
(come spiegato nella documentazione per gli sviluppatori Android).Crea il tuo progetto:
./platforms/android/cordova/build --release
Cerca il file .apk firmato all'interno di
platforms/android/ant-build/
.Carica l'applicazione firmata in Google Play Developer Console.
Pubblica nell'App Store iOS
- Aggiorna la versione dell'app impostando la chiave
CFBundleVersion
inwww/manifest.mobile.js
, quindi eseguicca prepare
. Apri il file di progetto Xcode trovato nella directory
platforms/ios
:open platform/ios/*.xcodeproj
Segui la Guida alla distribuzione di app di Apple.
Considerazioni speciali
Se non hai mai utilizzato le app di Chrome, il problema principale è che alcune funzionalità web sono disattivate. Tuttavia, molti di questi sistemi funzionano attualmente all'interno di Cordova.
Un'app di Chrome potrebbe non funzionare subito sui dispositivi mobili. Alcuni problemi comuni relativi al trasferimento su dispositivo mobile:
- Problemi di layout con schermi piccoli, soprattutto con orientamento verticale.
- Correzione suggerita:utilizza le query supporti CSS per ottimizzare i contenuti per gli schermi più piccoli.
- Le dimensioni delle finestre dell'app di Chrome impostate tramite chrome.app.window verranno ignorate e verranno utilizzate le dimensioni native del dispositivo.
- Correzione suggerita:rimuovi le dimensioni delle finestre hardcoded e progetta la tua app pensando a dimensioni diverse.
- Sarà difficile toccare con un dito i pulsanti e i link piccoli.
- Correzione suggerita:regola i touch target in modo che siano di almeno 44 x 44 punti.
- Comportamento imprevisto quando si utilizza il passaggio del mouse, che non esiste sui touchscreen.
- Correzione suggerita: oltre al passaggio del mouse, attiva al tocco elementi UI come menu a discesa e descrizioni comando.
- Un ritardo tocco di 300 ms.
- Correzione suggerita: utilizza il polyfill JavaScript FastClick by FT Labs.
- Leggi questo articolo su HTML5Rocks per alcune informazioni di base.
API di Chrome supportate
Abbiamo reso disponibili molte delle API di Chrome principali per le app di Chrome per dispositivi mobili, tra cui:
- identity: accedi agli utenti tramite OAuth2
- payments: vendi beni virtuali all'interno della tua app mobile
- pushMessaging: consente di eseguire il push dei messaggi alla tua app dal tuo server
- socket: invia e ricevi dati sulla rete utilizzando TCP e UDP
- notifications (solo Android): invia notifiche avanzate dalla tua app mobile
- storage: archivia e recupera i dati delle coppie chiave-valore localmente
- syncFileSystem: per archiviare e recuperare i file supportati da Google Drive
- sveglie: esegui attività periodicamente
- inattivo: rileva quando lo stato di inattività della macchina cambia.
- alimentazione: sostituisce le funzioni di gestione dell'alimentazione del sistema
Tuttavia, non tutte le API Chrome JavaScript sono implementate. E non tutte le funzionalità di Chrome Desktop sono disponibili sui dispositivi mobili:
- nessun tag
<webview>
- nessun IndexedDB
- non getUserMedia()
- senza NaCl
Puoi monitorare l'avanzamento nella pagina Stato API.
Strumento per sviluppatori di app di Chrome
ADT (Chrome Apps Developer Tool) per Android è un'app Android autonoma che consente di scaricare ed eseguire un'app di Chrome senza configurare la Toolchain di sviluppo come descritto sopra. Utilizza Chrome ADT quando vuoi visualizzare rapidamente l'anteprima di un'app Chrome esistente (già pacchettizzata come .crx) sul tuo dispositivo Android.
Chrome ADT per Android è attualmente in versione pre-alpha. Per provarlo, visualizza le note di rilascio di ChromeADT.apk per le istruzioni di installazione e utilizzo.