Installazione e test dell’SDK

L’SDK di Sailfish è formato da un ambiente di sviluppo (QtCreator) e da due macchine virtuali, una contiene il compilatore e le librerie necessarie per compilare le applicazioni e l’altra invece contiene Saiflish compilato per l’architettura x86 dove possiamo testare le nostre applicazioni durante lo sviluppo.

L’SDK è disponibile per Windows, Linux e MacOS X, è possibile scaricarlo da quì: https://sailfishos.org/develop/
Dopo aver installato l’SDK possiamo avviare QtCreator e lanciare le due macchine virtuali.

 

Testiamo l’SDK provando a compilare un’applicazione per Sailfish

Avviamo Qt Creator, poi clicchiamo su File -> New File or Project, poi selezioniamo come tipo di progetto “SailfishOS” e poi “SailfishOS Qt Quick Application”, diamo un nome al progetto e poi premiamo “Next”.

Nella finestra successiva Qt Creator ci chiederà per quali architetture vogliamo compilare la nostra applicazione, selezioniamo sia ARM (per il telefono) che x86 (per l’emulatore), clicchiamo “Next” e completiamo inserendo una versione ed una descrizione alla nostra applicazione, dopo premiamo “Next” e poi “Finish”.

Ora QtCreator dovrebbe aver creato un progetto di esempio col codice di base per far funzionare un’applicazione su Sailfish.

Ora dobbiamo avviare le due macchine virtuali:

  • Il pulsante evidenziato di rosso avvia la macchina virtuale che contiene le librerie ed il compilatore, non sarà visibile perchè viene gestita da QtCreator (tuttavia è possibile far apparire la finestra dalle opzioni di QtCreator)
  • Il pulsante evidenziato di verde avvia Sailfish per x86, questa è la macchina virtuale dove passeremo la maggior parte del tempo per testare le nostre applicazioni.

Dopo che le due macchine si sono avviate clicchiamo sul pulsante dove c’è il logo di Sailfish e selezioniamo il Kit x86, configurazione Debug e facciamo scaricare su macchina virtuale i file senza generare un pacchetto RPM:

Poi premiamo Build -> Build All per compilare la nostra applicazione e poi Build -> Run per eseguirla sull’emulatore.

Ed ecco la nostra prima app girare sull’emulatore 🙂

Configurazione del progetto

  • La configurazione x86 serve per testare le nostre app sull’emulatore, invece quella ARM è per eseguirle sul nostro smartphone
  • Durante il testing è sempre bene tenere la compilazione settata su Debug, passare a Release prima di distribuirla sullo store
  • La configurazione: “Deploy by Copying Binaries” non genera un pacchetto RPM, ma copia semplicemente i file compilati dentro il device, invece l’altra genera un RPM con tutti i nostri file compilati, file di configurazione o altro, questa è la configurazione da usare per distribuire la nostra app.

 

Test dell’applicazione sul Jolla

Molto spesso il test sull’emulatore non è affidabile (la risposta dell’applicazione sul Jolla, è diversa), oppure non può essere fatto (per esempio quando si deve eseguire un video, oppure per vedere come si comporta l’applicazione in modalità Landscape).
E’ possibile generare un pacchetto dell’applicazione ed inviarlo sul nostro dispositivo direttamente da Qt Creator, vediamo come:

1) Attiviamo la connessione Wifi sul nostro Jolla, attiviamo la Developer Mode, settiamo una password e prendiamo nota dell’indirizzo IP.

2) Su QtCreator inseriamo un nuovo dispositivo: andiamo su Tools -> Options, selezioniamo “Devices”, poi premiamo “Add” e selezioniamo il tipo di dispositivo da aggiungere, nel nostro caso sarà “Mer ARM Device”, poi premiamo “Start Wizard” per iniziare la configurazione.

3) Diamo un nome al nostro dispositivo, l’indirizzo IP è quello che vediamo nella pagina della Modalità Sviluppatore, tutto il resto si può lasciare così com’è.

4) Nella pagina successiva, il Wizard ci chiederà la password che abbiamo settato nel telefono quando abbiamo attivato al Developer Mode, inseriamola e poi possiamo effettuare il test della connessione.

5) Se il test ha avuto successo, vi verrà mostrata una schermata simile a questa:

Se invece, il test è fallito verifichiamo che il Jolla sia in Modalità Sviluppatore, che l’indirizzo IP sia corretto e che sia il pc che il Jolla siano nella stessa rete, seinvece il test è riuscito possiamo completare il Wizard e poi selezioniamo il dispositivo appena creato: ora siamo pronti a fare il deploy della nostra applicazione sul telefono 🙂

6) Cambiamo la configurazione del progetto, settiamolo come “ARM”, “Release” e “Deploy as RPM Package”:

Poi andiamo su Build -> Deploy All, QtCreator compilerà ed installerà l’applicazione per noi.

Ed ecco l’applicazione eseguita sul Jolla 😀

IMPORTANTE: Il Jolla disattiva la connessione Wireless quando lo schermo è spento, quindi è bene tenere il telefono attivo durante il Deploy.

NOTA 1: Premendo “Run” con la configurazione per il Deploy, QtCreator compilerà, installerà ed eseguirà la nostra applicazione sul telefono, inoltre, possiamo vedere i messaggi di debug dell’applicazione sull’ambiente di sviluppo.

NOTA 2: L’indirizzo IP salvato su QtCreator andrà aggiornato ogni volta che la Modalità Sviluppatore viene riattivata, o il telefono viene riavviato, per farlo è sufficiente andare in Tools -> Options, poi “Device” e modificare il campo “Host Name” con il nuovo indirizzo.

Standardizzare la nostra app per caricarla sullo store

Quando un’app viene inviata sullo store, viene esaminata da Jolla dove verificano la bontà delle dipendenze, consumo di batteria e performance, se l’app non rispetta questi requisiti viene respinta e sarà compito dello sviluppatore effettuare le dovute modifiche e reinviare l’applicazione per una nuova analisi.

Per quanto riguarda Qml, i moduli ammessi sono i seguenti: https://github.com/sailfish-sdk/sdk-harbour-rpmvalidator/blob/1.21/allowed_qmlimports.conf

Invece, per quanto riguarda le librerie esterne, sono ammesse queste: https://github.com/sailfish-sdk/sdk-harbour-rpmvalidator/blob/1.21/allowed_libraries.conf

L’applicazione deve essere nel formato “harbour-miaapplicazione”, questo è stato fatto per evitare collisioni con eventuali applicazioni di sistema che possono avere lo stesso nome.

E’ possibile consultare tutti i dettagli quì: https://harbour.jolla.com/faq

Flattr this!