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ó    

    Kotlin Multiplatform alapú szoftverfejlesztés

    A tantárgy angol neve: Kotlin Multiplatform-based Software Development

    Adatlap utolsó módosítása: 2024. november 22.

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

    Mérnökinformatikus szak

    Villamosmérnöki szak

    Szabadon választható tárgy
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUBXAV084-00   2/2/0/v 4  
    3. A tantárgyfelelős személy és tanszék Somogyi Ferenc Attila,
    4. A tantárgy előadója

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Somogyi Ferenc

    adjunktus

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

    Dr. Ekler Péter

    docens

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

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

    Objektumorientált programozási ismeretek, Java alapok. A tárgy nem épít a Kotlin nyelv átfogó ismeretére, a szükséges nyelvi elemek bemutatása a tárgy részét képzi.

    6. Előtanulmányi rend
    Ajánlott:
    -
    7. A tantárgy célkitűzése

    A Kotlin Multiplatform (KMP) egy modern, hatékony megoldást kínál a különböző platformokra (Android, iOS, Web, Desktop) szánt alkalmazások fejlesztésére. A tárgy célja, hogy megismertesse a hallgatókat a KMP alapjaival, lehetőségeivel és legjobb gyakorlataival. A tárgy keretei között a hallgatók megismerhetik a modern cross-platform szoftverfejlesztés alapjait. A tárgy kitér a különböző platformok közötti megosztott, közös kód lehetőségeire és gyakorlati használatára, részletezve a közös felhasználói felület kialakítását, a megosztott kód lehetőségeit és a közös külső könyvtárak használatát. Ezen felül bemutatásra kerül a Kotlin Multiplatform használata mobilos, webes és desktop környezetekben. A tárgy kitér továbbá a szoftverfejlesztés további aspektusaira a Kotlin Multiplatform használatával, úgymint tesztelés, aszinkron programozás lehetőségei, hálózati kommunikáció, adatkezelés, CI/CD rendszerek használata, projekt kiadás és karbantartás.

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

    Előadások:

    Hét

    Előadás anyaga

    1.

    Kotlin Multiplatform bevezetés. Az első előadás során áttekintjük a Kotlin Multiplatform (KMP) alapjait. Ismertetésre kerül a KMP célja, előnyei, és a platformok közötti kódmegosztás alapelvei. Ismertetjük a Kotlin nyelv alapjait.

    2.

    Közös felhasználói felület készítése Compose Multiplatformmal. Ebben az előadásban megismerkedünk a Compose Multiplatformmal, amely a multiplatform UI fejlesztés egyik leghatékonyabb eszköze. Bemutatjuk, hogyan lehet közös felhasználói felületeket létrehozni különböző platformokra.

    3.

    Platformok közötti kódmegosztás. Az előadás célja a multiplatform kódmegosztás gyakorlati megvalósítása. Megvizsgáljuk, hogyan lehet közös kódot írni különböző platformokra, valamint áttekintjük a platform-specifikus kódrészletek kezelését.

    4.

    Kotlin Multiplatform Gradle konfiguráció. Az előadás során mélyebben elmerülünk a Gradle konfigurációkban, amelyek a KMP projektekhez szükségesek. Áttekintjük a multiplatform build konfigurációkat, forráskészleteket és platform-specifikus beállításokat.

    5.

    Közös és platform-specifikus könyvtárak használata. Az előadáson bemutatjuk, hogyan lehet külső könyvtárakat használni Kotlin Multiplatform projektben. Kiemeljük a közös és platform-specifikus függőségek kezelését, és példákat mutatunk be népszerű könyvtárak használatára.

    6.

    Kotlin Multiplatform mobilfejlesztés. Az előadásban bemutatjuk a multiplatform mobilalkalmazások fejlesztésének lehetőségeit. Koncentrálunk az Android és iOS támogatásra, és áttekintjük a platform-specifikus UI rétegek kezelésének módját.

    7.

    Kotlin Multiplatform és a Web. Ebben az órában áttekintjük, hogyan lehet Kotlin Multiplatformot használni webes fejlesztéshez. Bemutatjuk a Kotlin/JS-t és a hozzá kapcsolódó technológiákat, valamint a közös kód webes felhasználásának lehetőségeit.

    8.

    Kotlin Multiplatform használata desktop alkalmazások fejlesztéséhez, tesztek írása Kotlin Multiplatform projektekhez. KMP alapú asztali alkalmazások fejlesztése, UI eszközök, Windows, macOS, Linux támogatás.

    9.

    Hálózati kommunikáció Kotlin Multiplatformban. Az előadáson megismerkedünk a multiplatform hálózati kommunikációval. Bemutatjuk, hogyan lehet REST API-kat és webszervereket használni multiplatform környezetben, különböző könyvtárak, mint például Ktor segítségével.

    10.

    Adatkezelés Kotlin Multiplatform projektekben. Az adatkezelési lehetőségeket tekintjük át KMP-ben, különös figyelmet fordítva a platformfüggetlen adatbáziskezelésre. Bemutatjuk a multiplatform adatbázis könyvtárakat, például a SQLDelight-et.

    11.

    Platform-specifikus erőforrások és UI kezelés. Az előadás során áttekintjük, hogyan kezelhetünk platform-specifikus UI-t és erőforrásokat multiplatform projektekben. Bemutatjuk a megosztott és natív felületek kezelésének módját Android és iOS esetén.

    12.

    Aszinkron programozás Kotlin Multiplatformban. Az előadásban az aszinkron programozási mintákat vizsgáljuk meg KMP-ben, különösen a Kotlin Coroutines szerepét a multiplatform projektekben. Bemutatjuk, hogyan kezelhetők az aszinkron műveletek több platformon.

    13.

    CI/CD rendszerek Kotlin Multiplatformhoz. Az előadás során áttekintjük, hogyan lehet CI/CD rendszereket bevezetni multiplatform projektek esetében. Kiemelt figyelmet fordítunk a Gradle-alapú build folyamatokra és a multiplatform projektek automatikus tesztelésére és kiadására.

    14.

    Kotlin Multiplatform projekt kiadás és karbantartás. Az utolsó előadásban áttekintjük, hogyan történik egy multiplatform projekt kiadása különböző platformokra. Bemutatjuk az Android, iOS és webes alkalmazások kiadásának folyamatát, és a projektek hosszú távú karbantartására vonatkozó legjobb gyakorlatokat.

     

    Laborok:

    Sorszám

    Labor anyaga

    1.

    Kotlin Multiplatform bevezetés. A KMP fejlesztési környezetének kialakítása, megismerése.

    2.

    Egyszerű felhasználói felület készítése. A Compose Multiplatform felhasználása közös felhasználói felület fejlesztésére.

    3.

    Megosztott kód használata. Megosztott üzleti logika implementációja multiplatform környezetben.

    4.

    Hibakezelés és tesztelés. Unit tesztek készítése, hibakezelési lehetőségek áttekintése multiplatform logikához.

    5.

    Hálózati kommunikáció. REST API integráció és adatlekérdezés Kotlin Multiplatform projekten belül.

    6.

    Adatkezelés. Adatkezelési lehetőségek és helyi adattárolás multiplatform alkalmazásokban.

    7.

    Platform-specifikus erőforrások kezelése. Platform-specifikus funkciók implementálása KMP használatával.

     

     

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

    Gyakorlatias, alkalmazásközpontú előadások keretében.

    Kijelölt írásos anyag elsajátítása.

    A tárgyhoz összesen 7 darab online/otthon elvégezhető laboralkalom tartozik, melyeket a laborvezetők ellenőriznek.

    10. Követelmények

    A szorgalmi időszakban egy ZH megírása, a laborok 70%-ának legalább elégséges szintű teljesítése. A vizsgaidőszakban egy írásbeli vizsga sikeres teljesítése (a pontszám 40%-ának elérése).

    Az aláírás feltétele:

    - ZH-n legalább 40% elérése.

    - Laborok 70%-ának legalább elégségesre való teljesítése.

    A laborok pontszáma a legjobb 5 (70%) laboralkalom pontszámából tevődik össze, egyenlő súlyozással. Az érdemjegy a ZH pontszámból, a laborok pontszámából és a vizsga pontszámából számítandó, 20%-30%-50% súlyokkal.

    A vizsga kiváltható egy opcionális házi feladat elkészítésével a félév során. Ebben az esetben az érdemjegy a ZH pontszámból, a laborok pontszámából és a házi feladat pontszámából számítandó, 20%-30%-50% súlyokkal.

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

    A zárthelyi, továbbá 1 labor pótolható a pótlási héten.

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

    Igény szerint, az oktatókkal egyeztetve.

    13. Jegyzet, tankönyv, felhasználható irodalom

    A tárgy weboldalán elhelyezett írásos anyagok.

     

    “Simplifying Application Development with Kotlin Multiplatform Mobile” by Kevin Galligan and Michael Bailey, 2022. ISBN: 9781492097550

    “Kotlin Programming: The Big Nerd Ranch Guide” by Josh Skeen and David Greenhalgh (2nd Edition, 2021). ISBN: 978-0136881820

    “Kotlin Multiplatform by Tutorials: Building Cross-Platform Apps” by Kevin Galligan, Guillaume Laforge, and others (2021). ISBN: 978-1950325465

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra28
    Félévközi készülés órákra6
    Felkészülés zárthelyire14
    Laborok távoli elvégzése
    42
    Vizsgafelkészülés30
    Összesen120
    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Somogyi Ferenc

    adjunktus

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

    Dr. Ekler Péter

    docens

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

    Somogyi Norbert Zsolt

    doktorandusz

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

    Gazdi László

    tanársegéd

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

    Pásztor Dániel

    tanársegéd

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