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: Multiplatform Software Development

    Adatlap utolsó módosítása: 2015. január 6.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Mérnökinformatikus MSc szak
    Mobil hálózatok és szolgáltatások integrációja,
    Vizuális informatika és  
    Kritikus rendszerek főspecializáció

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUMA04 1 2/1/0/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Gulyás Gábor György,
    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:

    Nincs

    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

    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

    Gyakorlat anyaga

               1. 

    C++ alapozás, 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.

    2.      

    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. Cross-platform fejlesztési minták gyakorlati alkalmazásával való megismerkedés: RAII, kivételkezelés, platformfüggetlen interfészek.

    3.      

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

    Qt: az előadáson elhangzott alap koncepciók bemutatása kis példaalkalmazáson keresztül és egy nagyobb, összetettebb feladat elkészítése az előadás tematikájának megfelelően.

    4.      

    HTML5 és CSS3 felhasználás tablet és telefonos alkalmazások készítéséhez. Typescript és ECMA Script 6 fejlesztési minták használata, fontosabb könyvtárak áttekintése.

    5.      

    Kliensoldali keretrendszerek alkalmazása és Single page application architektúrájú mobilalkalmazás fejlesztése.

    6.      

    Modul-keretrendszerek megismerése, preprocesszor-technológiák alkalmazása, teljesítményelemző eszközök. Adattárolási és hálózati technológiák megismerése, aszinkron programozás elsajátítása Javascript környezetben.

    7.      

    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 és gyakorlat.

    10. Követelmények

    a.     A szorgalmi időszakban: egy zárthelyi

    b.     A vizsgaidőszakban: írásbeli vizsga

    c.     Elővizsga: igény szerint

      

    Az aláírás megszerzésének feltétele a zárthelyi elfogadható (legalább elégséges szintű) megoldása. A vizsgára bocsátás feltétele az aláírás megléte.

     

    A ZH eredményt 40%, a vizsgát 60%-kal számoljuk a jegybe.

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

    A zárthelyihez a TVSZ előírásai szerint mind a szorgalmi, mind a pótlási időszakban 1-1 pótlási lehetőséget biztosítunk.

    12. Konzultációs lehetőségek A tárgy előadójával történt egyeztetés szerint.
    13. Jegyzet, tankönyv, felhasználható irodalom

    Peter Gasston: The Modern Web, No Starch Press, 2013

    Douglas Crockford: JavaScript: The Good Parts, O'Reilly Media, 2008

    Stoyan Stefanov: Object-Oriented JavaScript, Packt Publishing, 2008

    Ben Frain: Responsive Web Design with HTML5 and CSS3, Packt Publishing, 2012

    Peter Gasston: The Book of CSS3, No Starch Press, 2011

    Ethan Brown: Web Development with Node and Express, O'Reilly Media, 2014

    Bjarne Stroustrup: The C++ Programming Language (4th Edition), Addison-Wesley, 2013

    Bjarne Stroustrup: Programming -- Principles and Practice Using C++, Addison-Wesley, 2014

    Johan Thelin: Foundations of Qt Development, 2007

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra42
    Félévközi készülés órákra24
    Felkészülés zárthelyire27
    Felkészülés vizsgára27
      
    Összesen120
    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