Multiplatform szoftverfejlesztés
A tantárgyleírás hatályossága
| Tantárgy neve (magyarul, angolul) |
Multiplatform szoftverfejlesztés
Cross-Platform Software Development
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVIAUAV20 | ||||||||||||
| Tantárgyjelleg | — | ||||||||||||
| Képzési szint | — | ||||||||||||
| Kurzustípusok és óraszámok (heti/féléves) |
|
||||||||||||
| Tanulmányi teljesítmény/értékelés típusa | félévközi érdemjegy | ||||||||||||
| Tantárgy kreditértéke | 4 | ||||||||||||
| Tantárgyfelelős |
DR. Kővári Bence András
beosztás: egyetemi docens
elérhetőség:
kovari.bence@vik.bme.hu
|
||||||||||||
| Tantárgyat gondozó oktatási szervezeti egység |
—
|
||||||||||||
| Kar | |||||||||||||
| Tantárgy weboldala | — | ||||||||||||
| Tantárgy elsődleges mintatantervi jellege | — | ||||||||||||
| Közvetlen előkövetelmények – Erős előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Gyenge előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Párhuzamos előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Mérföldkő előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Kizáró feltétel | nincs |
Célkitűzés
Laboron az aktuális heti előadás anyagára épülő
kisalkalmazások készítése történik. Az előadások tematikája:
|
Hét |
Előadás anyaga |
|
1. |
Bevezetés, multiplatform fejlesztés előnyei, hátrányai.
Miről lesz szó a félévben: ·
Áttekintés: C, Java, .NET, Flash/Air, Mono
Game. ·
HTML alapú OS-ek. ·
Lehetőségek: C++, HTML5/JS, egyéb technológiák |
|
2. |
C++ ismétlés, Fejlesztőeszközök, fordítók, C++ 11, új
nyelvi funkciók 1: auto, range-based for, enum class, nullptr, override/final |
|
3. |
C++ 11 új nyelvi funkciók 2:
rvalue referenciák/move, lambda, default/delete, initializer lists |
|
4. |
Fejlesztési
minták: ·
RAII ·
Kivételkezelés, natív kivételek kezelése
platform szinten ·
Crossplatform technikák ·
natív interfészek, implementálás platform
szinten ·
preprocessor direktívák ·
template metaprogramozás |
|
5. |
Natív réteg és a platform
együttműködése, interoperabilitás: C++/CX, JNI, Objective-C |
|
6. |
Qt 1: bevezetés, Qt object
model, gyűjtemény osztályok, fa, élettartam, sharing, signal-slot koncepció,
események |
|
7. |
Qt 2: koordináta rendszer,
rajzolás, QML, hálózat elérés, többnyelvűség, erőforrások |
|
8. |
Tablet
és mobil alkalmazás felhasználói felületének kialakítása HTML és CSS
segítségével. Modernizer. |
|
9. |
Typescript/ECMA Script 6
alapú, objektum-orientált alkalmazás fejlesztés. |
|
10. |
Zárthelyi |
|
11. |
Mobil UI, Single page
application architektúra, kliensoldali keretrendszerek. |
|
12. |
Nagy alkalmazás
fejlesztése: architekturális minták, modulok, preprocesszorok, minifikálás,
teljesítményelemzés. |
|
13. |
Hibrid alkalmazások adattárolási
kérdései: local storage, IndexedDB. Aszinkronitás, hálózat kezelés, real-time
és két-irányú kommunikáció, SignalR/socket.io. |
|
14. |
Natív HTML/JS alkalmazások:
PhoneGap, Titanium (benne: location, kamera, natív mobil funkciók elérése).
Node.js. |
|
Hét |
Laborgyakorlatok anyaga |
|
1. |
C++ alapozás, megismerkedés a laborok során használt
környezettel és fejlesztőeszközökkel. |
|
2. |
Az előadáson bemutatott új nyelvi funkciókkal való
megismerkedés gyakorlati példákon keresztül: auto, range-based for, enum
class, nullptr, override/final |
|
3. |
Az előadáson bemutatott új
nyelvi funkciókkal való megismerkedés gyakorlati példákon keresztül:
move-szemantika, lambda-kifejezések, initializer lists. |
|
4. |
Cross-platform fejlesztési
minták gyakorlati alkalmazásával való megismerkedés: RAII, kivételkezelés,
platformfüggetlen interfészek. |
|
5. |
Natív-platform interop
problémáinak és technikáinak megismerése a C++/CX technológián keresztül. |
|
6. |
Qt 1: az előadáson
elhangzott alap koncepciók gyakorlása kis példaalkalmazáson keresztül |
|
7. |
Qt 2: egy nagyobb, összetettebb
feladat elkészítése az előadás tematikájának megfelelően |
|
8. |
HTML5 és CSS3 felhasználás
tablet és telefonos alkalmazások készítéséhez. |
|
9. |
Typescript és ECMA Script 6
fejlesztési minták használata, fontosabb könyvtárak áttekintése. |
|
10. |
Kliensoldali
keretrendszerek alkalmazása. |
|
11. |
Single page application
architektúrájú mobilalkalmazás fejlesztése. |
|
12. |
Modul-keretrendszerek
megismerése, preprocesszor-technológiák alkalmazása, teljesítményelemző
eszközök. |
|
13. |
Adattárolási és hálózati technológiák
megismerése, aszinkron programozás elsajátítása Javascript környezetben. |
|
14. |
PhoneGap alapjainak
alkalmazása, mobilspecifikus API-k használata. |
Tanulmányi eredmények
Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:
Tudás
Nincsenek rögzített tanulási eredmények.
Képességek
Nincsenek rögzített tanulási eredmények.
Attitűd
Nincsenek rögzített tanulási eredmények.
Autonómia és felelősség
Nincsenek rögzített tanulási eredmények.
Oktatási módszertan
Tanulástámogató anyagok
Nincs megadva.
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Általános szabályok
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Szorgalmi időszakban végzett teljesítményértékelések részaránya
Nincs megadva részarány.
Vizsgaidőszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Vizsgarészek részaránya
Nincs megadva részarány.
Érdemjegy megállapítása
Nincs megadva érdemjegy határ.
Jelenléti és részvételi követelmények
Nincs megadva jelenléti követelmény.
Javítás, ismétlés és pótlás különös szabályai
Nincs megadva.
Rövid leírás
Nincs megadva.
Részletes leírás
Nincs megadva.
Ajánlott tantárgyak
A tantárgy elvégzéséhez szükséges tanulmányi munka
Nincs megadva munkaidő bontás.
Tantárgykövetelmények hatályossága
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.