K-INFO
HU
EN
Belépés

Multiplatform szoftverfejlesztés

Multiplatform Software Development
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Tantárgy neve (magyarul, angolul)
Multiplatform szoftverfejlesztés
Multiplatform Software Development
Tantárgykód BMEVIAUMA04
Tantárgyjelleg
Képzési szint
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 1 0
jelleg (kapcsolt/önálló) kapcsolt
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 4
Tantárgyfelelős
Dr. Gulyás Gábor György
elérhetőség: gulyas@aut.bme.hu
Tantárgyat gondozó oktatási szervezeti egység
Automatizálási és Alkalmazott Informatikai Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala
Tantárgy elsődleges mintatantervi jellege
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

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.

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.

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

Előadás és gyakorlat.

Tanulástámogató anyagok

Online források
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; 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

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
C++ és webes alapismeretek.
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
C++ és webes alapismeretek.
Általános szabályok
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. 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.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás

Nincs megadva.

Ajánlott tantárgyak
Nincs
A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.