Hacking Gaia

Questo articolo richiede una revisione stilistica. Scopri come puoi essere d’aiuto.`

Questa pagina è diretta agli sviluppatori Gaia. Se stai cercando informazioni su come compilare e installare Firefox OS dovresti leggere Compilare e installare Firefox OS.

Gaia è un insieme di web apps che creano l'interfaccia di Firefox OS. Ciò che vedi sullo schermo in Firefox OS è scritto usando le open Web technologies. Anche la schermata home e le app di default usano le stesse tecnologie.

Ottenere i sorgenti

Per ottenere  i sorgenti per Gaia, effettua un fork su GitHub  e usalo per scaricare i file tramite git.

$ git clone https://github.com/mozilla-b2g/gaia.git

Eseguire Gaia

Puoi usare Gaia sia su un desktop, dentro a Firefox, sia su un apparecchio mobile compatibile.

B2G desktop

B2G desktop è una build per desktop del runtime applicativo usato su Firefox OS che è possibile utilizzare per eseguire Gaia su un computer desktop.

Puoi scaricare una nightly build di B2G desktop da qui. In base alla versione su cui desideri lavorare potresti volere una versione specifica di latest-mozilla-b2g18. Esistono versioni per Linux (32 bit and 64 bit), Mac OS X e Windows.

Le nightly builds sono pacchettizate con una versione di Gaia recente. Una volta scaricato l'archivio, tutto ciò che dovrai fare è estrarlo in una cartella ed eseguire il file compilato di b2g nella cartella.

$ cd b2g
$ ./b2g

Se vuoi usare una versione personalizzata di Gaia usando B2G devi creare un profilo:

$ cd /path/to/gaia
$ DEBUG=1 DESKTOP=0 make

Questo comando genera una cartella chiamata profile nella directory gaia. L'opzione DEBUG esegue Gaia come una hosted app su di un web-server invece che come app pacchettizzate che devono essere ricompilate e ripacchettizate dopo ogni cambiamento. Una volta creato il nuovo profilo puo trovare la sua posizione leggendo l'ultima riga dell'output del comando precedente:

Profile Ready: please run [b2g|firefox] -profile /path/to/gaia/profile

A questo punto puoi usare il profilo personalizzato in B2G passandolo come variabile:

$ ./b2g /path/to/gaia/profile

Inoltre se vuoi puoi compilare B2G sai sorgenti.

Usare Gaia in Firefox

Puoi anche usare Gaia dentro a Firefox. Questo ti permette di mantenere veloce il ciclo di sviluppo e di avere gli strumenti per lo sviluppo ed il debug integrati in Firefox. Vedi Usare Gaia in Firefox per i dettagli su come usare Gaia in Firefox.

Usare Gaia su un dispositivo

Se possiedi un dispositivo compatibile puoi usare Gaia installando Firefox OS. Vedi Compilare ed installare Firefox OS per i dettagli. Puoi inoltre consultare la documentazione su come testare Firefox OS.

Test di unità

Vedi Gaia unit tests per la documentazione su come creare ed eseguire i test di unità per Gaia.

Segnala i Bug

I bug sono segnalati su Bugzilla nella sezione Boot2Gecko > Gaia. Segnala un nuovo bug under the Gaia component (or one of the sub-components).

Contribuisci a Gaia

Mozilla dipende dalle dalla comunità open source  per sviluppare Gaia e le app e ci piacerebbe che tu partecipassi.

Alcuni posti da cui trovare bug su cui lavorare:

Direttive sul codice

  • Background:
  • Aggiungi sempre <!DOCTYPE html>ai file HTML (that is, as HTML5 documents). Se non lo farai, Internet Explorer 9 e seguenti caricheranno le tue pagine in modalità di compatibilità.
  • Aggiungi sempre "use strict"; all'inizio dei tuoi fie  JavaScript per usare la modalità strict.
  • Usa due spazi per l'indentazione, non le tabulazioni.
  • Please use line breaks to separate logical bits of code!
  • Usa un trattino basso per separare le parole nei titoli dei file, fai_cosi.js.
  • Usa ' invece di " per le stringhe.

Regole in più

Sbagliato:

if (expression) doSomething();

Corretto:

if (expression) {
  doSomething();
}

Se lavori su un'app di sistema assicurati di leggere questo.

Prima di pubblicare una patch esegui gjslint  per controllare gli errori di formattazione:

gjslint --nojsdoc my_file.js

Pubblicare una patch

Prima di tutto riporta il bug su Bugzilla e segnala checi stai lavorando, usa il tuo account account Bugzilla.

Crea una nuova branch di Gaia in locale:

$ git branch branchname
$ git checkout branchname

Segnala i tuoi cambiamenti:

$ git add /file/to/add
$ git commit -m "Bug XXXXX - Fix the broken Gaia and save the world"

Esegui il push della tua branch:

$ git push origin branchname

Usando il bottone Pull sulla tua branch in GitHub segnala che sei disponibile a pubblicare il tuo codice.

Per richiedere una revisione della tua patch, allega la pull request al bug segnalato su Bugzilla aggiungendo l'URL della pull request e settando "review" ("r") a "?" quindi aggiungi il bugzilla ID di uno tra i proprietari del modulo (Molto importante - altrimenti il tuo bug non verrà controllato da nessuno). Puoi usare l'addon Github tweaks for bugzilla extension on AMO per aiutarti ad automatizzare questo processo. Questo addon ti aiuterà creando automaticamente l'allegato e  lo aggiungerà al bug su bugzilla; dovrai però segnalare che il bug ha bisogno della revisione di un proprietario.

I revisori potrebbero chiederti qualche modifica; potresti dover annulare i tuoi cambiamenti sulla tua branch ma una volta che avrai soddisfattole loro richieste incorporeranno la tua branch nella master del loro modulo. Potrebbero chiederti di anullare tutti i tuoi cambiamenti graduali per crearne uno singolo finale in modo che il tuo lavoro possa essere seguito meglio.

La persona che incorporerà il cambiamento nella master branch aggiungerà il tag r= flag nel commento al momento dell'incorporamento.

Opzioni per il comando make

Ci sono molte variabili nel Makefile che fanno riferimento a ambienti di sviluppo non più supportati o non sono ben documentate, non fare affidamento su queste perché potrebbero essere rimosse in futuro.

Default

make

Compile un profilo con le app packaged che può essere usato dalla versione B2G Desktop e può essere portato sul dispositivo.

Debug make

DEBUG=1 make

Con questa opzione attivata (DEBUG=1) Gaia può essere utilizzata come una hosted app su un webserver invece che come una app packaged che deve essere pacchettizzata dopo ogni cambiamento. Visita la pagina con l'ultima versione di Firefox Nightly per avere anche gli ultimi strumenti per sviluppatori specifici per B2G.

Push to device

make install-gaia

make reset-gaia

Usando adb (Android Debug Bridge) puoi mandare al dispositivo la versione di Gaia che hai compilato. reset-gaia rimuoverà completamente tutti i file relativi al profilo utente e le web app prima di mandare al dispositivo la nuova versione di Gaia.

Selective build

APP=system make

APP=system make install-gaia

L'opzione APP permette di specificare quali app mettere nella versione di Gaia che compilerai, questo è utile se non vuoi metterle tutte ogni volta che vuoi aggiornare Gaia sul tuo disposistivo.

High resolution image assets

GAIA_DEV_PIXELS_PER_PX=1.5 make

Questa variabile permette di usare diverse risoluzioni per le immagini di sistema, rimpiazzandole con  le rispettive versioni indicate,*@1.5x.(gif|jpg|png), se esistono.

Al momento Gaia è rivolta a tre differenti versioni di schermo, HBGA (320x240), qHD (540×960) e WVGA (480×800) ; puoi usare la variabile GAIA_DEV_PIXELS_PER_PX per essere sicuro che le immagini siano alla corretta risoluzione per dispositivi qHD e WVGA . Vedi l'articolo A pixel is not a pixel per maggiori informazioni sulla relazione tra pixel del dispositivo e i pixel css..

Script compression and optimization

GAIA_OPTIMIZE=1 make

Concatena le risorse di Gaia e ottimizza i file javascript interni per avere un minor tempo di caricamento.

Preference shortcuts

NOFTU=1

Disattiva la guida introduttiva per l'utente.

REMOTE_DEBUGGER=1

Abilita il debug tramite lo strumento adb.

DEVICE_DEBUG=1

Per le versioni di Firefox Os successive alla 1.2,  puoi usare questo parametro quando vuoi eseguire il debug delle app tramite lo strumento AppManager.

Distribution and market customization build

GAIA_DISTRIBUTION_DIR=./dir

Leggi Customization Overview per i dettagli.

Contatta il team in questi modi

Tag del documento e collaboratori

 Hanno collaborato alla realizzazione di questa pagina: chrisdavidmills, EdoPut, klez
 Ultima modifica di: chrisdavidmills,