Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

OOP mesterkurzus Mobilfejlesztés keresztplatformokon Fazekas István skype: i.fazekas

Hasonló előadás


Az előadások a következő témára: "OOP mesterkurzus Mobilfejlesztés keresztplatformokon Fazekas István skype: i.fazekas"— Előadás másolata:

1 OOP mesterkurzus Mobilfejlesztés keresztplatformokon Fazekas István i.fazekas@agria.hu skype: i.fazekas i.fazekas@agria.hu

2 Mobilfejlesztés keresztplatformokon 2 A KERESZTPLATFORMOS ALKALMAZÁSFEJLESZTÉSRŐL Desktop alkalmazásfejlesztés Fejlesztő: Operációs rendszer 1 Felhasználó: Operációs rendszer 1

3 Mobilfejlesztés keresztplatformokon 3 A KERESZTPLATFORMOS ALKALMAZÁSFEJLESZTÉSRŐL Desktop alkalmazásfejlesztés keresztplatformon Fejlesztő: Operációs rendszer 1 Felhasználó: Operációs rendszer 2

4 Mobilfejlesztés keresztplatformokon 4 A KERESZTPLATFORMOS ALKALMAZÁSFEJLESZTÉSRŐL Mobil alkalmazásfejlesztés - natív Fejlesztő: Operációs rendszer 1 Mobil operációs rendszer

5 Mobilfejlesztés keresztplatformokon 5 A KERESZTPLATFORMOS ALKALMAZÁSFEJLESZTÉSRŐL Natív mobilalkalmazás fejlesztés Desktop operációs rendszer 1Mobil operációs rendszer 1 Desktop operációs rendszer 2Mobil operációs rendszer 2 Desktop operációs rendszer 3Mobil operációs rendszer 3

6 Mobilfejlesztés keresztplatformokon 6 A KERESZTPLATFORMOS ALKALMAZÁSFEJLESZTÉSRŐL Natív mobil alkalmazás fejlesztés Windows n + SDKWindows phone Mac OS X + SDKiOS GNU-Linux / OSX / Windows + SDKAndroid

7 Mobilfejlesztés keresztplatformokon 7 A KERESZTPLATFORMOS ALKALMAZÁSFEJLESZTÉSRŐL Natív mobil alkalmazás fejlesztés Windows n + SDKWindows phone Mac OS X + SDKiOS GNU-Linux / OSX / Windows + SDKAndroid

8 Mobilfejlesztés keresztplatformokon 8 A KERESZTPLATFORMOS ALKALMAZÁSFEJLESZTÉSRŐL Keresztplatformos mobil alkalmazás fejlesztés OSa + SDK1Windows phone OSb + SDK2iOS OSc + SDK3Android

9 Mobilfejlesztés keresztplatformokon 9 A KERESZTPLATFORMOS ALKALMAZÁSFEJLESZTÉSRŐL 1. Probléma: kezelői felület A mobil eszköz nem egy hordozható számítógép.

10 Mobilfejlesztés keresztplatformokon 10 A KERESZTPLATFORMOS ALKALMAZÁSFEJLESZTÉSRŐL 2. Probléma: különböző futtatási környezet: Android: VM Dalvik: Just On Time - főleg interpretál, gyakran használt kódrészleteket fordít. ART: Ahead Of Time – installáláskor teljes alkalmazásokat igyekszik lefordítani. Windows:.Net, WinRT iOS: objective C

11 Mobilfejlesztés keresztplatformokon 11 A KERESZTPLATFORMOS ALKALMAZÁSFEJLESZTÉSRŐL 3. Probléma: Eltérő erőforrás kezelés. Érzékelők File rendszer Stb…

12 Mobilfejlesztés keresztplatformokon 12 HELYZETKÉP - A LEGISMERTEBB MEGOLDÁSOK

13 Mobilfejlesztés keresztplatformokon 13 HELYZETKÉP - A LEGISMERTEBB MEGOLDÁSOK “Everybody and his dog…”

14 Mobilfejlesztés keresztplatformokon 14 XAMARIN - JELLEMZŐK CLI - managed runtime Jelenlegi platformok: Microsoft operációs rendszerek, OS X, iOS, Android Programozási nyelv: C#

15 Mobilfejlesztés keresztplatformokon 15 XAMARIN - TÖRTÉNET 2000 Microsoft:.NET Framework bevezetése 2001 Ximian: nyílt forrású változat (GNU-Linux: Mono) Többszöri kivásárlás (pl. Novell) után a Mono sorsa kétséges 2011 Xamarin alapítása. A Mono tulajdonjoga kérdéses. 2011 Megállapodás Novell és Xamarin között Mono, Mono Touch, Mono Android 2012 Mono Mac 2013 Xamarin 2.0: Xamarin Studio. iOS, OS X, Android fejlesztő eszközök integrációja Beépítés a Visual Studio környezetbe 2013 Microsoft - Xamarin megállapodás

16 Mobilfejlesztés keresztplatformokon 16 XAMARIN - FELHASZNÁLÓI ENGEDÉLYEK

17 Mobilfejlesztés keresztplatformokon CORONA - JELLEMZŐK Corona Labs Inc. Lua, réteg C++/OpenGL fölött Külső modulok: Kwik, GameThrive, Lua Glider, Corona Complete, Spriteloq, Lime, SpriteHelper, Corona Textmate Bundle, Particle Candy, MultiRezer, LevelHelper, Icon Robot, Corona Remote, Texture Packer, Physics Editor, iAppHost, Outlaw, 700 Sprites, bmGlyph, Explosion Generator, Game Coder, Glitch Games Libraries, Glyph Designer, Glyph Designer, Particle Designer, Gymbyl.com, Krea IDE, Kutt. Level Director, Million Tile Engine, MovieClipX, OPTPiX SpriteStudio, Roaming Gamer Templates and SSKCorona, Spine

18 Mobilfejlesztés keresztplatformokon CORONA - TÖRTÉNET 2007 Walter Luh az Adobe-től távozik és megalapítja a Corona Lab-et. 2009 Első Corona SDK béta free. 2009 December, Corona SDK 1.0 for iPhone. 2010 Február, Corona SDK 1.1 2010 Április, Corona SDK 2.0 béta: iPhone, iPad, and Android. 2011 Corona SDK for Windows. 2013 December, stabil változat.

19 Mobilfejlesztés keresztplatformokon CORONA - JELLEMZŐK

20 Mobilfejlesztés keresztplatformokon CORONA - JELLEMZŐK

21 Mobilfejlesztés keresztplatformokon PHONEGAP - JELLEMZŐK Apache Cordoba alap JavaScript, HTML5, CSS3 Hibrid alkalmazások: Nem natív kód a végeredmény (ui: web views), Gyártói kódrészletek (native plugins) segítségével van korlátozott hozzáférése az erőforrásokhoz.

22 Mobilfejlesztés keresztplatformokon PHONEGAP - TÖRTÉNET 2009 iPhoneDevCamp találkozó: első ötlet - Nitobi Software 2009 Web 2.0 Conference – közönségdíj 2011 Adobe megvásárolja a Nitobi-t A korai változatok OSX alatt tudtak iOS és Windows alatt Windows phone alkalmazást írni -> 2012 Adobe Cloud Compiler Az Adobe felhívja a figyelmet, hogy az Apple Appstore a lassú sebesség miatt esetleg elutasítja az alkalmazást.

23 Mobilfejlesztés keresztplatformokon PHONEGAP - KONSTRUKCIÓK Community változat: ingyenes. Tulajdonosi változat: ár csak kapcsolatfelvétel után kapható.

24 Mobilfejlesztés keresztplatformokon 24 MONOGAME - JELLEMZŐK CLI - managed runtime Jelenlegi platformok: Microsoft operációs rendszerek iOS OS X Android: Xamarin runtime szükséges Programozási nyelv: C#

25 Mobilfejlesztés keresztplatformokon 25 MONOGAME - TÖRTÉNET XNA továbbfejlesztése elsődleges cél: hatékony játékfejlesztői környezet 2009 Első letölthető változat 2012 Utolsó hivatalos 2D változat 2013 RenderTarget3D, support for multiple GameWindows, Jelenleg: XNA4-nél fejlettebb

26 Mobilfejlesztés keresztplatformokon 26 MONOGAME – FELHASZNÁLÓI ENGEDÉLY Licensz: A Monogame ingyenes, de a Microsoft Visual Studio és Xamarin elemek használata az ott érvényes LUA alapján értékelődik.

27 Mobilfejlesztés keresztplatformokon UNITY - JELLEMZŐK Fejlesztő: Unity Technologies Alapja: Mono Platformtól függően a következő 3D engine-eket használja: Direct3D (Windows, Xbox 360) OpenGL (Mac, Windows, and Linux) OpenGL ES (Android, iOS) És egyéb tulajdonosi API-k játékkonzolokon

28 Mobilfejlesztés keresztplatformokon UNITY - JELLEMZŐK Platformok: Windows, OS X, Linux, Unity Webplayer, Android, iOS, BlackBerry 10, Windows Phone 8, Tizen, WebGL, PlayStation 3, PlayStation 4, PlayStation Vita, Wii U, Xbox 360, Xbox One, Android TV, Samsung Smart TV, Oculus Rift, Gear VR

29 Mobilfejlesztés keresztplatformokon UNITY - TÖRTÉNET 2005 Unity 1.0 Apple Worldwide Developers Conference 2007 Unity 2.0 2010 Unity 3.0 2012 Unity 4.0 2015 Unity 5.0: Nvidia's PhysX physics middleware upgrade-elve 3.3-ra. Bug mentesítés és élethűbb effektusok.

30 Mobilfejlesztés keresztplatformokon 30 Qt - JELLEMZŐK Natív kódra fordít elsősorban GNU GCC segítségével Jelenlegi platformok: kb 40 platform, többek között: Microsoft operációs rendszerek Android Embedded Linux iOS OS X QNX Blackberry GNU-Linux, FreeBSD, Solaris, AIX... Programozási nyelv: C++

31 Mobilfejlesztés keresztplatformokon 31 Qt - TÖRTÉNET 1991 fejlesztés megkezdődik Quasar Technologies, később Trolltech 1.0 és 2.0: Unix és Windows 2001 Trolltech: Qt 3.0 Windows, Unix és OS X 2005 Trolltech: Qt 4.0 2008 Nokia kivásárlás: Symbian port

32 Mobilfejlesztés keresztplatformokon 32 Qt - TÖRTÉNET 2010 Nokia elérhetővé teszi a forrást közösségi fejlesztésre. 2011 Nokia beszünteti a Symbian támogatását 2011 Nokia bejelenti a tulajdonosi Qt eladását Digia-nak Android, iOS, Windows 8 Digia bejelenti, hogy valamennyi desktop és mobil portot támogatja. 2012 Qt 5.0 és további platformok

33 Mobilfejlesztés keresztplatformokon 33 Qt - KÖZISMERT ALKALMAZÁSOK VLC Skype kliensek Mathematica Google Earth KDE VirtualBox Maya

34 Mobilfejlesztés keresztplatformokon 34 Qt - REFERENCIA FELHASZNÁLÓK ESA – European Space Agency Siemens Samsung Philips Lucasfilm DreamWorks Volvo...

35 Mobilfejlesztés keresztplatformokon 35 Qt - FELHASZNÁLÓI ENGEDÉLYEK Community: GNU GPL 3.0 GNU LGPL 3.0 GNU LGPL 2.1 - Qt speciális kivétellel

36 Mobilfejlesztés keresztplatformokon Qt - RENDSZER KOMPONENSEK Qt Creator IDE Qt Designer - form editor Qt Assistant Utilities: qmake - makefile generator uic - user interface compiler moc - meta object compiler rcc - resource compiler … Gcc, vagy MSVS Qt modulok (általában csak mint Qt)

37 Mobilfejlesztés keresztplatformokon 37 Qt - MODULOK Qt Core - minimálisan szükséges osztályok, Qt GUI, Qt Widets - fő GUI osztályok és vezérlők, Qt QML - QML és JavaScript kezelő modul, Qt Quick, Qt Quick Controls, Qt Quick Layouts - QML kezelés Qt Network - hálózat Qt Multimedia, Qt Multimedia Widgets, Qt SQL, Qt Webkit, Qt Webkit Widgets Qt Test - alkalmazás és lib tesztelő osztályok

38 Mobilfejlesztés keresztplatformokon Qt - BŐVÍTŐ MODULOK Active Qt - Active X Qt Bluetooth, Qt DBus, Qt NFC, Qt OpenGL, Qt Positioning, Qt Sensors, Qt Serial Port, Qt XML, Qt XML Patterns

39 Mobilfejlesztés keresztplatformokon 39 Qt TELEPÍTÉS www.qt-project.org

40 Mobilfejlesztés keresztplatformokon 40 Qt CREATOR Welcome: példák, előző projektek Edit: programszerkesztés Design: grafikus szerkesztő felület Debug: nyomkövetés (gdb) Projects: kit, build, futtatás beállítások Kit (device) kezelés, új kit definiálása, kit és konfiguráció gyors kiválasztása Verzió kezelés

41 Mobilfejlesztés keresztplatformokon 41 Qt CREATOR Kit (device) kezelés, definiálás, konfiguráció választás Verziókezelés Run Build Univerzális lokátor és Visszajelző panelek

42 Mobilfejlesztés keresztplatformokon 42 Qt CREATOR

43 Mobilfejlesztés keresztplatformokon 43 Qt TELEPÍTÉS Windows host, Windows Desktop és Windows phone platformok:  Qt 5.4.2 for Windows RT 32-bit (753 MB) Microsoft Visual Studio 2013

44 Mobilfejlesztés keresztplatformokon 44 Qt TELEPÍTÉS Windows host, Windows Desktop és Android platformok:  Qt 5.4.2 for Android (Windows 32-bit, 924 MB) jdk, Android SDK, Android NDK, ant

45 Mobilfejlesztés keresztplatformokon 45 Qt TELEPÍTÉS Windows host, Windows Desktop és Android platformok:  Qt 5.4.2 for Android (Windows 32-bit, 924 MB) Jdk: C:\Program Files\Java\jdk1.8.0_45 Android SDK: C:\Program Files (x86)\Android\android-sdk Android NDK: C:\Users\Public\Documents\AndroidNDK\android-ndk-r10e Ant: C:\Users\Public\Documents\Ant\apache-ant-1.9.5-bin\apache- ant-1.9.5\bin\ant.bat

46 Mobilfejlesztés keresztplatformokon 46 Qt TELEPÍTÉS Az android SDK-t telepíteni kell az Android SDK Manager segítségével!

47 Mobilfejlesztés keresztplatformokon 47 Qt TELEPÍTÉS ANT telepítése: https://www.apache.org/dist/ant/binaries/ apache-ant-1.9.5-bin.zip letöltés

48 Mobilfejlesztés keresztplatformokon Qt PROJECT LÉTREHOZÁSA Qt Widgets: raszteres GUI alkalmazás Qt Quick: QML alapú (GPU) alkalmazás Qt Console: parancssoros, Qt osztályokon alapuló alkalmazás

49 Mobilfejlesztés keresztplatformokon Qt PROJECT LÉTREHOZÁSA Válasszunk architektúrát!

50 Mobilfejlesztés keresztplatformokon Qt PROJECT LÉTREHOZÁSA A választható kezdő formok: QMainWindow: teljes alkalmazás ablak fejléc menüvel. QDialog: csak egy GUI elemek elhelyezésére alkalmas ablak, egyszerű alkalmazások számára. QWidget: Widget-ek elhelyezésére alkalmas mező – általában csak Widget-ek tesztelésére.

51 Mobilfejlesztés keresztplatformokon 51 Qt – QWidget alkalmazás projekt felépítés Projekt név projekt leíró fájl Header fájlok virtuális mappája főablak header – osztály leírás Definíciós fájlok virtuális mappája indítási pont főablak definíciója Formok virtuális mappája

52 Mobilfejlesztés keresztplatformokon 52 Qt - Projekt felépítés A main() függvény és objektumai. #include "mainwindow.h" #include int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }

53 Mobilfejlesztés keresztplatformokon 53 Qt - QObject Qt alaposztály, mely a következő szintaktika szerint épül fel: #include class MyClass : public QObject { Q_OBJECT public: explicit MyClass(QObject *parent = 0); signals: public slots: };

54 Mobilfejlesztés keresztplatformokon 54 Qt - Speciális meta-object tulajdonságok SIGNAL-SLOT mechanizmus Futtatásidejű tipuskezelés Dinamikus tulajdonságkezelő (dynamic property) rendszer Szemétgyüjtés...

55 Mobilfejlesztés keresztplatformokon 55 Qt - Build folyamat qmake - Makefile generátor MOC - Meta Object Compiler UIC - User Interface Compiler Egyéb parser és scanner generátorok, pl. lex, yapp stb

56 Mobilfejlesztés keresztplatformokon 56 A Qt szintaktika tartalmaz nem standard C++ kulcsszavakat. MOC - Meta Object Compiler: a Qt bővítést kezelő program. Feladata: beolvassa a C++ forrásállományokat, majd amennyiben Q_OBJECT makrót talál. helyettesíti egy C++ kódrészlettel, ami a Qt osztályok kezeléséhez szükséges kódot tartalmazza. Qt - Build folyamat

57 Mobilfejlesztés keresztplatformokon 57 Qt - Build folyamat: UIC UIC - User Interface Compiler XML user interface leíró állományból C++ kódot állít elő, mely a kívánt interfészt előállítja futásidőben.

58 Mobilfejlesztés keresztplatformokon 58 Qt – A Qt Creator kezelése Új projekt létrehozása Mentés Szövegszerkesztés Új Qt osztályok létrehozása Metódusok létrehozása SIGNAL-SLOT grafikus editor használata

59 Mobilfejlesztés keresztplatformokon 59 Qt – Példák: 1.Példa: Widget-ek használatának alapjai PlainTextEditor mezőbe íratás PushButton nyomásra; MyClass osztály létrehozása, mint standard C++ osztály; Példányosítás; activate() metódus: gombnyomásra hívódik, és a qDebug-ra írat ki; activate() metódust módosítsuk, hogy az ui-ra írasson ki! Qt “Fermat sejtés”

60 Mobilfejlesztés keresztplatformokon 60 Qt – Példák: 2.Példa: Signal/slot Kezelés MyClass osztály létrehozása mint QOBJECT; Példányosítás; MyClass::activate() metódus, mely Qdebug-ra írat ki üzenetet; PushButton hatására activate() hívás; debugPrint() üzenetkezelő (SLOT) létrehozása MainWindow-ban; sendDebugMessage (SIGNAL) írása MyClass-ban; Signal-slot összekapcsolás (connect);

61 Mobilfejlesztés keresztplatformokon 61 Qt – Példák: Timer kezelés 3.Példa: A végtelen ciklust helyettesítő timer MyClass létrehozása mint QObject; példányosítás QTimer példányosítás MyClass-ban; MyClass::timerTick slot létrehozása - Qdebug üzenet; Connect a timerTick és a timer overrun signal között; MainWindow::timerOverrun slot létrehozása – PlainTextEdit; Connect a timerOverrun és timer overrun signal között;

62 Mobilfejlesztés keresztplatformokon 62 Qt – Példák: 4a.Példa: Jegyzetlap - QString, QStringList Notes osztály: az egyoldalas jegyzetfüzetet tárolja; Példányosítás; Notes:: QStringList m_page; void enterLine(Qstring &), void clearPage(), QStringList *getPage() Beviteli lineEdit, oldal plainTextEdit, Enter, Clear gombok; MainWindow:: void clearPage(), void refreshPage() Gomb slot-ok: enterLine()-refreshPage(), clearPage- refreshPage();

63 Mobilfejlesztés keresztplatformokon 63 Qt – Példák: 4b.Példa: A jegyzetlap kiegészítése fájlkezeléssel Fejléc menü sorainak felvétele Slot-ok generálása Notes:: bool save(Qstring filename=“ default“) bool restore(Qstring filename=“ default“) Menüsor slot-ok: fájlműveletek QTextStream segítségével; Save as: QFileDialog::getSaveFileName() Load as: QFileDialog::getOpenFileName() segítségével;

64 Mobilfejlesztés keresztplatformokon 64 Qt programozás Qt Quick és QML segítségével QtQuick: Application framework dinamikus UI-k előállításához. Mobil eszközök korszerű felhasználói felületének kialakítására alkalmas. Érintőképernyő kezelésére alkalmas. Gyors (akár 60FPS animáció) Fejlesztő: Nokia Szabad szoftver

65 Mobilfejlesztés keresztplatformokon 65 Qt programozás Qt Quick és QML segítségével QtQuick: Működés: futásidőben a Qt Declarative: runtime interpreter olvassa és értelmezi az un. Qt declarative user interface definition QML adatot, majd annak megfelelően generálja az UI-t. A látványos kezelői felület mellett arra is alkalmas, hogy az interfészt és az alkalmazás logikai részét különválasszuk. Ezáltal lehetőség nyílik a különböző mobil eszközökre jellemző stílusok használatára, változatlan alkalmazás engine mellett.

66 Mobilfejlesztés keresztplatformokon 66 Qt programozás Qt Quick és QML segítségével QML: Dinamikus felhasználói felület leírására alkalmas markup language JavaScript alapú leírónyelv Megengedett a natív kód használata is A QML állományok fa struktúrába szervezett vezérlőket írnak le QML library: magas kidolgozottságú UI építőelemek. Qt framework tartalmazza grafikai elemek viselkedés (animációk, tranziensek)

67 Mobilfejlesztés keresztplatformokon 67 Qt programozás Qt Quick és QML segítségével QML példa gomb megjelenítésére: import QtQuick 2.3 Rectangle { id: simpleButton color: "grey" width: 150; height: 75 Text { id: buttonLabel anchors.centerIn: parent text: "button label" } }

68 Mobilfejlesztés keresztplatformokon 68 Qt programozás Qt Quick és QML segítségével Eseménykezelés QML-ben: A Qt SIGNAL-SLOT mechanizmushoz hasonló eseménykezelés. A signal kibocsájtása után a hozzá rendelt slot-ra kerül át, vagyis a slot-ot megvalósító függvény kerül meghívásra. Példa: MouseArea { id: buttonMouseArea anchors.fill: parent onClicked: console.log(buttonLabel.text + " clicked") }

69 Mobilfejlesztés keresztplatformokon 69 Qt programozás Qt Quick és QML segítségével A Qt Quick koncepció építőelemei: Visual Canvas: 2 dimenziós, z kezeléssel Koordináta rendszer: origó a bal-felső sarokban Szülőobjektumok: időbeli és síkbeli elhelyezés meghatározására. Scene Graph alapú működés A működéshez OpenGL szükséges

70 Mobilfejlesztés keresztplatformokon 70 Qt programozás Qt Quick és QML segítségével Natív QML alaptípusok: int - előjeles egész bool - logikai, true/false real - lebegőpontos szám double - dupla pontosságú lebegőpontos szám string - kötetlen formátumú szöveg url - resource locator list - QML objektumok listája var - általános tulajdonság típus enumeration - névvel hívatkozott érték

71 Mobilfejlesztés keresztplatformokon 71 Qt programozás Qt Quick és QML segítségével QML modulok által támogatott alaptípusok: date – dátum point - x, y koordinátákkal meghatározott pont rect - x, y, szélesség, magasság értékkel megadott téglalap size - szélesség, magasság értékpár color - ARGB-ben megadott szín font - QFont-tal megegyező tulajdonságokkal vector2d, vector3d, vector4d – vektorok quaternion – kvaternionok matrix4x4 - 4 méretű kvadratikus mátrix 3D grafikai műveletekhez

72 Mobilfejlesztés keresztplatformokon 72 Qt Quick projektek létrehozása: Qt Quick: Alap grafikai elemek és vezérlésük. Qt Quick Controls: Előre definiált vezérlő elemek.

73 Mobilfejlesztés keresztplatformokon 73 Qt Quick projektek létrehozása: Célszerű a következő kerettel kezdeni: import QtQuick 2.4 import QtQuick.Controls 1.2 import QtQuick.Window 2.2 // Alkalmazás ablak: ApplicationWindow { … }

74 Mobilfejlesztés keresztplatformokon 74 Qt Quick projektek létrehozása: Az alkalmazás ablak 3 függetlenül használható részből áll:

75 Mobilfejlesztés keresztplatformokon 75 Qt Quick projektek létrehozása: ApplicationWindow { id: window visible: true menuBar: MenuBar { Menu { MenuItem {...} } } toolBar: ToolBar { RowLayout { anchors.fill: parent ToolButton {...} } TabView { id: myContent anchors.fill: parent... }

76 Mobilfejlesztés keresztplatformokon 76 Qt – Példák: 5.Példa: A három ablakterületet bemutató alkalmazás

77 Mobilfejlesztés keresztplatformokon 77 Qt – Példák: 6.Példa: gombmező létrehozása QtQuick projekt létrehozása QtQuickControls 2.4 template alapján. General Empty File hozzáadása (Resource): Cell.qml Ebbe saját komponens raszteren ismételhető téglalapok létrehozásához (Cell). A main.qml-ben Grid létrehozása colorChooser néven, amin a Cell komponenseket helyezzük el.

78 Mobilfejlesztés keresztplatformokon 78 Qt – Példák: 7.Példa: Tranziens viselkedés QtQuick projekt létrehozása QtQuickControls 2.4 template alapján. Status létrehozása Transient bemutatása

79 Mobilfejlesztés keresztplatformokon 79 Qt – Példák: 8.Példa: image és sound fájlok használata

80 Mobilfejlesztés keresztplatformokon 80 … Köszönöm a figyelmet!

81 Mobilfejlesztés keresztplatformokon 81 Qt – Példák: N.Példa:

82 Mobilfejlesztés keresztplatformokon 82 Qt - Hálózat kezelés A QNetwork modul használata. Legfontosabb osztályok: QTcpServer QTcpSocket QUdpSocket Példa egyszerű szöveges üzenet küldésre szerver és kliens között.

83 Mobilfejlesztés keresztplatformokon 83 Qt Network kezelés Egyéb hálózati funkciók: Http FTP Hostname feloldás QHostinfo segítségével. URL-ek kezelése: a QUrl osztály

84 Mobilfejlesztés keresztplatformokon 84 Qt XML modul QXml osztály SAX parser - értelmezés beolvasás közben. Kisebb memóriaigény, de lassabb. QDom osztály Értelmezés memóriában tárolt állományon. Nagy memóriaigény, de gyorsabb. QXmlStreamReader QXmlStreamWriter

85 Mobilfejlesztés keresztplatformokon 85 Qt - Miért kódgenerátorok? Bonyolult ui leíró XML állományok nem értelmezhetők template kezeléssel. A template-ek működése nem garantált multiplatformos alkalmazásban. String alapú SIGNAL-SLOT szintaktika egyszerűbben valósítható meg. A C++ statikus objektum modelljével (szemben az Objective C üzenet alapú modelljével) nehézkes a dinamikus GUI kezelés. Kódgenerátorokkal futásidejű, dinamikus, tipusfüggetlen objektumkezelés valósítható meg.

86 Mobilfejlesztés keresztplatformokon 86 Qt - Miért kódgenerátorok? Bár a Qt SIGNAL-SLOT mechanizmusa 2-3-szor lassabb a template alapúnál, akár többszörös kapcsolat is könnyen, összeomlás nélkül lekezelhető, még egyes SLOT-ok váratlan bezárása esetén is. Öszefoglalva: a MOC ötvözi a Java és Objective-C flexibilitását a C++ hatékonyságával.

87 Mobilfejlesztés keresztplatformokon 87 Qt - Keresztplatformon - Android Qt 5.3-tól Android platform kezelés letölthető integrált változatban Szükséges komponensek: Android SDK Android NDK Szükséges beállítások a Tools/Options menüben Android eszköz kiválasztása: beépített Kit kezelés Példa: Qt alkalmazás fordítás és telepítés Android eszközön

88 Mobilfejlesztés keresztplatformokon 88 Qt - Keresztplatformon - Embedded Linux Custom Linux eszközre fordításra alkalmas framework előállítása. Host: Ubuntu Target: Raspberry Pi Kapcsolat: ethernet hálózat (A fordítási folyamat több órát vesz igénybe, ezért az órán kész image-ekből építkezünk.)

89 Mobilfejlesztés keresztplatformokon 89 Qt - Keresztplatformon - Embedded Linux 1. toolchain - GCC forrás letöltése, majd a host platformon build, vagy - ha elérhető kész toolchain - letöltés és telepítés a host rendszeren. 2. Qt5 forrás letöltése. 3. Qt5 qtbase build 4. Egyéb szükséges Qt modul build 5. Qt Creator konfigurálás: RasPi Kit (device) létrehozása 6. Egyszerű Qt alkalmazás fordítás és telepítés Raspberry Pi eszközön

90 Mobilfejlesztés keresztplatformokon MOBIL FEJLESZTÉS KERESZTPLATFORMOKON Köszönöm a figyelmet!


Letölteni ppt "OOP mesterkurzus Mobilfejlesztés keresztplatformokon Fazekas István skype: i.fazekas"

Hasonló előadás


Google Hirdetések