Al termine dei test l’applicazione è pronta per essere distribuita e pubblicata sugli store di Apple e di Google. Per completare con successo questa operazione occorre creare un launcher standard o premium, configurarlo ed infine ottenere le credenziali e i certificati necessari alla pubblicazione.
Configurazione del launcher #
Nell’immagine seguente vediamo il menu di configurazione del launcher. Vediamo ora quali dati devono essere inseriti in ognuna delle sezioni.
Impostazioni #
La sezione delle impostazioni è quella mostrata nell’immagine precedente. Devono essere inseriti i seguenti dati:
- Nome del launcher: è il nome con il quale viene mostrato il launcher nella console di Instant Developer.
- Versione template launcher: la versione del launcher che verrà usata per creare i pacchetti per gli store.
- Messaggio di aggiornamento: nel caso di un launcher Premium, è il messaggio che l’utente vedrà al momento dell’aggiornamento dell’applicazione. Se non viene specificato, verrà usato il messaggio standard.
Se la versione del launcher viene lasciata vuota, verrà sempre utilizzata l’ultima versione disponibile, che corrisponde all’ultima versione rilasciata del framework di Instant Developer Cloud.
Si consiglia quindi di selezionare sempre l’ultima versione corrispondente a quella del framework in uso e aggiornarla in modo corrispondente. Si ricorda che App Store e Google Play costringono gli sviluppatori a rimanere aggiornati all’ultima versione dei loro framework e strumenti di sviluppo, quindi se si continua ad utilizzare un template datato, dopo un certo tempo, che di solito è un anno, non si potrà più inviare l’applicazione agli store.
Nota bene: l’aggiornamento del template consiste nell’utilizzo di un nuovo set di plugin, di una nuova versione di Cordova, di una nuova versione delle librerie Android e iOS, ed infine di una nuova versione degli ambienti di compilazione. Per quanto l’obiettivo di Instant Developer sia quello di minimizzare il numero di breaking change al cambiamento di versione, non è possibile garantire che cambiando il template l’applicazione non modifichi il proprio comportamento o che non si ottengano errori di compilazione o di runtime. Dopo aver cambiato template, si consiglia quindi di leggere attentamente le note di rilascio delle versioni corrispondenti di Instant Developer Cloud e di testare nuovamente l’applicazione prima di distribuirla agli utenti.
App e Pacchetti #
Questa sezione indica la build installata nel launcher e i pacchetti inviati agli store. Per installare una build nel launcher occorre eseguire la procedura di installazione su launcher, come indicato nel paragrafo Test delle applicazioni nei launcher.
Se il launcher è di tipo Premium, ogni volta che si installa una nuova build nel launcher, essa verrà automaticamente installata in tutti i dispositivi e questo processo è praticamente istantaneo. Se invece il launcher è standard, si dovrà passare da una nuova pubblicazione sugli store e poi aspettare che i dispositivi si aggiornino. In questo caso possono passare giorni o settimane prima di poter aggiornare tutti i dispositivi.
Per compilare ed inviare ad App Store oppure a Google Play, occorre cliccare i pulsanti Compila iOS o Compila Android. Prima di poter compilare o inviare, tuttavia, occorre completare tutta la procedura di configurazione e di preparazione indicata nelle pagine seguenti.
Nella lista dei pacchetti è possibile vedere quali pacchetti sono stati compilati, scaricare l’APK o la IPA e vedere quali plugin nativi contiene ogni pacchetto. In caso di errori di compilazione o di invio agli store, nella lista appare un link che permette di vedere i dettagli dell’errore.
Segmenti utenti (launcher premium) #
Un segmento utenti permette di mettere in produzione build diverse per gruppi di utenti diversi, in caso di launcher premium. In questo modo, ad esempio, è possibile effettuare un beta test di una nuova versione senza influenzare gli utenti della versione attuale dell’app.
Per aggiungere un segmento utenti occorre cliccare il pulsante + Crea segmento utenti e scegliere un nome univoco che servirà per identificare il segmento utenti all’interno dell’applicazione.
A questo punto sarà possibile installare nel launcher versioni diverse per segmenti utenti diversi. L’associazione avviene nel momento dell’installazione, come mostrato nell’immagine seguente: al momento della scelta del launcher in cui installare la build, apparirà la lista dei segmenti utenti e sarà possibile associare la build ai vari segmenti.
Occorre infine predisporre un metodo per associare ogni dispositivo ad un determinato segmento. Questo avviene all’interno del codice dell’applicazione valorizzando la proprietà app.device.userSegment. Si consiglia di farlo dopo aver identificato l’utente in modo da capire a quali segmenti appartiene. Dopo aver valorizzato questa proprietà, se l’applicazione necessita di essere aggiornata, questo avverrà immediatamente.
Config.xml #
Questa sezione contiene i dati che andranno a comporre il file config.xml del progetto Cordova utilizzato per compilare l’applicazione. I campi necessari sono i seguenti:
- Bundle: è l’id univoco dell’applicazione. Si consiglia di crearlo a partire dal nome della società e dell’applicazione usando una notazione DNS inversa. Ad esempio com.società.applicazione.
- Nome: è il nome con cui verrà mostrata l’applicazione una volta installata nei dispositivi.
- Versione: è la versione dell’applicazione.
- Dispositivo target iOS: indica il tipo di dispositivi per i quali l’applicazione sarà disponibile.
- Codice versione APK corrente: è la versione dell’applicazione nel Google Play Store. Può essere inizializzato a 1.
- Versione di SDK Android minima: la versione minima di Android che permette l’installazione dell’app. Può essere lasciato vuoto.
I dati delle sezioni Android ed iOS devono essere inseriti come indicati nelle pagine seguenti per poter procedere alla compilazione e all’invio ad app store.
Icone e Splash #
La sezione Icone e Splash contiene la lista di tutte le immagini che devono essere incluse nel pacchetto di installazione e che quindi sono necessarie alla pubblicazione. È possibile caricare le varie immagini una alla volta, oppure si può utilizzare la funzione di generazione automatica che parte da una sola copia dell’icona per derivare tutte le altre risorse.
Per iniziare la procedura di generazione immagini è sufficiente cliccare il pulsante Genera icone e splash.
Si aprirà un popup che permetterà di caricare l’icona dell’applicazione e lo splash screen in formato png. Facoltativamente, è possibile caricare anche le immagini specifiche per lo splash screen in modalità portrait e per quello in modalità landscape. A questo punto è possibile cliccare il pulsante Genera icone e splash per creare le immagini.
Se si dispone solo dell’immagine dell’icona e non di quella dello splash screen, è possibile indicare al sistema di generare in automatico lo splash screen a partire dall’icona.
In questo caso è necessario caricare solo l’immagine relativa all’icona, poi cliccare il pulsante Imposta Splash, impostare i parametri relativi ai colori e ai font e infine cliccare Genera icone e splash.
Plugin #
La sezione Plugin contiene l’elenco dei plugin nativi che possono essere inclusi nell’applicazione e per alcuni di essi permette di configurare le opzioni.
I plugin obbligatori per il funzionamento dell’applicazione vengono sempre inclusi e non sono elencati qui, ma possono essere trovati nella sezione App e pacchetti, cliccando sul link Plugin inclusi nella lista dei pacchetti.
Si consiglia di deselezionare tutti i plugin che non servono alle funzioni specifiche dell’applicazione per non dover incorrere in problemi di pubblicazione. Occorre tuttavia porre attenzione al fatto che alcuni plugin sono necessari per attivare alcune funzioni applicative: non includendo il plugin SQLite, ad esempio, l’applicazione non potrà scrivere dati nel database locale.
Per i dettagli relativi ai plugin vedi il capitolo: I plugin nativi.
Parametri runtime #
La sezione Parametri runtime permette di definire una serie di coppie nome-valore che il launcher riceve direttamente a runtime. L’applicazione può leggere il valore dei parametri tramite la funzione app.getParameter. Se un parametro cambia mentre l’app è in esecuzione, viene notificato l’evento app.onParameterChange. Occorre tenere presente che l’applicazione riceve il valore aggiornato dei parametri quando viene lanciata oppure quando esce dallo stato di background.
Si noti infine che i parametri di runtime vengono conservati in un file memorizzato nel dispositivo; non si consiglia quindi di usarli per salvare password senza prima criptarle. Si ricorda anche che il plugin TouchID permette di memorizzare informazioni in modo sicuro. Tali informazioni saranno reperibili solo dopo aver verificato la presenza del proprietario del dispositivo.