Cross-Platform Software Development
A tantárgyleírás hatályossága
| Subject name (Hungarian, English) |
Multiplatform szoftverfejlesztés
Cross-Platform Software Development
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Subject code | BMEVIAUAV20 | ||||||||||||
| Subject type | — | ||||||||||||
| Training Level | — | ||||||||||||
| Course types and hours (weekly/semester) |
|
||||||||||||
| Assessment type | félévközi érdemjegy | ||||||||||||
| Credits | 4 | ||||||||||||
| Subject coordinator |
DR. Kővári Bence András
position: egyetemi docens
contact:
kovari.bence@vik.bme.hu
|
||||||||||||
| Responsible department |
—
|
||||||||||||
| Faculty | |||||||||||||
| Subject website | — | ||||||||||||
| 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
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. |
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
Workload to complete the subject
No workload breakdown provided.
Validity of subject requirements
Curriculum placement
No curriculum placements recorded for this subject version.