Multiplatform szoftverfejlesztés

Alapadatok
Neptun kód: 
viauma04
Gazda tanszék: 
AUT
Szak: 
BME-VIK Mérnök informatikus szak
Szint: 
MSc - Mesterképzés
Típus: 
Szakirány-/specializációtárgy
Érvényesség: 
tervezett
Célkitűzés: 
A tárgy célja a multiplatform szoftverfejlesztés módszereinek gyakorlatorientált bemutatása. A hallgatók megismerkednek a modern C++ nyelv és a HTML5/JavaScript alapú technológiák felhasználásával a cross-platform alkalmazásfejlesztés során. Bemutatásra kerülnek a C++ 11 újdonságainak gyakorlati előnyei, a felhasználói felület megvalósításának módszerei és a különböző platformokkal való alacsonyszintű együttműködés technikái. Mélységeiben tárgyalja a HTML5, a CSS3 és a modern JavaScript alkalmazásfejlesztést könnyítő újdonságait. Kiemelt hangsúlyt kapnak a napjainkban népszerű önálló mobilkliensek és a nagyméretű rendszerek fejlesztésének kérdései.

Rövid tematika

A multiplatform fejlesztés előnyei, hátrányai. Áttekintés: C, Java, .NET, Flash/Air, Mono Game. HTML alapú OS-ek. Lehetőségek: C++, HTML5/JS, egyéb technológiák. C++ ismétlés, Fejlesztőeszközök, fordítók, C++ 11, új nyelvi funkciók. Fejlesztési minták: RAII, Kivételkezelés, natív kivételek kezelése platform szinten, Crossplatform technikák, natív interfészek, implementálás platform szinten, preprocessor direktívák, template metaprogramozás. Natív réteg és a platform együttműködése, interoperabilitás: C++/CX, JNI, Objective-C. A Qt bevezetése, Qt object model, gyűjtemény osztályok, fa, élettartam, sharing, signal-slot koncepció, események. Qt koordináta rendszer, rajzolás, QML, hálózat elérés, többnyelvűség, erőforrások. A Tablet és mobil alkalmazások felhasználói felületének kialakítása HTML és CSS segítségével. Modernizer. Typescript/ECMA Script 6 alapú, objektum-orientált alkalmazásfejlesztés. Mobil UI, Single page application architektúra, kliensoldali keretrendszerek. Nagy alkalmazás fejlesztése: architekturális minták, modulok, preprocesszorok, minifikálás, teljesítményelemzés. Hibrid alkalmazások adattárolási kérdései: local storage, IndexedDB. Aszinkronitás, hálózat kezelés, real-time és két-irányú kommunikáció, SignalR/socket.io. Natív HTML/JS alkalmazások: PhoneGap, Titanium (benne: location, kamera, natív mobil funkciók elérése). Node.js.