Kotlin-based Software Development
A tantárgyleírás hatályossága
| 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) |
|
||||||||||||
| Assessment type | félévközi érdemjegy | ||||||||||||
| Credits | 2 | ||||||||||||
| Subject coordinator |
DR. Ekler Péter
position: egyetemi docens
contact:
ekler.peter@vik.bme.hu
|
||||||||||||
| 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
|
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. |
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
Tanulástámogató anyagok
Not provided.
Recommended preliminary knowledge for completing the subject
General rules
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
Curriculum placement
No curriculum placements recorded for this subject version.