Gianni Valdambrini. Everywhere



Documenti analoghi
C++ E QT, BINOMIO PERFETTO

INTRODUZIONE AL FRAMEWORK QT

Come valutare e scegliere un Sistema Operativo Embedded

Approccio stratificato

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

L i n u B e s t a Mario Di Raimondo

Architetture Applicative

Luca Ottaviano. Ottimizzare applicazioni Qt Gui. Firenze, 8 luglio 2013

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Come Creare un sito web gratis

Creare una Rete Locale Lezione n. 1

Corso di PHP. Prerequisiti. 1 - Introduzione

Linux in ambito smartphone e introduzione

Panoramica: che cosa è necessario

Hardware delle reti LAN

Sistemi embedded un dispositivo incapsulato progettato per una determinata applicazione

MODULO 02. Iniziamo a usare il computer

Dispensa di Informatica I.1

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

Vodafone Device Manager. La soluzione Vodafone per gestire Smartphone e Tablet aziendali in modo semplice e sicuro

Software Open Source per sistemi embedded

PRESENTAZIONE GESTIONALE AZIENDALE ADVANCED. Qsistemi Italia Telefono: Copyright 2015.

MagiCum S.r.l. Progetto Inno-School

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Applicazioni di Ubuntu

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Mida Directory. Introduzione. Mida Directory

Informatica. Prof. A. Longheu. Introduzione a Java

DBMS e Linguaggi di programmazione nell'era di Internet

Introduzione alla Virtualizzazione

Eseguire velocemente operazioni complesse che in altri modi sarebbero lunghe e dispendiose in termini di risorse. Cosa proponiamo

Il web server Apache Lezione n. 3. Introduzione

SERVER E VIRTUALIZZAZIONE. Windows Server Guida alle edizioni

Puppy Linux (Precise) Live da CD o da USB (Si può usare su PC con 256 MB di RAM)

Software per Helpdesk

Corso sul pacchetto R

C Cloud computing Cloud storage. Prof. Maurizio Naldi

WorkFLow (Gestione del flusso pratiche)

Software Libero. Terra Futura - Firenze

per la sicurezza della vostra azienda Be ready for what s next! Kaspersky Open Space Security

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Il calendario di Windows Vista

Visual basic base Lezione 01. L'ambiente di sviluppo

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Progetto Virtualizzazione

Una novità di Microsoft per il lancio sul mercato di Microsoft Visual Studio 2005 è stata quella sia

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

RADAR. Raccolta e Analisi Dati per Attribuzione Rating

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

Piacere di conoscerla

Corso di PHP. Prerequisiti. 1 - Introduzione

OpenVAS - Open Source Vulnerability Scanner

uadro Soluzione software e hardware Per le rilevazione presenze Gestione Aziendale Fa quadrato attorno alla tua azienda

VMware. Gestione dello shutdown con UPS MetaSystem

AMBIENTE GRAFICO DI FEDORA: ATTIVITA ESEGUIBILI DA TUTTI GLI UTENTI

Sistemi Operativi di Rete. Sistemi Operativi di rete. Sistemi Operativi di rete

Sistemi avanzati di gestione dei Sistemi Informativi

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA

TYPO3 in azione con l infrastruttura ZEND: affidabilità e sicurezza. Mauro Lorenzutti CTO di Webformat srl mauro.lorenzutti@webformat.

Strumenti informatici per la Lettura. una guida alle risorse, ai dispositivi, ai formati

4. Un ambiente di sviluppo per Java

Corso di Informatica

Processo di Sviluppo delle Applicazioni

PRESENTAZIONE GESTIONALE AZIENDALE PROFESSIONAL. Qsistemi Italia Telefono: Copyright 2015.

BiblioTech - Personal Digital Library

Preventivo a parola, a cartella: aspetti da considerare nella valutazione

Ti consente di ricevere velocemente tutte le informazioni inviate dal personale, in maniera assolutamente puntuale, controllata ed organizzata.

YOUTUBE: UN CANALE PER LA PARTECIPAZIONE

FoLUG Forlì Linux User Group. Partizionamento

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Progettazione e Sviluppo dell Applicazione Web Share Mobile per Dispositivi Mobili Multipiattaforma. Elaborato di Laurea di: Marco Stanzani

Piano Nazionale di Formazione degli Insegnanti sulle Tecnologie dell'informazione e della Comunicazione. Percorso Formativo C1.

PRESENTAZIONE. Chi è B-Bright

TIMESHARK: Uno strumento per la visualizzazione e l analisi delle supertimelines. Relatore: Federico Grattirio

FAQ DI INSTALLAZIONE DI INAZIENDA Rev.2

TERMINE SUPPORTO DA PARTE DI MICROSOFT DEL SITEMA OPERATIVO WINDOWS XP: 8 Aprile 2014

MonoDay 2010 FSGateway Ing. Torello Querci

Presentazione di virtual desktop client + LTSP server

CONTROLLO NUMERICO Z32

Comunità Open Source e PMI. Il caso: Java Open Business

Le novità del software di configurazione ETS4 e gli esempi applicativi

S earche ngineo ptimization

INNOVAZIONE XNOTTA PER PORTALI TURISTICI

So.Di. LINUX: Software Didattico OpenSource per tutti

Transcript:

Gianni Valdambrini Qt Certified Specialist Everywhere Firenze, 25 settembre 2012

Cosa è Qt Qt è un framework cross platform, con cui potete scrivere il codice un'unica volta ed effettuare il deploy su vari sistemi desktop ed embedded. Qt implementa il principio Hollywood ( non chiamarci, ti chiameremo ). Qt è anche una libreria, mettendo a disposizione un ampio set di componenti già pronti all'uso. 2 / 30

Cosa è Qt Le applicazioni Qt compilano sulle varie piattaforme supportate senza cambiamenti... e si comportano (ed appaiono) nello stesso modo su di esse... pur rispettando le tradizionali caratteristiche di ogni piattaforma. 3 / 30

Qt: i linguaggi Qt è scritto in C++ standard, tuttavia fa uso estensivo di un generatore di codice chiamato moc per implementare alcune funzionalità di alto livello non previste dal linguaggio. E' possibile estendere le applicazioni tramite embedding di linguaggi di scripting (QtScript, PythonQt, ecc..). Inoltre è possibile scrivere l'intera applicazione in Python utilizzando l'apposito binding PyQt. 4 / 30

Qt: le piattaforme Embedded Desktop Linux Embedded Windows Mobile Windows Linux Mac Os X Symbian Windows CE In aggiunta alle versioni ufficiali, sono presenti numerosi altri porting effettuati/mantenuti dalla comunità. 5 / 30

Qt: chi lo usa

Qt: licenze Qt è disponibile con due licenze: Open source (LGPL v. 2.1) permette di sviluppare applicazioni con linking dinamico alle Qt senza dover rilasciare il codice o pagare costi di licenza. Commerciale per sviluppatore e con costo dipendente dal numero di piattaforme target, permette di usare in piena libertà Qt ed è comprensivo di supporto. Per saperne di più: http://qt.digia.com/licensing http://www.slideshare.net/qtbynokia/qt-licensing-explained 7 / 30

Un veloce sguardo a Qt Qt mette a disposizione un gran quantitativo di funzionalità, realizzate attraverso un alto numero di classi che tuttavia mantengono un'ottima semplicità grazie alla struttura piatta. Ecco alcune delle funzionalità offerte da Qt: Internazionalizzazione e supporto unicode Multi-threading e multi-processing Introspezione e RTTI Implicit Sharing Gestione automatica lifetime oggetti Meccanismi di comunicazione all'interno dell'applicazione anche fra thread diversi (signal slot) 8 / 30

Un veloce sguardo a Qt Altre funzionalità chiave offerte da Qt sono: Meccanismi di IPC (shared memory, dbus, tcp/ip,...) Model/view framework Contenitori e strutture dati Supporto alla programmazione concorrente Sistema di painting Unit testing 9 / 30

Qt: i moduli Qt è suddiviso in vari moduli, in modo che sia possibile utilizzare ciò di cui abbiamo bisogno senza doversi portare tutto dietro. Declarative Networking Core GUI WebKit Xml Database Scripting OpenGL Unit Testing 10 / 30

Qt: i moduli QtCore offre un layer di compatibilità sopra le piattaforme supportate, includendo al suo interno il loop degli eventi e numerose classi di utilità. Per questo motivo è quindi molto indicato per realizzare applicazioni non GUI come demoni o processi di sistema. QtGui si occupa di effettuare il disegno della GUI delegando al sistema operativo unicamente la gestione delle finestre top-level. 11 / 30

Qt: i moduli QtWebKit permette alle applicazioni Qt di interfacciarsi con un vero e proprio motore di rendering per pagine web. E' quindi possibile realizzare applicazioni ibride, composte da una parte in linguaggio nativo e una parte realizzata con tecnologie web. QtNetwork offre le principali funzionalità di rete integrate con il loop degli eventi (ma possono essere usate anche senza). 12 / 30

Rappresenta l'evoluzione nel modo di progettare GUI: se con QtGui è possibile fare classiche applicazioni desktop Qt Quick nasce dall'esigenza di realizzare GUI fluide e dinamiche. Qt Quick è realizzato sopra Qt in modo da sfruttarne i pregi ed ereditarne le funzionalità (accelerazione hardware, internazionalizzazione, ecc..) 13 / 30

Qt Quick Qt Quick è un insieme di tecnologie: Il linguaggio dichiarativo, chiamato Qml ed estensione di JavaScript. Il runtime, che permette l'accesso a funzionalità e strutture dati di Qt/C++. QtCreator, che integra un editor avanzato di Qml, un designer grafico di UI e un debugger/profiler. Qt Quick velocizza la realizzazione di GUI ed è quindi molto indicato per il fast prototyping di applicazioni. 14 / 30

Qt per Linux Embedded Qt è particolarmente adatto per lo sviluppo su dispositivi embedded, e gira su ogni Linux con un compilatore C++ decente. 15 / 30

Qt per Linux Embedded Per i dispositivi dotati di framebuffer, Qt offre un vero e proprio gestore di finestre (chiamato QWS Qt Windows System). In questo caso Qt scrive direttamente su framebuffer, con un meccanismo di double buffering. Le applicazioni che utilizzano funzionalità specifiche dell'embedded possono comunque girare su desktop grazie a QVFB, un simulatore di framebuffer integrato in Qt. 16 / 30

Strumenti di sviluppo QtSDK è l'ambiente di sviluppo completo, ed include: QtCreator IDE, un potente ma leggero IDE per lo sviluppo e design delle applicazioni; le librerie Qt, comprensive di esempi e demo; la documentazione di Qt e dei suoi tools; un update manager, per essere sempre aggiornati con le ultime versioni di Qt. Separatamente dal QtSDK viene fornito anche il Qt Linguist, strumento per traduttori che desiderano localizzare l'applicazione. 17 / 30

Qt Creator IDE L'IDE di Qt Creator include: un editor avanzato C++/Qml con autocompletamento e tools di refactoring gestione di progetti e del sistema di build QtDesigner per GUI tradizionali e Qml un sistema di help integrato ed espandibile un debugger visuale ed integrato con le strutture dati di Qt supporto per i principali sistemi di controllo di revisione 18 / 30

Qt Project Qt è sviluppato, a partire dal 2011, come progetto open source denominato Qt Project e che include privati e aziende. In precedenza Qt, benchè distribuito anche con licenza open source, era sviluppato unicamente dai proprietari di Qt. Questo cambiamento ha incrementato fortemente il numero di contributori a Qt, che quindi potrà beneficiarne diventando sempre più sviluppato, testato e mantenuto. 19 / 30

Qt 5 Qt5 nasce dalla volontà di mettere Qt Quick al centro dell' ecosistema Qt, riscrivendo parte dello stack grafico per ottimizzarne le prestazioni sfruttando appieno l'accelerazione hardware.

Qt Quick v. 2 Grazie al lavoro di riscrittura dello stack grafico le prestazioni di applicazioni che usano Qt Quick v. 2 con Qt5 potranno più che raddoppiare in alcuni casi!

Qt 5 Altri importanti cambiamenti architetturali della nuova versione di Qt sono: maggiore modularità: i vari moduli di Qt4 sono stati ripensati e suddivisi con una granularità maggiore. Esempio: QtGUI non sarà più dipendenza di Qt Quick porting più facili su altre piattaforme: adesso il codice di Qt è esso stesso cross platform ed utilizza un layer chiamato QPA per interfacciarsi con il sistema operativo. 22 / 30

Qt 5 - porting Uno degli obbiettivi nello sviluppo di Qt5 è stato quello di minimizzare i cambiamenti richiesti alle applicazioni. Per questo è stato rimosso o cambiato solo quanto deprecato con Qt4, mantenendo la compatibilità a livello dei sorgenti a circa il 99%. Come conseguenza, alcune applicazioni (es: QtCreator) sono già perfettamente funzionanti sia con Qt4 che con Qt5. 23 / 30

Il futuro di Qt 5 Qt5 è attualmente in beta, e la data prevista per la release finale è Novembre 2012. Successivamente, alcuni dei più importanti obbiettivi dichiarati dagli sviluppatori di Qt sono: espandere la libreria dei Widget per desktop. portare Qt su piattaforme ios e Android. portare Qt su BlackBerry OS. 24 / 30

3 motivi per scegliere Qt 0/3 (embedded version)

3 motivi per scegliere Qt 1/3 (embedded version) Lo stesso codice può essere compilato ed eseguito su varie piattaforme embedded e desktop. Come conseguenza, gran parte dello sviluppo può essere svolto su Pc, riducendo la parte del testing e debugging da svolgere sull'hardware. In tal modo, sarà possibile scrivere applicazioni più velocemente, senza perdere tempo nel caricare l'applicazione su embedded. 26 / 30

3 motivi per scegliere Qt 2/3 (embedded version) Le classi di Qt, e QtCore in particolare, offrono funzionalità avanzate tipiche di linguaggi di più alto livello, con cui è possibile scrivere applicazioni più velocemente. Es: QString supporto unicode, regexp, split, ecc.. In aggiunta, la loro implementazione è fatta con un occhio di riguardo all'embedded, combinando: ottime prestazioni espansione codice minimale modularità 27 / 30

3 motivi per scegliere Qt 3/3 (embedded version) La prima versione di Qt risale al 1992: questo ne fa un framework con un'architettura solida e matura. Altre conseguenze sono: è un framework molto ben testato e funzionante, utilizzato da una larga base di utenti. dispone di una documentazione davvero ben fatta e di una vasta community. è corredato di un gran numero di esempi e demo. 28 / 30

Let's Talk office +39 055 3984627 e-mail aleister@develer.com web www.develer.com

License Creative Commons Attribution 3.0 Unported