Autore Topic: Qt 5 per piattaforme mobili  (Letto 3281 volte)

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Qt 5 per piattaforme mobili
« il: 04 Febbraio 2014, 14:14:16 »
Apro questo thread per tenere traccia dei miei esperimenti con le versioni Android e iOS di Qt 5.2

Per la mia azienda ( www.t4project.com ) stavo valutando alcuni devkit multipiattaforma, che ci consentissero di sviluppare applicazioni su più piattaforme abbassando i costi (e quindi anche i prezzi). Ho valutato Titanium Appcelerator e mi viene da piangere (maledetto Javascript), poi ho valutato Xamarin che promette uno sviluppo multipiattaforma in C# ma anche lì mi è venuto da piangere perchè si tratta solo di un volgare wrapper che ti costringe comunque a scrivere N volte il codice delle View, uno per piattaforma.

Qt d'altro canto è già impiegato su BlackBerry 10, di cui ho apprezzato la pulizia ed efficacia dell'ambiente di sviluppo, e supporta in versione "beta" sia Android che iOS e dalla release 5.3 dovrebbe integrare anche il supporto per Windows RT/8 e Windows Phone.

Vi aggiornerò sui miei esperimenti :)

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Qt 5 per piattaforme mobili
« Risposta #1 il: 04 Febbraio 2014, 14:38:52 »
We... non ti scordare di Windows Phone, razzo ;D

Ho già sviluppato un'app per Windows Phone, ma sono pochi i clienti che ce lo richiedono. Con questo sistema, se funziona come promette, dovremmo poter coprire anche Windows Phone senza costi aggiuntivi (a parte quelli di testing e deploy), e quindi spingerli anche a supportare questa piattaforma :)

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Qt 5 per piattaforme mobili
« Risposta #2 il: 11 Febbraio 2014, 09:29:31 »
L'esperimento per accedere alla camera ha funzionato senza troppi problemi, a seguire tenterò di fargli leggere dei QR Code e interrogare un DB locale.

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Qt 5 per piattaforme mobili
« Risposta #3 il: 11 Febbraio 2014, 15:37:32 »
Sto notando che, ultimamente, stanno uscedo sia app che giochi degni della piattaforma. Finalmente hanno portato GTA: San Andreas ed altre app che iniziano a sfruttare la potenza di Windows Phone.

Sì, finalmente le software house stanno iniziando ad investirci seriamente :)

Citazione
Fermo restando che devo ancora trovare qualcosa che metta in crisi il 1520 ;D

Basta fare un'app con i piedi e qualsiasi processore si mette in ginocchio :D
L'hardware non può fare nulla contro algoritmi storti :D

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:Qt 5 per piattaforme mobili
« Risposta #4 il: 11 Febbraio 2014, 16:48:41 »
Mi spiace che la soluzione di Xamarin non sia adeguata. C# lo trovo veramente comodo per sviluppare su mobile.

Qt e C++ non mi attirano affatto.

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Qt 5 per piattaforme mobili
« Risposta #5 il: 11 Febbraio 2014, 16:56:57 »
Mi spiace che la soluzione di Xamarin non sia adeguata. C# lo trovo veramente comodo per sviluppare su mobile.
Infatti ci siamo rimasti male. Oltre al fatto che costa un botto, al danno la beffa!

Citazione
Qt e C++ non mi attirano affatto.

Ti capisco, ma nel mio caso parto avvantaggiato perchè sono cose che ho già studiato abbondantemente in passato, quindi mi ritrovo con il know-how già in tasca. Inoltre supporta le caratteristiche nuove di C++, che migliorano parecchio il linguaggio (ma che ancora devo approfondire).

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:Qt 5 per piattaforme mobili
« Risposta #6 il: 11 Febbraio 2014, 17:19:40 »
Inoltre supporta le caratteristiche nuove di C++, che migliorano parecchio il linguaggio (ma che ancora devo approfondire).

Appena possibile dagli un'occhiata: ci sono aggiunte veramente comodissime sia per creare funzionalità avanzate, sia per le piccole cose di tutti i giorni!

It's like a whole new language! ;D

L'unica cosa è che il compilatore C++ della Microsoft è assolutamente uno schifo (per dire poco, è quasi un complimento questo) nel supporto di C++11, in alcuni punti pure sbagliano la specifica (testato con mano).
Il compilatore che al momento supporta meglio C++11 è Clang, che addirittura implementa tutte le funzionalità WIP di C++14. Anche G++ non dovrebbe essere troppo lontano.

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Qt 5 per piattaforme mobili
« Risposta #7 il: 11 Febbraio 2014, 17:34:30 »
Per come è settato Qt Creator (ovviamente modificabile), ti offre di default Clang per compilare su iOS e GCC per Android.
I compilatori se li prende dai rispettivi SDK ufficiali, ma se uno volesse fare cose turche, potrebbe modificarli a suo piacimento.

Non so cosa useranno per il port Windows Phone previsto per la versione 5.3.
Qt di suo compila anche su MSVC, per cui immagino che terranno il compiler di Microsoft.

In tal caso, dovrò stare attento con il codice che esce fuori dalle specifiche del vecchio ISO C++, ma è una cosa che sono abituato a fare, avendo lavorato nei VG.

Offline fulvio

  • Tech
  • *****
  • Post: 68
  • Karma: +0/-0
    • Mostra profilo
Re:Qt 5 per piattaforme mobili
« Risposta #8 il: 13 Febbraio 2014, 11:07:25 »
Inoltre supporta le caratteristiche nuove di C++, che migliorano parecchio il linguaggio (ma che ancora devo approfondire).

Appena possibile dagli un'occhiata: ci sono aggiunte veramente comodissime sia per creare funzionalità avanzate, sia per le piccole cose di tutti i giorni!

It's like a whole new language! ;D

L'unica cosa è che il compilatore C++ della Microsoft è assolutamente uno schifo (per dire poco, è quasi un complimento questo) nel supporto di C++11, in alcuni punti pure sbagliano la specifica (testato con mano).
Il compilatore che al momento supporta meglio C++11 è Clang, che addirittura implementa tutte le funzionalità WIP di C++14. Anche G++ non dovrebbe essere troppo lontano.

Vero, ma lo stanno migliorando. Microsoft sta prendendo seriamente la questine standard C++, solo che partivano da un compilatore che non costruiva l'AST perchè è nato non so quanti anni fa e non ti potevi permettere certe cose per limiti di spazio e tempo. Con un altro paio di release dovrebbero stare quasi al passo.

GCC è pienamente conforme alle specifiche del linguaggio e supporta già molte feature C++14, ma la libreria standard non è ancora completa e in alcuni punti sbagliata (tipo std::string che non può più essere implementata con copy on write ma richiede una modifica che fa perdere la binary compatibility).

Ah, clang sta facendo passi avanti anche su windows implementando l'ABI del compilatore microsoft (il che vuol dire che non si dovrà ricompilare un tubo e si potranno usare le librerie C++ di microsoft)

Offline cdimauro

  • Human Debugger
  • *****
  • Post: 4291
  • Karma: +7/-95
    • Mostra profilo
Re:Qt 5 per piattaforme mobili
« Risposta #9 il: 13 Febbraio 2014, 12:04:58 »
Qt e C++ non mi attirano affatto.

Ti capisco, ma nel mio caso parto avvantaggiato perchè sono cose che ho già studiato abbondantemente in passato, quindi mi ritrovo con il know-how già in tasca. Inoltre supporta le caratteristiche nuove di C++, che migliorano parecchio il linguaggio (ma che ancora devo approfondire).
Sì, chiaro. Per me è una questione di gusti: C++ non è fra i miei linguaggi preferiti, anche se sono costretto a lavorarci spesso.

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:Qt 5 per piattaforme mobili
« Risposta #10 il: 13 Febbraio 2014, 17:52:07 »
Vero, ma lo stanno migliorando. Microsoft sta prendendo seriamente la questine standard C++, solo che partivano da un compilatore che non costruiva l'AST perchè è nato non so quanti anni fa e non ti potevi permettere certe cose per limiti di spazio e tempo. Con un altro paio di release dovrebbero stare quasi al passo.

Si, però non stiamo parlando della Tizio&Caio Compilatori, ma della Microsoft, che ha migliaia di programmatori. C++11 è si stato finalizzato nel 2011, ma ci lavoravano da 10 anni ormai e alcune cose erano decise da moltissimo tempo (per questo i compilatori open nel 2011 avevano già quasi tutto lo standard).

È strano vedere i video di GoingNative, evento sponsorizzato dalla Microsoft (bellissimi video, tantissime informazioni), sapendo che il loro compilatore ancora non supporta tante delle belle cose che vengono descritte. :(

In VS2013 han migliorato molto, ma son ancora indietro per altre cose; speriamo che con VS2014 chiudano questo capitolo.
Io sviluppo contemporaneamente su Clang/Linux e VC++/Windows, perchè così si catturano più errori, si rimane più fedeli allo standard etc., però mi da fastidio tante volte scrivere e far funzionare un modulo in Clang e poi doverlo "arretrare" perchè VS non supporta una qualche funzionalità banale.

Ah, clang sta facendo passi avanti anche su windows implementando l'ABI del compilatore microsoft (il che vuol dire che non si dovrà ricompilare un tubo e si potranno usare le librerie C++ di microsoft)

Già, e stanno anche lavorando per mettergli una modalità dove accetta gli stessi switch di linea di comando, in modo da essere un drop-in replacement.

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Qt 5 per piattaforme mobili
« Risposta #11 il: 14 Febbraio 2014, 17:36:27 »
Al momento gli esperimenti procedono con successo.
Dopo un po' di smadonnamenti per capire le differenze (non sostanziali, ma comunque importanti) tra Qt 4.8 e Qt 5.2 sono riuscito a sviluppare una semplice App che consente di scattare foto e recuperare dei tag dalla scansione di un QR Code presente in camera. Solo non riesco a settare l'Autofocus, credo sia ancora colpa dell'implementazione incompleta della classe QCamera su piattaforma Android.

Per chi fosse interessato, ho usato la libreria open source QZXing, che è un wrapper Qt/Qml sulla libreria ZXing (scritta in C++) che contiene gli algoritmi per decodificare QR Code e vari tipi di codice a barre.

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5292
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Qt 5 per piattaforme mobili
« Risposta #12 il: 14 Febbraio 2014, 17:58:31 »
Sembra proprio un bug dell'attuale versione di QtMobility: la funzione isFocusModeSupported restituisce "false" ma in realtà forzando il fuoco funziona. Come pensavo, è solo una limitazione di questa beta. Conoscendo il team di Qt sono certo che risolveranno presto, di solito sono molto bravi o almeno lo erano durante il periodo Nokia :)

Tags: