Il framework Qt e Qt/C++ SDK. Quello che nessuno si aspetterebbe di trovare in un tool di sviluppo software.

01/06/2018 2235

Sono ormai tanti i colleghi e amici che con il loro contributo ci aiutano a farci conoscere "rami e applicazioni" dell'ingegneria" ai più sconosciuti.

L'ing. Agata Fucile ha raccolto il Nostro invito e collaborerà (come finora sempre fatto in modo egregio dall'Ing. Francesco Pagano) l'Ordine degli Ingegneri di Messina a variegare le tematiche professionali da approfondire e studiare.

Buona lettura ...

La crescita continua del mercato dello sviluppo software porterà ad un era piena di sfide in cui le software house e le aziende ICT dovranno stare al passo con i tempi per non correre il rischio di trovarsi tagliate fuori dal mercato. Non solo le applicazioni software devono necessariamente essere funzionali e facili da utilizzare, ma devono sembrare professionali agli utenti che le utilizzano ed, allo stesso tempo, avere un aspetto accattivante. Per poter ottenere un vantaggio competitivo rispetto ad altri prodotti software sul mercato, l'aspetto grafico, o come si dice comunemente il “look and feel”, del prodotto è di estrema importanza e dovrebbe essere curato sin dall'inizio della fase di progettazione.

In questo scenario è di fondamentale importanza scegliere un ambiente di sviluppo altamente versatile che permetta di creare applicazioni software funzionali, dal “look and feel” accattivante e user-friendly. Ecco perché proponiamo Qt.

Cosa è Qt?

Il framework Qt (si pronuncia “cute”) è un ambiente di sviluppo conosciuto soprattutto come un toolkit cross-platform per lo sviluppo di interfacce utente (GUI, Graphic User Interface), ma è molto di più. Con Qt è possibile sviluppare, oltre alle GUI, anche database, filesystem, applicazioni per il networking e molto altro, indipendentemente dalla piattaforma per cui l’applicazione viene sviluppata. Insomma, è adatto allo sviluppo di applicazioni sia di frontend, facilitando lo sviluppo di GUI attraverso elementi grafici (Widget), che di backend, mettendo a disposizione una varietà di librerie e classi per la grafica 2D e 3D, la gestione dei thread, lo sviluppo di applicazioni per sistemi embedded e, più recentemente, applicazioni specifiche per l’automotive e per l’industria 4.0 (sistemi SCADA, OPC-UA, ecc..).

Qt è un ambiente di sviluppo cross-platform? Decisamente si. E' possibile sviluppare applicazioni sia per sistemi operativi desktop, Windows, Linux, Mac-os, che per sistemi operativi mobile, Android e iOS. Questo permette di utilizzare un solo ambiente di sviluppo per tutte le versioni di un applicazione e di ridurre così i tempi di sviluppo .

Qt fornisce un framework C++ completo ed altamente produttivo con un insieme di librerie cross-platform e tool che permettono un time-to-market sicuramente più veloce.

Ridurre tempi di sviluppo ed avere quindi un time-to-market più breve permette alle aziende di vincere la sfida con i concorrenti contenendo i costi del prodotto.

Qt permette di sviluppare applicazioni stabili che durino nel tempo anche quando le specifiche o i requisiti dell'applicazione cambiano. Questo perché Qt è un framework C++ open, modulare e facilmente estensibile. Il motto di Qt è:

“Code less, create more, deploy everywhere”

Che vuol dire: scrivi il tuo codice una volta, compila ed esegui in ogni sistema operativo e in ogni tipo di hardware.

Una delle caratteristiche che rendono Qt differente dagli altri framework è la possibilità di definire un semplice ma molto efficace paradigma di programmazione conosciuto come “signals and slots” che permette la gestione degli eventi di qualsiasi tipo in modo concorrenziale o event-driven (un segnale, generato da un evento, causa l’esecuzione di uno slot che è una semplice funzione). Qt ha molte altre caratteristiche che lo rendono differente dagli altri ambienti di sviluppo e che spingono i progettisti software a sceglierlo per sfruttare gli innumerevoli vantaggi.

Come nasce Qt?

Tutto ebbe inizio da una conversazione: una semplice e franca conversazione tra due amici, Haavard Nord e Eirik Chambe-Eng, seduti su un prato durante una delle rare giornate di sole in Norvegia, nell'estate del 1990. Il problema da risolvere era creare una interfaccia utente per una macchina ad ultrasuoni. L’esigenza era creare una unica applicazione che potesse essere eseguita in differenti piattaforme. Havaard disse: “Abbiamo bisogno di un sistema di visualizzazione che sia Object-Oriented”. La discussione che ne è scaturita ha gettato le basi per lo sviluppo di un framework multipiattaforma Object-Oriented che presto avrebbero realizzato.

Negli anni successivi molte sono state le tappe ed i successi di Qt: la prima versione del framework Qt fu disponibile nel 1995, dopo anni di sviluppo in cui Haarvard ed Eirik lavorarono senza possibili clienti o previsioni di guadagni. Nel 1995 iniziò la collaborazione con Arnt Gulbrandsen, che lavorava alla Trolltech, che durò per dieci anni. Nel 1996 l’Agenzia Spaziale Europea divenne il secondo cliente di Qt e l’anno successivo Matthias Ettrich decise di utilizzare Qt per sviluppare KDE (K Desktop Environment), diventando lo standard per lo sviluppo di GUI (Graphic User Interfaces) per

qt.png

il sistema operativo Linux. Ad oggi Qt è parte integrante di tutte le distribuzioni Linux

Nel 2005 fu realizzata la versione Qt 4.0 e la Trolltech, di cui Haarvard ed Eirik erano diventati parte integrante, iniziò ad avere clienti anche in Cina. Nel 2008 Nokia acquistò la Trolltech e per anni Qt diventò il framework per lo sviluppo del sistema operativo dei cellulari Nokia.

Oggi Qt è conosciuto in tutta Europa e negli USA, è diventata una azienda presente in 12 paesi tra cui Cina, Finlandia, Germania, Jappone, Russia, Francia, Inghilterra, Italia ed ha circa 300 dipendenti.

 

Casi di successo

Dopo più di vent’anni di successi allo stato attuale molte grosse aziende hanno scelto il framework Qt per sviluppare i loro prodotti. Per esempio, l’interfaccia grafica di Sky, Q-Sky Home Entertainment System, è sviluppata in Qt. Anche LG ha scelto Qt per lo sviluppo dell’interfaccia grafica degli Smart TV, così come Panasonic Avionics, azienda leader mondiale in Inflight Entertainment, ha scelto di sviluppare i sistemi si intrattenimento utilizzati negli aerei che fanno voli a lunga percorrenza da loro prodotti utilizzando Qt.

Questi sono solo pochi dei casi di successo. Il più recente è l’accordo con la BMW e la Mercedes per l’utilizzo di Qt nello sviluppo di sistemi automotive per i nuovi modelli di automobili.

Perché scegliere Qt per lo sviluppo di applicazioni Desktop o mobile?

I casi di successo proposti sono solo alcuni degli esempi in cui la scelta di Qt per la progettazione di applicazioni è stata una scelta vincente. Il principale motivo per cui grandi compagnie stanno scegliendo questo framework è il vantaggio in termini di time-to-market, poiché Qt permette di ridurre i tempi di sviluppo del software essenzialmente in due modi:

         Qt è intuitivo, ha un’interfaccia grafica molto semplice e tutte le classi, librerie e API (Application Programming Interface) sono ben documentate.

         Qt permette di sviluppare con un unico ambiente di sviluppo applicazioni multi-piattaforma sia per applicazioni Desktop (Windows, Linux e Mac-OS) che mobile (Android e iOS).

Certamente l’obiettivo che i due creatori di Qt si erano prefissati è stato ampiamente raggiunto: rendere la vita degli sviluppatori software più facile!

Ing. Agata Fucile