Programarea independenta de platforma in C++. Qt
Upcoming SlideShare
Loading in...5
×
 

Programarea independenta de platforma in C++. Qt

on

  • 1,936 views

Platform independent programming in C++. Qt

Platform independent programming in C++. Qt

Statistics

Views

Total Views
1,936
Views on SlideShare
1,936
Embed Views
0

Actions

Likes
0
Downloads
15
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Programarea independenta de platforma in C++. Qt Programarea independenta de platforma in C++. Qt Presentation Transcript

    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Programarea independentă de platformă în C++ Qt Dragoş Acostăchioaie http://www.unixinside.org dragos@unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Qt. Code less. Create more. Deploy everywhere ✗ Qt faciliteaza dezvoltarea de cod aplicatii C++ care ruleaza pe o larga varietate de platforme hardware si software, de tip desktop si mobile/embedded ✗ Qt poate interactiona cu alte limbaje, cum ar fi Java, precum si cu limbaje de scripting, cum ar fi Python sau JavaScript ✗ Qt suporta platformele: ✗ Linux, dar si alte UNIX flavours (eg FreeBSD) ✗ MacOS ✗ Windows ✗ Embedded Linux ✗ Symbian OS (Qt este SDK standard pentru Symbian OS incepand cu 2010) ✗ Windows CE ✗ Maemo ✗ Qt suporta mediile integrate: ✗ Eclipse ✗ Microsoft Visual Studio Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Qt. Code less. Create more. Deploy everywhere ✗ Avantajele Qt: ✗ un singur cod sursa functioneaza fara modificari pe platforme diferite, conform conceptului bine-cunoscut write once, run everywhere ✗ performante superioare fata de limbajele care ruleaza intr-o masina virtuala (Java), fiindca codul binar se executa nativ, rezultand si consum semnificativ mai redus de resurse ✗ utilizeaza sistemul grafic al sistemului de operare pe care ruleaza; astfel, aplicatiile au aspectul si comportamentul nativ al sistemului gazda ✗ trecerea de la un sistem de operare la altul nu necesita modificari ale codului sursa, ci doar compilarea acestuia pe fiecare platforma in parte ✗ asigura codul sursa impotriva schimbarilor viitoare ale platformelor gazda; dezvoltatorii se pot astfel concentra pe dezvoltarea aplicatiilor, nu pe modificarile API-urilor ✗ pot fi atinse mai usor piete multiple (dedicate diferitelor sisteme de operare) ✗ costuri mai mici de mentenanta a codului Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Biblioteca Qt ✗ Biblioteca de clase Qt cuprinde (non-exhaustiv): ✗ interfata utilizator ✗ grafica 2D ✗ grafica 3D cu OpenGL ✗ fire de executie multiple ✗ sistem de ferestre pentru sisteme mobile/embedded ✗ comunicatie intre obiecte ✗ suport pentru stream-uri multimedia ✗ integrare a sistemului WebKit ✗ comunicatii de retea ✗ procesare XML ✗ acces la baze de date ✗ clase template ✗ motor de scripturi ECMA Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Qt. Instrumente pentru dezvoltare ✗ Qt Creator – mediu integrat de dezvoltare ✗ editor de cod C++ si JavaScript ✗ instrumente pentru gestiunea proiectelor ✗ sistem de ajutor contextual integrat ✗ depanator ✗ designer de interfete utilizator ✗ controlul versiunilor ✗ instrumente pentru gestiunea codului sursa ✗ suport pentru platformele desktop si cele mobile ✗ Qt Designer – designer de interfete utilizator ✗ Qt Linguist – faciliteaza traducerea aplicatiilor in mai multe limbi ✗ Qt Assistant – ajuta la realizarea de documentatie pentru aplicatiile Qt ✗ Virtual Framebuffer – permite dezvoltarea si depanarea aplicatiilor embedded pe desktop ✗ instrumente ce asigura integrarea cu IDE-urile Microsoft Visual Studio si Eclipse Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Qt. Licente de utilizare Qt Commercial GNU LGPL v2.1 GNU GPL v3.0 Developer License Cost de licentiere Taxa de licentiere Fara costuri Fara costuri (de la ~3000 $) Trebuie furnizate Nu Trebuie furnizat Trebuie furnizat modificarile la codul codul sursa codul sursa sursa Qt Pot fi realizate aplicatii Da Da, in concordanta Nu, aplicatiile sunt proprietare cu termenii LGPL sub licenta GPL si trebuie furnizat codul sursa Sunt furnizate Da, sunt trimise Da Da actualizari imediat notificari celor care au contract de suport Este furnizat suport Da, celor cu contract Disponibil contra Disponibil contra tehnic incheiat cost cost Taxa pentru Pentru unele Nu Nu executabile platforme embedded Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Aplicatii care utilizeaza Qt ✗ mediul desktop KDE si majoritatea aplicatiilor KDE (Koffice, Amarok etc.) ✗ Skype ✗ Google Earth ✗ VLC ✗ Walt Disney Animation Studios ✗ Marble (harti) ✗ Avogadro (editor molecular) ✗ Deutsche Flugsicherung GmbH ✗ xTuple ERP ✗ numeroase companii: Nokia, Asus, Philips, Volvo, Samsung, Sony, Panasonic, Motorola, Accton, Sharp Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Dispozitive care utilizeaza Qt ✗ telefoane mobile, palmtop, media playere, dispozitive dedicate, … ✗ Motorola: MOTOROKR Z6, E6 si E2, MOTOMING A1200, A680, E680, A780, A760, A768 ✗ Sony Mylo (PDA) ✗ Panasonic KX-WP1050 (telefoane WiFi pentru Skype) ✗ Accton (telefoane WiFi pentru Skype) ✗ ZTE U980 (telefoane mobile) ✗ Archos PMA400, 404, 604, 604WiFi (playere multimedia) ✗ Fluke Networks EtherScope series II (tester de retea) ✗ Sharp SL-5500, SL-A300, SL-C700, SL-C750, SL-5600, SL-C760, SL-6000, SL-C860 (PDA) ✗ Volvo Human-Machine Interface for buses ✗ SDG systems TDS Recon (PDA) ✗ Samsung Techwin SRD-16700 (player multimedia) ✗ Quanta Computer videophone YE7 ✗ digitalCube i-Station T43 (media player portabil) ✗ Nokia N8 Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Scurt istoric ✗ 1994 – este lansata prima versiune Qt ✗ 28 iunie 2005 – Qt versiunea 4 (reprezinta un progres considerabil fata de versiunile anterioare) ✗ iunie 2008 – Trolltech este cumparat de Nokia (progres considerabil in dezvoltarea Qt pe platforme mobile) ✗ in acest moment – zeci de mii de aplicatii (comerciale sau open source) sunt bazate pe Qt ✗ peste 15 milioane de dispozitive mobile care folosesc Qt aflate pe piata Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Mediul integrat de dezvoltare Qt Creator ✗ wizard pentru creare/import proiecte Qt ✗ editor avansat de cod C++ ✗ Qt Designer pentru proiectarea elementelor ce compun interfata utilizator, integrat ✗ Help Qt integrat ✗ sistem de compilare a proiectelor (qmake si CMake) ✗ sistem de gestiune a fisierelor din proiect ✗ sisteme de control al versiunilor ✗ depanarea aplicatiilor Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Mediul integrat de dezvoltare Qt Creator ✗ Wizard pentru proiecte Qt ✗ realizarea de proiecte noi Qt ✗ genereaza automat proiectul si fisierele de baza ✗ Editor avansat de cod sursa C++ ✗ syntax highlighting ✗ completare automata a claselor membre, metodele si argumentele functiilor, pentru clasele Qt si cele definite de programator ✗ marcarea automata a erorilor de sintaxa in timpul editarii ✗ auto-indentare ✗ posibilitatea de expandare/restrangere a functiilor ✗ cautare incrementala a cuvintelor-cheie in timpul editarii ✗ comutarea usoara intre declaratia si definitia unei metode ✗ posibilitatea de a face semne de carte in cadrul codului sursa ✗ posibilitatea de a lucra fara mouse si de a deschide ferestre de editare multiple Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Mediul integrat de dezvoltare Qt Creator ✗ Qt Designer integrat pentru proiectarea elementelor interfetei utilizator ✗ se bazeaza pe editarea de form-uri, sunt generate fisiere de tip XML ✗ tehnologie de tip drag-and-drop pentru widget-uri ✗ nu este necesara recompilarea intregului proiect ✗ permite conectarea semnalelor si sloturilor ✗ permite definirea actiunilor pentru widget-uri ✗ pot fi utilizate layout-urile pentru a nu defini dimensiunea si pozitia widget-urilor ✗ permite previzualizarea aspectului form-urilor Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Mediul integrat de dezvoltare Qt Creator ✗ Help pentru biblioteca Qt integrat ✗ poate fi accesat in timpul editarii prin pozitionarea pe un cuvant-cheie ✗ sistem de compilare a proiectului ✗ prin intermediul sistemului qmake propriu Qt sau prin Cmake ✗ sistem de gestiune a fisierelor din proiect ✗ permite localizarea usoara a unui fisier din proiect dupa tipul si numele acestuia ✗ sisteme de control al versiunilor ✗ sunt suportate: Git, Subversion (SVN), CVS si Perforce ✗ compilarea si depanarea aplicatiei ✗ sunt suportate gcc si gdb, precum si Microsoft Visual Studio compiler/debugger ✗ pot fi stabilite puncte de intrerupere, rula aplicatia linie-cu-linie sau instructiune-cu- instructiune, examina continutul variabilelor locale si globale (variabilele compuse pot fi vizualizate in forma arborescenta) Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Mediul integrat de dezvoltare Qt Creator ✗ Compilarea unei aplicatii pentru dispozitive mobile ✗ permite compilarea si executia unei aplicatii pentru un anumit tip de dispozitiv mobil ✗ Qt Simulator ✗ Permite executia si testarea aplicatiei in conditii similare rularii pe dispozitivul mobil Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Instrumente pentru localizare ✗ Qt Linguist – set de instrumente pentru localizarea aplicatiilor Qt ✗ aplicatie dedicata traducerii textelor din elementele de interfata, usor de utilizat si de persoanele fara cunostinte tehnice ✗ suporta Unicode 5.0 ✗ pot fi manipulate mai multe limbaje intr-un singur document ✗ cuvintele sau frazele sunt introduse in codul sursa intr-o limba prestabilita utilizand sintaxa tr(“fraza de tradus”) ✗ traducerile sunt stocate in fisiere dedicate, nefiind necesara modificarea codului sursa ✗ permite si utilizarea formatelor XLIFF (XML Localization Interchange File Format) si gettext (po) Dragoş Acostăchioaie - http://www.unixinside.org
    • Şcoala de vară “Informatica la castel”, Macea, 6-11 septembrie 2010 Qt. In loc de concluzie ✗ Qt – solutie completa. Alternativa viabila la: ✗ Java ✗ C# si biblioteci proprietare ✗ C++ si biblioteci proprietare … Intrebari? Sa il ascultam pe Bogdan... Dragoş Acostăchioaie - http://www.unixinside.org