K-INFO
HU
EN
Belépés

Kliensalkalmazások

Client Applications
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)
Kliensalkalmazások
Client Applications
Tantárgykód BMEVIAUBB03
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 2 0
jelleg (kapcsolt/önálló) kapcsolt
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 5
Tantárgyfelelős
Somogyi Ferenc Attila
beosztás: adjunktus
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


Az előadások tematikája:

Előadás

Előadás anyaga

1.

Bevezetés – kliensoldali fejlesztés helye, szerepe. Vékony- és vastagkliens technológiák összehasonlítása. Az alapvető webes architektúra, kliens-szerver működés, HTTP alapú kommunikáció. Backend as a Service (BaaS) fogalma. HTTPS használata.

2.

Bevezetés a web alapvető technológiáiba: HTML, CSS, Bootstrap.

3.

A JavaScript nyelv, eseménykezelés JavaScript-ben. A HTML DOM feldolgozása. Sorosítás JSON formátumban. jQuery könyvtár és használata.

4.

Haladó JavaScript konstrukciók (globális változók, closure-ök, ECMA szabványok, modulkezelés). Űrlapok szerepe és működése. LocalStorage és SessionStorage fogalma.

5.

JavaScript adatkezelés, adatkötés, input validáció (bevezetés az Angular keretrendszer működésébe). TypeScript alapok.

6.

TypeScript nyelvi elemek, fejléc fájlok, osztályok, interfészek, anonim függvények. Fordítási folyamat (transpiling), statikus típusosság, modulrendszer

7.

React (alapok). Tree reconciliation. Kompozíció minta, komponens alapú fejlesztés. React fa. Osztály és függvény komponens. Props. Komponens életciklusa. Kompozíció, komponensek egymásba ágyazása. Statikus és feltételes gyerekek, listák. Feltételes attribútumok, class és classList.

8.

React (haladó) – state és useState. stable identity és closure kérdések. Aszinkron állapotkezelés. Eseménykezelés. Felhasználói bemenet, input és társai. Props/state/mixed alapú render (controled, uncontroled). DOM-ban tárolt állapot. Validáció. Reducers.

9.

Modern mobil alkalmazások életciklusa az Android szemszögéből. Android alkalmazás komponensek és ezek szerepe, valamint tipikus használati esetek. Több képernyős alkalmazások tervezése és megvalósítása. Általános állapot mentése életciklus váltás kezelésére.

10.

Mobil alkalmazások felhasználói felületének tervezése és megvalósítása. Felhasználói felülettel kapcsolatos erőforrások bemutatása, erőforrás minősítők. Moduláris felületek készítése, liisták kezelése.

11.

Perzisztens adattárolás elveinek bemutatása mobil környezetben. Kulcs-érték alapú adattárolási lehetőségek. Relációs adatkezelés, adat szűrés, keresés és rendezés. Aszinkron feladatvégrehajtás lehetőségei: szálak, korutinok, Flow-k. Felhasználói felület értesítése aszinkron végrehajtás esetén.

12.

A modern mobil alkalmazások felhasználói felületének tervezése és megvalósítása Jetpack Compose keretrendszerrel. Recomposition fogalma, alapelvei. Modern Android architektúrák. 

13.

Mobil platformokon támogatott rövid és hosszú távú hálózati kommunikációs technológiák használata. HTTP kapcsolatok kezelése. Futásidejű engedélyek. A BroadcastReceiver, a Service és a ContentProvider komponensek használata.

14.

A félév összefoglalása. Egyéb kitekintés: multiplatform mobilfejlesztés – HTML5 alapú technológiák (Electron, Cordova)

A gyakorlatok részletes tematikája:

Az első héten nem tartunk géptermi gyakorlatot.

Gyakorlat

Gyakorlat anyaga

1.

-

2.

Hatékony fejlesztőeszközök megismerése (Visual Studio Code). Böngészők használata (Developer Toolbar). Hálózati kommunikáció figyelő eszközök (Fiddler).  Cél a HTTP kommunikáció átlátása, HTML dokumentum megjelenítése, hivatkozások letöltése.

3.

HTML gyakorlat: HTML5, CSS dokumentumok szerkesztése. Haladó CSS technikák, grid rendszerek, flexbox elrendezés. CSS keretrendszerek (Bootstrap).

4.

HTML DOM manipuláció JavaScript és jQuery segítségével, dinamikus weboldal fejlesztése AJAX technológiával.

5.

Programozás TypeScript nyelven, a fordítás folyamatának áttekintése.

6.

React alapok, komponensek és hierarchiájuk, adatátvitel komponensek között (props), állapotkezelés (useState). Listák kezelése és renderelése.

7.

React haladó állapotkezelés, események, komponensek életciklusa, felhasználói input, feltételes renderelés, validáció. Routing támogatás React Router segítségével.

8.

1. Házi feladat bemutatása.

9.

Alkalmazás életciklus gyakorlása több képernyőből álló alkalmazás fejlesztése esetén.  Életciklus váltások megfelelő kezelése, állapot mentés.

10.

Összetett felhasználói felületek tervezése és megvalósítása  mobil környezetben.

11.

Perzisztens adattárolás alapú alkalmazás fejlesztése, listák kezelése.

12.

Hálózati kommunikáció alapú alkalmazás tervezése és megvalósítása.

13.

2. Házi feladat bemutatása.

 

14.

Pót házi feladat bemutatása.


 

  A tárgy célja, hogy a hallgatók megismerjék a kliensoldali alkalmazások fejlesztésének módszereit és meghatározó technológiáit különös tekintettel a vékony kliensekre (webes és mobil kliensek). A tárgy külön figyelmet fordít arra, hogy a technológiai lehetőségeken túl a hallgatók gyakorlati problémákkal és megoldásokkal is találkozzanak a félév során. A főbb célok a következők: · A web működésének (architektúra, kommunikáció, erőforrások és webalkalmazások) és alapvető fogalmainak megértése. (alkalmazás szint: problémamegoldás ismeretek alkalmazásával, példák, feladatok önálló megoldása - K3) · A HTML, CSS, JavaScript nyelvek és ezek együttműködésének haladó szintű ismerete. (K3) · A TypeScript nyelv megismerése. (megértés szint: magyarázatok, összefüggések ismerete, esetek felismerése, besorolása - K2) · A React keretrendszer működésének megértése. (K2) · Android alapú mobilkliens alkalmazások fejlesztési módszereinek és technológiának a megismerése. (K3) · Modern Android alkalmazások architekturális és felhasználói felületi tervezése. (K3)    

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

Az előadás keretében a főbb témaköröket, koncepciókat, technológiákat mutatjuk be. A számítógépes termekben tartott gyakorlatokon az előadáson elhangzottakat gyakoroljuk konkrét példákon keresztül. A gyakorlatok egy része vezetett, ennek célja, hogy közösen, a gyakorlatvezetővel együtt találják ki a hallgatók a megoldást, amelyet a gyakorlatvezető végül részletesen megmutat. Vannak önálló feladatok is, ezek megoldása a hallgatók feladata, de a gyakorlatvezetőtől lehet segítséget kérni, ha valaki elakad.

Tanulástámogató anyagok

Online források
·       ; Christopher Nance: TypeScript; Essentials, 2014, Packt Publishing, ISBN: 978- 1783985760; Alex Banks, Eve Porcello, Learning React: Modern Patterns for Developing React Apps- Second Edition, 2020, O'Reilly Media, Inc., ISBN: 978-1492051725; Forstner Bertalan, Ekler Péter,; Kelényi Imre, Bevezetés a mobilprogramozásba, SZAK Kiadó Kft., ISBN:; 9789639863019; Ekler Péter, Fehér Marcell,; Forstner Bertalan, Kelényi Imre, Android-alapú szoftverfejlesztés, SZAK Kiadó; Kft., ISBN: 9789639863279; Bruce Lawson, Remy Sharp,; Introducing HTML5 2nd, New Riders, ISBN: 9780321784421; Elisabeth Robson, Eric Freeman,; Head First HTML with CSS & XHTML, O’Reilly, ISBN: 9780596101978; David Flanagan, JavaScript: The; Definitive Guide, 6th Edition, O’Reilly, ISBN: 9780596805524; Jonathan Chaffer, Karl Swedberg,; Learning jQuery 3rd, O’Reilly, ISBN: 9781849516549

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)
Objektum orientált programozás alapjai Java és C# nyelveken.
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)
Objektum orientált programozás alapjai Java és C# nyelveken.
Általános szabályok
Követelmények:   A szorgalmi időszakban: A tárgyhoz 2 házi feladat (részteljesítmény értékelés) tartozik, az első webes témakörben, a második mobilfejlesztés témakörben. Az első feladat bemutatásának határideje a 8. heti, a másodiké a 13. heti gyakorlat alkalom. A házi feladatokra 18 és 12 pont kapható, amelyeknek egyenként 50%-át el kell érni.A házi feladat beszedéseken túl, 10 érdemi számítógépes gyakorlatot tartunk. A webes gyakorlatoknál 2, a mobilos gyakorlatoknál 1 hiányzás lehetséges, tehát legalább 4 webes és legalább 3 mobilos gyakorlaton jelen kell lenni.A gyakorlatokra összesen 10 pont kapható (gyakorlatonként maximum 1 pont), ebből  legalább 5 pontot kell elérni. A pontok a gyakorlaton elvégzett vezetett és önálló feladatok alapján járnak.A tárgyból zárthelyit nem tartunk. A félév végi aláírás feltételei: Mindkét házi feladat sikeres bemutatása és legalább 50-50% elérése.Legalább 4 webes és 3 mobilos gyakorlaton való részvétel és összesen 5 pont elérése a maximális 10 pontból. A vizsgaidőszakban: A vizsgaidőszakban írásbeli vizsgát tartunk, amely 60 pontos, ebből legalább 30 pontot el kell érni a sikerességhez. Az osztályzat megállapításának módja: 1. Házi feladat: max. 18 pont2. Házi feladat: max. 12 pontGyakorlatok: max. 10 pontVizsga: max. 60 pont   88– 100: jeles 75 – 87: jó 62 – 74: közepes 50 – 61: elégséges 0 – 49: elégtelen   Pótlási lehetőségek: A két házi feladat közül az egyik házi feladat pótlólagos leadása a pótlási időszakban kijelölt időpontig lehetséges.   Gyakorlatok pótlására nincs lehetőség.
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 megadva.

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.