Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Multiplatform szoftverfejlesztés

    A tantárgy angol neve: Cross-Platform Software Development

    Adatlap utolsó módosítása: 2014. március 28.

    Tantárgy lejárati dátuma: 2015. január 31.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Mérnök-informatikus Szak
    Villamosmérnök Szak

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUAV20   2/0/2/f 4  
    3. A tantárgyfelelős személy és tanszék Dr. Kővári Bence András,
    4. A tantárgy előadója

    Név:

    Beosztás:

    Tanszék, Int.:

    Albert István

    tanársegéd

    Automatizálási és Alkalmazott Informatikai Tanszék

    Nagy Dániel

    ügyvivő-szakértő mérnök

    Automatizálási és Alkalmazott Informatikai Tanszék

    Dr Kővári Bence

    adjunktus

    Automatizálási és Alkalmazott Informatikai Tanszék

    5. A tantárgy az alábbi témakörök ismeretére épít

    C++ és webes alapismeretek

    6. Előtanulmányi rend
    Ajánlott:
    -
    7. A tantárgy célkitűzése
    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.

    8. A tantárgy részletes tematikája


    Laboron az aktuális heti előadás anyagára épülő kisalkalmazások készítése történik. Az előadások tematikája:

    Hét

    Előadás anyaga

    1.

    Bevezetés, multiplatform fejlesztés előnyei, hátrányai. Miről lesz szó a félévben:

    ·         Áttekintés: C, Java, .NET, Flash/Air, Mono Game.

    ·         HTML alapú OS-ek.

    ·         Lehetőségek: C++, HTML5/JS, egyéb technológiák

    2.

    C++ ismétlés, Fejlesztőeszközök, fordítók, C++ 11, új nyelvi funkciók 1: auto, range-based for, enum class, nullptr, override/final

    3.

    C++ 11 új nyelvi funkciók 2: rvalue referenciák/move, lambda, default/delete, initializer lists

    4.

    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

    5.

    Natív réteg és a platform együttműködése, interoperabilitás: C++/CX, JNI, Objective-C

    6.

    Qt 1: bevezetés, Qt object model, gyűjtemény osztályok, fa, élettartam, sharing, signal-slot koncepció, események

    7.

    Qt 2: koordináta rendszer, rajzolás, QML, hálózat elérés, többnyelvűség, erőforrások

    8.

    Tablet és mobil alkalmazás felhasználói felületének kialakítása HTML és CSS segítségével. Modernizer.

    9.

    Typescript/ECMA Script 6 alapú, objektum-orientált alkalmazás fejlesztés.

    10.

    Zárthelyi

    11.

    Mobil UI, Single page application architektúra, kliensoldali keretrendszerek.

    12.

    Nagy alkalmazás fejlesztése: architekturális minták, modulok, preprocesszorok, minifikálás, teljesítményelemzés.

    13.

    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.

    14.

    Natív HTML/JS alkalmazások: PhoneGap, Titanium (benne: location, kamera, natív mobil funkciók elérése). Node.js.

     

    Hét

    Laborgyakorlatok anyaga

    1.

    C++ alapozás, megismerkedés a laborok során használt környezettel és fejlesztőeszközökkel.

    2.

    Az előadáson bemutatott új nyelvi funkciókkal való megismerkedés gyakorlati példákon keresztül: auto, range-based for, enum class, nullptr, override/final

    3.

    Az előadáson bemutatott új nyelvi funkciókkal való megismerkedés gyakorlati példákon keresztül: move-szemantika, lambda-kifejezések, initializer lists.

    4.

    Cross-platform fejlesztési minták gyakorlati alkalmazásával való megismerkedés: RAII, kivételkezelés, platformfüggetlen interfészek.

    5.

    Natív-platform interop problémáinak és technikáinak megismerése a C++/CX technológián keresztül.

    6.

    Qt 1: az előadáson elhangzott alap koncepciók gyakorlása kis példaalkalmazáson keresztül

    7.

    Qt 2: egy nagyobb, összetettebb feladat elkészítése az előadás tematikájának megfelelően

    8.

    HTML5 és CSS3 felhasználás tablet és telefonos alkalmazások készítéséhez.

    9.

    Typescript és ECMA Script 6 fejlesztési minták használata, fontosabb könyvtárak áttekintése.

    10.

    Kliensoldali keretrendszerek alkalmazása.

    11.

    Single page application architektúrájú mobilalkalmazás fejlesztése.

    12.

    Modul-keretrendszerek megismerése, preprocesszor-technológiák alkalmazása, teljesítményelemző eszközök.

    13.

    Adattárolási és hálózati technológiák megismerése, aszinkron programozás elsajátítása Javascript környezetben.

    14.

    PhoneGap alapjainak alkalmazása, mobilspecifikus API-k használata.

     

     

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Előadás, laboratórium

    10. Követelmények

    A szorgalmi időszakban:

    (1) Az ismeretek átfogó és részletes áttekintését a szorgalmi időszak alatt 1 alkalommal, az évfolyam terhelési táblázata szerinti időpontban íratott nagy zárthelyivel mérjük, valamint

    (2) A gyakorlást a nagy házi feladat biztosítja, amelynek beadási határideje a szorgalmi időszak vége.

     

    A félév elismerését jelentő félév végi jegy megszerzésére akkor van lehetőség, ha a hallgató a házi feladatot megvalósító alkalmazást futtatható állapotban, dokumentációval ellátva, forráskód mellékelésével, határidőre beadta.

     

    A házi feladatot 60 %-ban számoljuk a jegybe.

    11. Pótlási lehetőségek

    A házi (otthoni) feladatot a szorgalmi időszak végéig be kell adni, annak pótlása a pótlási időszakban lehetséges. A pótlási időszak a kétciklusú képzésben az ún. pótlási hét (a szorgalmi időszak vége és a vizsgaidőszak kezdete közötti hét), az ötéves képzésben a vizsgaidőszak első 3 hete (ld. TVSZ 16. § (2)).

    A zárthelyi pótlására lehetőség van egyszer a szorgalmi időszakban, illetve egyszer a pótlási időszakban.

    12. Konzultációs lehetőségek

    Igény szerint előadóval egyeztetve. 

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

    Kontakt óra

    56

    Félévközi készülés órákra

    0

    Felkészülés a zárthelyire

    20

    Házi feladat elkészítése

    44

    Összesen

    120

    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Albert István

    tanársegéd

    Automatizálási és Alkalmazott Informatikai Tanszék

    Fekete Krisztián

    doktorandusz

    Automatizálási és Alkalmazott Informatikai Tanszék

    Nagy Dániel

    ügyvivő-szakértő mérnök

    Automatizálási és Alkalmazott Informatikai Tanszék

    Dr Kővári Bence

    adjunktus

    Automatizálási és Alkalmazott Informatikai Tanszék