K-INFO
HU
EN
Login

Kotlin-based Software Development

Kotlin alapú szoftverfejlesztés
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
Kotlin alapú szoftverfejlesztés
Kotlin-based Software Development
Subject code BMEVIAUAV41
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 2 0 0
type (linked/independent)
Assessment type félévközi érdemjegy
Credits 2
Subject coordinator
DR. Ekler Péter
position: egyetemi docens
Responsible department
Automatizálási és Alkalmazott Informatikai Tanszék
Faculty Villamosmérnöki és Informatikai Kar
Subject website https://www.aut.bme.hu/Course/kotlin
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme

Hét

Előadás anyaga

1.

A nyelv kialakulása, jellemzők, támogatott környezetek, eszközök, REPL. A szintaxis alapjai, változók, függvények, vezérlési struktúrák, kivételek. Primitív típusok, típus kikövetkeztetés.

2.

Osztályok, interfészek, data class, object, companion object, enum, class delegation. Constructorok típusai és szabályai. Typealias, property, custom getter/setter, const, beépített delegate-ek. Típus ellenőrzés és konverzió.

3.

Nullable típusok. Safe call operator, null-coalescing operator, non-null assertion, smart cast, safe cast, lateinit. Java interoperabilitási megfontolások, platform típusok.

4.

A függvény mint elsőrangú nyelvi elem. Lambdák. SAM conversion és SAM constructor. Extension, higher order, és inline függvények. A standard library collection típusai. Sequence.

5.

Lokális függvények, lambdas with receivers, infix függények, tailrec. let, apply, use és egyéb standard library függvények.

6.

Stringek és fájlok egyszerű kezelése. A Java kóddal való interoperabilitás részletes szabályai és lehetőségei.

7.

A típusrendszer speciális elemei: Any, Unit, és Nothing. Típus paraméterek, generikus függvények, típusok. Kovariancia, kontravariancia, és invariancia. Use-site variance, type projection. Type erasure, reified típusok.

8.

Operátorok felüldefiniálása, destructuring declarations, invoke, Comparable, Range, saját delegate implementációk.

9.

Aszinkron programozás a nyelv beépített lehetőségeivel. Suspending function, CoroutineContext, CoroutineScope, Channel.

10.

Domain specifikus nyelvek készítése a nyelv fejlett funkcióinak felhasználásával. Gradle Kotlin DSL.

11.

Népszerű Kotlin könyvtárak: Spek, Ktor, mockk, Koin, Arrow, Exposed.

12.

JVM környezetek: Android, Spring, JavaFX: Anko, Kotlin Android Extensions, Android-KTX. Spring Boot, routing DSL, Spring Fu. TornadoFX.

13.

Kotlin Multiplatform: KotlinJS és Kotlin/Native: multiplatform projektek felépítése és lehetőségei. JavaScript interoperabilitás, ts2kt, tesztelés. Kotlin natív környezetben.

14.

Érdekességek, a nyelv újdonságai. Contract, inline class, unsigned típusok.

  A tárgy célja, hogy a hallgatók mélységében megismerjék a Kotlin nyelvet, és képesek legyenek idiomatikusan használni, alkalmazásokat fejleszteni vele. Bemutatásra kerülnek a különböző nyelvi elemek implementációs részletei a JVM platformra koncentrálva, valamint a nyelv lehetséges felhasználási környezetei. A nyelv a modern programozási nyelvek mintapéldajaként szolgál, és megismerhető rajta keresztül számos olyan funkció és paradigma, amely más kortárs nyelvekben is elérhető.  

Learning outcomes

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

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

Előadás

Tanulástámogató anyagok

Not provided.

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(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, Java
Skill type competencies
(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
Recommended (non-compulsory) preliminary competencies
(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, Java
General rules
Követelmények: Félév közben egy ZH megírása kötelező, mely 50 pont. Továbbá egy házi feladatot kell készíteni további 50 pontért, melynek beadási határideje a szorgalmi időszak vége. Az az összegyűjtött pontok alapján alakul ki a jegy: 40, 55, 70, 85 ponthatárokkal.  A vizsgaidőszakban: - A félév elismerését jelentő félév végi jegy megszerzésére akkor van lehetőség, ha a hallgató a félév során a fenti követelményekt teljesítette. Pótlási lehetőségek: A zárthelyi pótlására a pótlási időszakban van lehetőség. A házi feladat akkor pótolható, ha szorgalmi időszakban már le lett adva egy kezdeti verzió.
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses

Not provided.

Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.