Home Forum Sviluppo SDK Iniziare a programmare su SailfishOS

Questo argomento contiene 12 risposte, ha 6 partecipanti, ed è stato aggiornato da  Mattia 1 anno fa.

Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)
  • Autore
    Articoli
  • #4065

    Dax
    Moderatore
    • 3 discussioni
    • 132 risposte

    Edit 17/03/15:
    Ho spostato la guida quì: http://jollacommunity.it/programmazione-su-sailfishos/.
    Non è ancora completa: ho aggiunto qualche contenuto in più ed ho sistemato quelli già esistenti.

     

    Lo scopo di questa guida è di introdurre lo sviluppo di applicazioni su SailfishOS e l’utilizzo degli strumenti offerti dall’SDK.

    Architettura di Sailfish

    Sailfish utilizza come linguaggio di programmazione principale il C++, tuttavia quest’ultimo può essere sostituito dal Javascript (più avanti vedremo nel dettaglio quando e come).

    L’interfaccia grafica di Sailfish è scritta interamente utilizzando le librerie Qt, una libreria grafica che offre molteplici funzionalità, dalla gestione dell’interfaccia grafica, dei file, della rete e molto altro ancora.
    Nel nostro caso ci interessa una particolare libreria offerta dalle Qt, chiamata QtQuick e del suo linguaggio di markup chiamato Qml.

    Come ho detto prima, l’uso del C++ non è sempre necessario: Qml viene utilizzato per costruire l’interfaccia della nostra applicazione.
    La logica, invece, viene implementata in Javascript o C++, se non ci sono richieste particolari (performance o l’interfacciamento di qualche libreria esterna) il Javascript è più che sufficiente.

    Il Software Development Kit (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.

    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

    Silica

    Silica è la libreria grafica usata da Sailfish, è costruita sopra QtQuick.
    Con questa libreria non sarà necessario adattare le nostre applicazioni al tema utilizzato, perchè sarà fatto tutto in automatico.

    La documentazione Silica (e delle Qt) viene installata con l’SDK: è sufficiente premere il pulsante Help di QtCreator.

    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.

    • Questo argomento è stato modificato 2 anni, 7 mesi fa da  Dax.
    • Questo argomento è stato modificato 2 anni, 7 mesi fa da  Dax.
    • Questo argomento è stato modificato 2 anni, 7 mesi fa da  Dax.
    • Questo argomento è stato modificato 2 anni, 7 mesi fa da  Dax.
    • Questo argomento è stato modificato 2 anni, 6 mesi fa da  Dax.
    #4077

    davide
    Partecipante
    • 19 discussioni
    • 167 risposte
    Karma: 841.00 karma

    Iniziamo la colletta per la creazione della statua in onore di Dax? XD

     

     

    #4079

    Dax
    Moderatore
    • 3 discussioni
    • 132 risposte

    Ma lol xD

    #4114

    Nicolò
    Membro
    • 0 discussioni
    • 59 risposte

    WoW! Complimenti e grazie per il prezioso contributo!
    tieniti sintonizzato …perchè a breve organizzeremo il nostro primo evento per gli sviluppatori 😉
    e non mancheranno premi davvero:  INTERESSANTI!!!!!

    #4141

    Dax
    Moderatore
    • 3 discussioni
    • 132 risposte

    Ho aggiunto la parte che riguarda il test dell’applicazione sul telefono! 🙂

    #4283

    Nicolò
    Membro
    • 0 discussioni
    • 59 risposte

    Sto organizzando una iniziativa dedicata a tutti coloro che saranno in grado di realizzare applicazioni per il nostro Jolla.

    Per ricevere informazioni, bisogna compilare questo webform .

    ….e per ricevere i premi, bisognerà realizzare una app 😉

    Cooming soon!!

     

    Allegati:
    You must be logged in to view attached files.
    #4527

    Dax
    Moderatore
    • 3 discussioni
    • 132 risposte

    Ho spostato i contenuti al seguente link: http://jollacommunity.it/programmazione-su-sailfishos/ 🙂

    Ho aggiunto un nuovo capitolo, nei prossimi giorni ne aggiungerò degli altri ed organizzerò quelli già esistenti.

    #7750

    Mattia
    Partecipante
    • 5 discussioni
    • 34 risposte
    Karma: 327.00 karma

    Buongiorno,

    riprendo questa discussione per chiedervi se è possibile usare python come linguaggio di programmazione per SailFish. Sono un impiegato amministrativo con la passione della programmazione, ma conosco in maniera sufficiente solo python e quindi se dovessi crearmi qualche script o programmino non mi perderei iniziando a studiarmi anche C++…

    Avevo letto qualcosa a riguardo, ma non riesco più a trovarlo!

    Grazie!

    #7755

    Paolo M.
    Partecipante
    • 15 discussioni
    • 236 risposte
    Karma: 1 440.00 karma
    #7817

    Andrea
    Partecipante
    • 5 discussioni
    • 21 risposte
    Karma: 1 081.00 karma

    si certo…. lo sto giusta ora “studiando” come fare.. per ora sto facendo applicazioni python stupide, ma funzionano bene 🙂

    #7818

    Andrea
    Partecipante
    • 5 discussioni
    • 21 risposte
    Karma: 1 081.00 karma

    puoi farli sia grafici che a riga di comando… certo il primo modo richiede piu studio e fatica, ma si fa!

    #7823

    Andrea
    Partecipante
    • 5 discussioni
    • 21 risposte
    Karma: 1 081.00 karma

    Approposito di python su jolla, sto srcivendo per me  o meglio riordinando, gli appouinti che ho preso dirante la stesura del primo programmino in python, sotto forma di modesta guida, se puo far piace ed essere un pò utile, sarei più che lieto di cedervela e pubblicarla sul sito, in caso che altri ne abbiano bisogno devo ancora un pò sistemarla ma più o meno ci siamo).

    ciao da andrea

    #8560

    Mattia
    Partecipante
    • 5 discussioni
    • 34 risposte
    Karma: 327.00 karma
    7823 wrote:

    Approposito di python su jolla, sto srcivendo per me o meglio riordinando, gli appouinti che ho preso dirante la stesura del primo programmino in python, sotto forma di modesta guida, se puo far piace ed essere un pò utile, sarei più che lieto di cedervela e pubblicarla sul sito, in caso che altri ne abbiano bisogno devo ancora un pò sistemarla ma più o meno ci siamo). ciao da andrea

    Ciao!

    Hai pubblicato gli appunti? Io sarei interessato, grazie!

Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)

Devi essere loggato per rispondere a questa discussione.