Kliensoldali Fejlesztés
2023 tavaszi szemeszterA tantárgy célja, hogy a hallgatók megfelelő ismereteket szerezzenek a kliensoldali fejlesztés témakörében. Megtanulják a web alapjaként szolgáló HTML leíró nyelvet, kiegészítve a stíluslapokkal CSS, így saját struktúrákat, elrendezéseket képesek kialakítani. Megtanulnak használni külső stíluskönyvtárakat is (pl. Bootstrap, Material UI stb.). Megtanulják a JavaScript kliensoldali nyelv alapvető működését, nyelvi sajátosságait. Megismerkednek a következő fogalmakkal: DOM, Web APIs, events, JSON, jQuery, AJAX, TypeScript, lifecycle, cookie. Megismerkednek a Vue keretrendszer alapjaival, adatkötéssel, CDN felhasználással. Megismerkednek az Angular keretrendszerrel részletesebben.
Minden információ a Teams csoportban került kihirdetésre a tárgyat aktuálisan végző hallgatók számára.
GitHub Repo
A tárgy előadásain felhasznált és bemutatott kész kódok, valamint a laborgyakorlatokhoz tartozó workshop feladatok.
Modul 1. - HTML és CSS alapok
Kliensoldali fejlesztéssel kapcsolatos tématerületek áttekintése. A leíró nyelvek megismerése (HTML, markdown, Tex). A szerver-kliens alapú kommunikáció folyamata. Alapvető HTML oldal létrehozása és saját stílusokkal történő kiegészítése CSS segítségével. A head elem részletes bemutatása.
Modul 2. - HTML és CSS haladó ismeretek
A CSS haladó funkcióinak valamint további HTML elemeknek a megismerése. Oldalstruktúra kialakítása (div, flexbox, grid). Webergonómia, tipográfia, UI és UX alapismeretek. Reszponzív alkalmazás készítésének alapelvei. CSS extra lehetőségek.
Modul 3. - JavaScript alapok, nyelvi sajátosságok
A JavaScript nyelv története, nyelvi sajátosságai (típusok, változótípusok, operátorok, függvények, objektumok és osztályok). A DOM megismerése. DOM elemek lekérdezése és módosítása. Felületi elemek programozása. Stílusok és stíluslapok programozott előállítása. Oldalbetöltés folyamata. Események kezelése.
Modul 4. - JavaScript középhaladó ismeretek
Haladó eseménykezelés a JavaScript-ben. Események paraméterezése, eseményobjektum, események továbbadása (buborékozás, delegálás), saját események létrehozása. Gyakorlati feladatmegoldások (interaktív to do lista készítése, automatizált képcserélés, rajzolás, felhasználó eltérítése (~erőltetett hirdetés)).
Modul 5. - JavaScript haladó ismeretek I.
További JS nyelvi elemek és adatszerkezetek használata. Web APIk és a BOM megismerése. Kódszervezés modulba rendezett file-ok segítségével. Egységbezárás osztályok esetén és a this kulcsszó vonatkozása. Adat helyének meghatározása, illetve az adat leképezése generáláson keresztül. Imperatív és deklaratív felhasználói felület kezelése. Progresszív webalkalmazás (weboldal vs webalkalmazás) fejlesztésének bemutatása, a GD és PE koncepciókon keresztül.
Modul 6. - JavaScript haladó ismeretek II.
Haladó ismeretek bővítése az alábbi fogalmak megismerésével: callback függvény, promise-ok létrehozása és kezelése, az async-await páros felhasználása. A CORS jelenség bemutatása. Beépített tömb metódusok megismerése és használata. Komplex feladat megoldása backend API hívásokkal (Fetch API-t és Promise-okat felhasználva), melyeken keresztül lehet hallgatókat listázni, új hallgatót felvenni, meglévő hallgatót módosítani.
Modul 7: JavaScript haladó ismeretek III.
Haladó ismeretek bővítése a JS működési hátterének megismerésével. JS Engine és Runtime fogalmak megismerése és a hozzájuk szorosan kapcsolódó további fogalmak (compilation, interpretation, JIT, AST, event loop, execution context, call stack, scope chain, hositing, TDZ). Valódi párhuzamosságra alkalmas módszer megismerése. Az AJAX technológia és annak jelentőségének megismerése.
Modul 8: JS Keretrendszerek, Vue alapok
A JavaScript keretrendszerek és library közötti különbség bemutatása. A jQuery megismerése, történelmi áttekintése. A JavaScript aktuális helyzete a piacon (state of JS). Template engine-k és a virtual DOM jelentőségének bemutatása a modern keretrendszerek esetén. A Vue keretrendszer bemutatása (felhasználása vue cli, illetve CDN-en keresztül), strukturális felépítése, vue2 és vue3 közötti különbségek ismertetése. Gyakorlati alkalmazás létrehozása Vue segítségével (adatkötés és API kezelés bemutatása), a vue lifecycle megismerésével. Komplex gyakorlati alkalmazás létrehozása komponens alapú fejlesztéssel.
Modul 9: TypeScript, Angular alapok
A tech stack fogalmának megismerése és az elterjedt alternatívák vizsgálata. A TypeScript nyelv megismerése, alapvető példák bemutatása. Angular projekt létrehozására szolgáló opciók megismerése. Angular projekt futtatása, Angular CLI-on keresztül (ng serve), vagy NPM-en keresztül (npm start). Angular alkalmazás fájlstruktúrájának megismerése, valamint az alapvető nyelvi elemek megismerése (ciklus, if, adatkötés, típusosság).
Modul 10: Angular középhaladó ismeretek
To Do alkalmazás készítése Angular segítségével. Adatkötés (tömb, input mezők) és típusok (TypeScript) használata. Keretrendszeri elemek használata: ngFor, click, class és value adatkötése. Fetch API használata.
Modul 11: Angular haladó ismeretek I.
Több komponensből felépülő, User és Comment kezelő CRUD alkalmazás készítése Angular keretrendszerben. Routing felhasználás a navigációban. Komponensek közötti kommunikáció, adattovábbítás. Bootstrap elemek felhasználása.
Modul 12: Angular haladó ismeretek II.
Több komponensből felépülő, Teacher és Subject (valamint a köztük található reláció) kezelő CRUD alkalmazás készítése Angular keretrendszerben. Routing felhasználás a navigációban. Auth guard alkalmazása (csak authentikált felhasználók számára elérhető komponensek). Komponensek közötti kommunikáció, adattovábbítás. Angular Material UI és annak komponenseinek felhasználása. Regisztráció és bejelentkezés implementálása JWT token és localstorage segítségével.