Informazione preliminatre
-
Ciao a tutti, prima di iniziare ad utilizzare Qt volevo chiedere delle delucidazioni sull’ambiente di sviluppo, in modo da capire se è veramente l’ambiente che fa per me.
L’esigenza è la seguente:
Al momento abbiamo un software scritto in c# che si interfaccia con un apparato attraverso USB o bluetooth; tra le varie funzioni che ha si interfaccia con un web service.
Abbiamo anche una app android e una iOS che si interfaccia con lo stesso apparato attraverso bluetooth.
Mi piacerebbe scrivere un unico codice sorgente e poter poi compilare e distribuire su tutte e 3 le piattaforme.
E’ una cosa fattibile con Qt?Ringrazio anticipatamente.
-
Ciao e benvenuto tu devnet,
cerchero' di risponderti punto per punto
Al momento abbiamo un software scritto in c# che si interfaccia con un apparato attraverso USB o bluetooth; tra le varie funzioni che ha si interfaccia con un web service.
Qt offre il supporto al Bluetooth tramite apposito modulo. Per quanto riguarda i webservices dipende dal protocollo (SOAP, REST, XML-RPC, JSON-RPC...).
In caso di RESTful basato puoi facilmente usare la classe QNetworkAccessManager per poi interpretare il payload (JSON, XML, ...)
Nel caso di SOAP o altri protocolli trovi facilmente su internet librerie di terze parti che offrono tali servizi per Qt.Abbiamo anche una app android e una iOS che si interfaccia con lo stesso apparato attraverso bluetooth.
Da quello che leggo il modulo Bluetooth non e' supportato da iOS ma, essendo le API di iOS scritte in Objective-C, e' facile integrare le API native in un'applicazione Qt (trovi esempi nel modulo Mac Extras
Mi piacerebbe scrivere un unico codice sorgente e poter poi compilare e distribuire su tutte e 3 le piattaforme.
Pienamente fattibile o almeno puoi scrivere il 95% del codice cross-platform e per poi integrare API native se necessario (C/C++ per Android con NDK o Objective-C per iOS).
Tieni presente che per sviluppare applicazioni per iOS devi usare un ambiente Mac.NOTA: Tieni presente che la mia azienda realizza un'applicazione che gira su Linux, Mac e Windows con la maggior parte del sorgente in comune ed un'altra che gira su Windows, Mac e Android
-
Ciao, grazie mille della risposta.
Quello che non riesco a capire, è come è possibile avere un solo codice che gestisce interfacce windows desktop e interfacce Android e iOS che sono completamente differenti tra di loro anche solo per le dimensioni
Grazie
-
Ciao,
dipende dall'interfaccia e dalla sua complessita'.
In generale puoi adattare le dimensioni e il posizionamento degli elementi in maniera dinamica.Ovviamente per interfacce molto complesse ti consiglierei di utilizzare moduli diversi a seconda della risoluzione dello schermo. (Ad esempio su schermi desktop puoi mostrare piu' informazioni sulla stessa pagina mentre sui dispositivi mobili puoi organizzare le pagine in maniera gerarchica)
Tieni presente che i dispositivi mobili spesso hanno anche limitazioni in termini di risorse e funzionalita' per cui e' molto probabile che tu debba/voglia avere alcune parti del codice specifiche per ogni piattaforma