MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Personalizzare le app in fase di build

Come sviluppatore o vendor di dispositivi mobile, potresti voler personalizzare le app presenti sul dispositivo Firefox OS al primo utilizzo per svariati motivi. Questo articolo spiega le differenti metodologie disponibili.

Le app nel codice sorgente di Gaia

Le app presenti in Firefox OS sono tutte contenute nel codice sorgente di Gaia, in una delle seguenti cartelle:

  • gaia/apps/: trovi le app di default di sistema, quali il calendar, l'email, i setting, ecc.
  • gaia/dev-apps: qui trovi le altre app, quali quelle incluse nel processo di personalizzazione

Se vuoi aggiungere o rimuovere delle app dalla tua build, potrai farlo nei seguenti modi che andiamo a descrivere.

Metodo a furza bruta

Il metodo a "forza bruta" è semplicemente quello di rimuovere (inteso come rimozione dalla tua alberatura di Gaia) le app che non vuoi, durante il processo di costruzione della build stessa.

Editing delle liste di configurazione

Un metodo più raffinato consiste nel modificare i file di configurazione apps-*.list  (li trovi in differenti sottocartelle all'interno della cartella gaia/build/config/, quali phone/ e tablet/) definendo il path delle app che vuoi includere nella build. Per esempio, gaia/build/config/phone/apps-production.list contiene qualcosa di simile a:

apps/bluetooth
apps/bookmark
apps/browser
apps/calendar
apps/callscreen
etc.

Puoi semplicemente includere tutte le app presenti nella cartella nel seguente modo:

apps/*

La logica per scegliere quale apps-*.list utilizzare per la build (cioè la lista della app) è definita nel gaia/Makefile ed è qualcosa di simile a:

GAIA_DEVICE_TYPE?=phone
  ...
GAIA_APP_TARGET?=engineering
  ...
ifeq ($(MAKECMDGOALS), demo)
GAIA_DOMAIN=thisdomaindoesnotexist.org
GAIA_APP_TARGET=demo
else ifeq ($(MAKECMDGOALS), dogfood)
DOGFOOD=1
else ifeq ($(MAKECMDGOALS), production)
PRODUCTION=1
endif
  ...
ifeq ($(PRODUCTION), 1)
GAIA_OPTIMIZE=1
GAIA_APP_TARGET=production
endif

ifeq ($(DOGFOOD), 1)
GAIA_APP_TARGET=dogfood
endif
  ...
ifndef GAIA_APP_CONFIG
GAIA_APP_CONFIG=build$(SEP)config$(SEP)apps-$(GAIA_APP_TARGET).list
endif

Inizialmente, la variabile GAIA_APP_TARGET è impostata a engineering mentre la variabile GAIA_DEVICE_TYPE è impostata a phone, perciò la build di Gaia utilizzerà la lista di app definita in gaia/config/phone/app-engineering.list (che include le app di test, demo, ecc.)

Per costruire una build con una differente lista di app dovrai lanciare make con una differente opzione. Per esempio, per costruire la build con la lista di app definita in gaia/build/config/phone/apps-production.list, dovrai invocare il seguente comando:

PRODUCTION=1 make

Se imposterai l'opzione DEMO=1, verrà utilizzata la lista  apps-demo.list. Se invece specificherai DOGFOOD=1, verrà di conseguenza utilizzata la lista apps-dogfood.list.

In alternativa, puoi costruire una build con una tua lista di app impostando la variabile GAIA_APP_CONFIG direttamente nel gaia/Makefile, e fornendo di conseguenza una tua lista apps-*.list.

gaia/Android.mk contiene queste linee:

ifneq ($(filter user userdebug, $(TARGET_BUILD_VARIANT)),)
GAIA_MAKE_FLAGS += PRODUCTION=1
B2G_SYSTEM_APPS := 1
endif

Durante la build di Gaia, se la variabile VARIANT assume i valori VARIANT=user o VARIANT=userdebug (questo valore viene successivamente copiato nella variabile TARGET_BUILD_VARIANT), allora viene automaticamente impostata l'opzione PRODUCTION=1.

Nota: Puoi scoprire quali altre opzioni di make sono disponibili leggi l'articolo di  riferimento per le opzione di make.

Personalizzazione Commerciale

Il terzo metodo, più dettagliato (ma altrettanto più complesso) consiste nell'utilizzare le personalizzazioni. Ti consentono di personalizzare la build senza modificare il codice di Gaia. Puoi includere le tue personalizzazioni sia in cartelle separate che utilizzare quelle preesistenti.

Per esempio, specificando la variabile di ambiente GAIA_DISTRIBUTION_DIR, indichi quale cartella contiene la tua personalizzazione:

GAIA_DISTRIBUTION_DIR=<DISTRIBUTION_PATH> make production

Al seguente repository https://github.com/mozilla-b2g/gaia/tree/master/customization trovi un esempio completo con tutte le funzionalità personalizzabili.

Possiamo considerare la personalizzazione come un argomento completamente separato. Per ulteriori informazioni fai riferimento alla Guida alla Personalizzazione Commerciale.

Nota: Se vuoi includere app custom esterne come parte della tua build di Gaia, devi utilizzare un processo di build specifico e metterle nella cartella gaia/dev-apps. Per ulteriori informazioni leggi l'articolo Building Prebundled web apps.

Importante: Se sei un vendor di apparati e vuoi creare e distribuire una build custom di B2G/Gaia, devi rispettare alcuni criteri prima di poter includere la app di Firefox Marketplace sui tuoi dispositivi. Contatta Mozilla per maggiori dettagli.

 

Tag del documento e collaboratori

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