Kotlin Multiplatform alapú szoftverfejlesztés

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

Adatlap utolsó módosítása: 2025. szeptember 29.

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 Dr. 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

tanársegéd

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