Newsgroup: it.lavoro.informatica
Titolo: Qt e Android

Salve a tutti.
 
Da alcuni anni in azienda sviluppiamo software utilizzando fra le altre 
cose, anche le librerie Qt.
Ho potuto verificarne il loro uso abbastanza agevole per la creazione di 
interfacce utente ed anche per la gestione dei thread, dello scambio 
dati su ethernet, dell'ottimo meccanismo di signal and slot ecc..
 
Volevo perï¿œ anche dilettarmi sulla programmazione su piattaforma 
Android, ma sono sempre stato bloccato dal fatto che non volevo perderci 
troppo tempo a casa per stare a rompermi la testa su un altro tipo di 
ambiente di sviluppo (Eclipse + Java + SDK di android).
 
Da qualche tempo seguivo con interesse il fatto che ci fosse un gruppo 
di programmatori che stavano sviluppando un tool open source, una 
libreria, per fare un porting delle librerie Qt su Android e mi hanno 
suggerito di dare un'occhiata al progetto Necessitas su Sourceforge.
 
Adesso, ulteriore colpo di scena, la Nokia ha passato la mano per quanto 
riguarda lo sviluppo delle Qt, a un'altra societa' finlandese, mi pare, 
la Digia.
 
Questa societa' ha assoldato il team di sviluppo della Necessitas per 
avere la prossima imminente release delle Qt, che ci sara' a primavera 
(versione 5.2 mi pare), dove finalmente ci sara' il porting delle Qt su 
piattaforma Android e Windows (e si parla anche su Iphone e similari!)
 
Qualcuno qui si ï¿œ interessato a questo argomento e sta gia' sviluppando 
su Android qualche app?
 
Maurus

 suggerito di dare un'occhiata al progetto Necessitas su Sourceforge.
 
Cui prodest?
Anch'io all'epoca stavo valutando la cosa, perche' gia' conoscevo Qt.
Non avevo trovato un porting abbastanza maturo mi sono buttato
direttamente sull'SDK di android, e ti diro' e' stato meglio: I
cellulari/tablet non hanno grossa potenza di calcolo, e portare
librerie Qt diventa pesante. Oltre al tempo per configurarle, etc etc
 

 tutto qui. 
 
Ben fatto? Forse tre anni fa era migliore, oggi e' una cosa indegna per una
azienda come google.
Ci mette una vita a partire (anche da snapshot), a meno di non avere un
datacenter intero per farlo girare, ed anche quando e' partito c'e' un lag
di almeno mezzo secondo su qualsiasi animazione. E non parlo di animazioni
opengl, anche solo una scritta che cambia!!
 
In pratica l'emulatore lo uso per vedere il rendering statico delle pagine
sulle varie risoluzioni, le prove serie vengono fatte solo sul device.
Sotto questo punto di vista, xcode+ios sono anni luce avanti.

 piattaforma Android e Windows (e si parla anche su Iphone e similari!)
 
Se devi fare app private (ie da installare su pochi client aziendali, ad
esempio) ci potrebbe anche stare, anche se lo sconsiglio. 
Per app pubbliche, da mandare sul market, penso sia una scelta quasi
suicida.
 
Io consiglio di scaricare eclipse e la sdk e di provarla un po. 
Se proprio non ti piace, prima di tornare alle qt, puoi prova anche flex.

 device. Sotto questo punto di vista, xcode+ios sono anni luce avanti.
 
sotto questo punto di vista può darsi. sotto un altro punto di vista, 
visto che senza la developer licence non hai alternative, non mi pare 
così avanti.


Sì, a obbligarti ad accettare condizioni folli e a fornire la carta di 
credito solo per vedere xcode che parte ...
Per fortuna stanno per sparire anche loro dal mercato, io personalmente 
non vedo l'ora
 
-- 
I fatti mi cosano

 Maurus
 
Io sviluppo su android (fra le altre cose)
Di eventuali porting di Qt onestamente non ne so molto, ma fra i vari 
"cloni" (ossia palmari con linux+qualcheFormaDiRuntime) che stanno per 
uscire c'è sailfish, basato proprio sulle Qt
Sperando che non facciano la fine di maemo meego e compagnia cantante
Col fatto che Android sta diventando monopolista del mercato si sente il 
bisogno di qualche competitor.
Google è molto più developer friendly, ma non è che siano quei campioni 
dell'open source che potrebbero sembrare
 
M


 non vedo l'ora
 
Curiosità: perche' dici che stanno per sparire?


http://en.wikipedia.org/wiki/Mobile_operating_system
 
Guarda i grafici sintetici verso il fondo della pagina
In particolare
http://en.wikipedia.org/wiki/File:World_Wide_Smartphone_Sales.png
 
 
Questo grafico ti dice che non solo android è in percentuale il primo 
competitor, ma che ah di fatto creato (espanso) un mercato, trainando 
anche gli altri
 
Non dicono tutto, ma fanno capire un trend
Apple con l'iPhone ha avuto il merito di essere partita molto prima, ma 
il loro modello di business ormai non attira più o quantomeno non come prima
 
Ripeto però che stare con un monopolista è sempre sgradevole. Spero 
proprio che nel solco di Android arrivino davvero i vari sailfish e 
compagnia cantante a erodergli quote
M


 su Android qualche app?
 
premetto che non mi sono mai inoltrato nello sviluppo nativo android, a 
mio giudizio una volta digerito il modello java non vale la pena 
prescindere da questo a meno di esigenze specifiche e particolari. va 
ricordato che la compilazione nativa è specifica per l'architettura e che 
quindi l'eventuale distribuzione/supporto sul play store diventa non 
banale.
 

 Per fortuna stanno per sparire anche loro dal mercato, io personalmente non vedo l'ora
 
Non ci scommetterei troppo e soprattutto non sarebbe una notizia troppo
positiva.
 
Non so quanto ci hai lavorato ma la monetizzazione ed il roi su android
sono molto piu' difficili rispetto ad ios (a parita' di app). E parlo di
ritorni di oltre 4-5 volte inferiori, nonostante il numero potenziale di
device teoricamente superiori.

 così avanti.
 
Parlavo del simulatore, che puoi usare anche senza developer license.
 
Sul fatto che non puoi provare sul device senza la licenza e' indubbiamente
una cosa ridicola.

 competitor, ma che ah di fatto creato (espanso) un mercato, trainando anche gli altri
 
Secondo questo ragionamento, se guardiamo i grafici di share di mercedes e
volkswagen, dovremmo intuire che la mercedes sta per sparire?
 
La realta' e' che apple fa solo un modello, android lo trovi su terminali
da 100e fino a 700e fatti da oltre 6 produttori: confrontare la share di
mercato e' assurdo.


Mettiamola così:
Tu devi aprire una fabbrica che crea pezzi di ricambio
Premesso che non puoi fare pezzi di ricambio per ogni marca, preferisci 
fare ricambi per VolksWagen, per Fiat o per AstonMartin?
La risposta ovviamente varia da persona a persona in base ai calcoli che 
ti fai
 
Inoltre il tuo esempio calza poco perché Mercedes ha una storia e un 
blasone e fa delle macchine di indubbia qualità anche se troppo costose
Apple non ha assolutamente una storia comparabile.
Ha avuto per qualche anno una persona alla guida che aveva una visione 
molto chiara e delle indubbie capacità.
Dopo di lui il nulla (pare)
Rimane un device tecnicamente un passo indietro rispetto agli altri e 
con un costo molto elevato. Gli mancano NFC e USB Host tanto per dirne 
due e sui device di alta fascia anche Android ormai ha schermi come il 
retina se non perfino meglio (anche se a quel punto le cifre sono 
comparabili)
Senza il quid fornito dalla cura di Jobs per i dettagli il mercato gli 
sta già dando la sveglia
Sono crollati sia in percentuale in un mercato dove erano leader e in 
assoluto crescono poco
 
Ti dico questo inoltre: Io con Android sto sviluppando un bel po' di 
roba e ai miei clienti di avere porting su iOS per il momento non 
interessa proprio
Solo un anno fa sarebbe stato impensabile
 
Confrontare le share di mercato non è assurdo, specie guardando le cifre 
assolute. La domanda cui devi dare risposta di solito è: quanti utenti 
raggiungo con questa applicazione?
Se fosse assurdo confrontare gli share dovresti fare app anche per 
windows mobile o blackberry.
Ormai il mercato per quel poco che vedo inizia a puntare su html5 per i 
device poco diffusi e roba nativa solo per gli altri
 
Rettifico anche una mia affermazione di prima. Io non spero che sparisca 
Apple, spero che sparisca quel modo di fare business, peggiore perfino 
di quello di Microsoft
 
Poi che il produttore si chiami Apple, Pineapple, Chestnut ... mi cambia 
poco


 windows mobile o blackberry.
 
Blackberry due anni fa, per utenza business, era quasi un must. Ora e' in
calo e non sarebbe un buon investimento.
W8 lo guardo con interesse ma per ora ha volumi bassissimi.

 Parlavo del simulatore, che puoi usare anche senza developer license.
 
l'ho capito. infatti io ti stavo dicendo che senza la developer licence 
non hai alternativa a sviluppare con l'emulatore, e da questo punto di 
vista non mi sembrano così avanti.

 android, nonostante ci siano meno terminali.
 
veramente non risulterebbe:
http://goo.gl/gZI5t
 
 

 
http://goo.gl/gZI5t
 
 
http://www.netmarketshare.com/operating-system-market-share.aspx?qprid=8&qpcustomd=1
 
 
Ipotizzando che nel secondo link non vengano conteggiati i browser con
"desktop mode" attivo su android, c'e' comunque una bella differenza
rispetto alla share dei volumi di vendita.


Sì, questo è innegabile e credo sia perché una buona parte dei device 
android ha processori del menga e risoluzioni patetiche, sostanzialmente 
sono patacche.
Ovviamente il browsing in quelle condizioni non invoglia
Oltre a quello c'è la questione dei piani dati che con gli iPhone credo 
siano sempre previsti, mentre con Android dipende da come si regola uno 
col proprio gestore
Cmq è effettivamente l'unico dato che proprio non riesco bene ad inquadrare
 
Una cosa riguardo le app: la mia esperienza personale riguarda app 
verticali per le quali non è previsto pagamento da parte degli utenti, 
sono strumenti o di promozione o di lavoro
Riguardo le app a pagamento sono molto scettico. Ne sto facendo una mia 
che probabilmente rilascerò nella solita accoppiata free/pro a 
pagamento, ma ci sto ancora pensando. Pur essendo una cosa estremamente 
di nicchia e orientata a un pubblico che sarebbe probabilmente disposto 
a pagare se l'app è fatta bene credo che da quella parte soldi non ne 
arrivino
 
Probabilmente sono redditizie quelle poche app generaliste che vanno a 
beccare per prime un posticino libero, ma credo che siano più 
un'eccezione che una regola
 
L'arrivo di nuove piattaforme come ubuntu e/o sailfish credo scombinerà 
poco le cose da questo punto di vista, ci sarà solo più lavoro per chi 
come me le app le crea per i clienti finali (almeno ci spero :D )
M


 intendo anche solo un quadrato che si muove...
 
concordo ho usato sia xcode che androidsdk come emulatore quello di 
apple e' di gran lunga superiore in termini di performance.

 Maurus
 
Io con Necessitas in beta ho ricompilato un'applicazione che ho scritto
con il framework Qt (per Win, Linux e Macosx) e sono stato in grado di
vederla girare nell'emulatore dell'SDK di Android (lentissimo).
Per Android Esiste "Ministro" che e' un pacchetto che installa le Qt.
 
Per ora comunque e' tutto abbastanza instabile, buggoso (sia nelle
qt stesse che nell'ambiente qtcreator) e incollato
con il nastro adesivo. Vedremo cosa faranno alla Digia, sperando
che facciano un buon lavoro e che rilascino le future versioni, anche
quelle non commerciali, usabili e non artificiosamente tenute indietro
per "invogliare" a pagare le versioni commerciali.
 
(Poi c'e' la questione QtQuick VS QTWidget, e anche qui spero che
mantengano la dualita' alla pari senza forzarti ad usare QTQuick per
forza)
 
Per ora comunque guardo con interesse ma il porting l'ho rimandato. ;-)
Ciao
 


scusate, eh... non per farmi i fatti vostri, ma siccome anch'io la prima 
volta che provai lo vidi paurosamente lento, non è che vi è sfuggito un 
po' di documentazione?
http://goo.gl/n4Jw3
 
per dirti, io sviluppo su linux + kvm ed è stato sufficiente impostare la 
cpu dell'emulatore come x86 e abilitare la gpu per avere delle 
performance paragonabili ad un device fisico di tutto rispetto. 

 performance paragonabili ad un device fisico di tutto rispetto
Quello e' abilitato.
Io l'ho provato sotto window e rispetto all'emulatore di xcode lo trovo 
lento.


mi riferivo allo scenario che aveva descritto flowers, dove era evidente 
l'assenza dell'accelerazione sia grafica che della vm.
poi visto che con ogni probabilità li farai girare su hw diversi sarà 
normale trovare delle differenti prestazioni. io ad esempio ho un imac 
intel core duo e un portatile linux core i5, la sensazione è ovviamente 
inversa.
 

 inversa.
 
 
Si certo ma  l'hardware dove ho fatto  girare l'emulatore android  e' 
superiore a quello del macbook air (penultima serie) dove ho fatto 
girare l'xcode. Del resto anche i sistemi operativi sono diversi.


va beh, per uscire da questa discussione vacua sul confronto che 
evidentemente è una questione di percezione soggettiva: sto dicendo è 
oggettivo che se l'emulatore si fa girare nella modalità corretta non è 
assolutamente inusabile come descritto.