Multiplatform szoftverfejlesztés

A tantárgy angol neve: Multiplatform Software Development

Adatlap utolsó módosítása: 2015. január 6.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Mérnökinformatikus MSc szak
Mobil hálózatok és szolgáltatások integrációja,
Vizuális informatika és  
Kritikus rendszerek főspecializáció

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIAUMA04 1 2/1/0/v 4  
3. A tantárgyfelelős személy és tanszék Dr. Kővári Bence András, Automatizálási és Alkalmazott Informatikai Tanszék
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

Albert István

tanársegéd

Automatizálási és Alkalmazott Informatikai Tanszék

Nagy Dániel

ügyvivő-szakértő mérnök

Automatizálási és Alkalmazott Informatikai Tanszék

Dr. Kővári Bence

adjunktus

Automatizálási és Alkalmazott Informatikai Tanszék

5. A tantárgy az alábbi témakörök ismeretére épít

C++ és webes alapismeretek.

6. Előtanulmányi rend
Ajánlott:

Nincs

7. A tantárgy célkitűzése

A tárgy célja a multiplatform szoftverfejlesztés módszereinek gyakorlatorientált bemutatása.

 

A hallgatók megismerkednek a modern C++ nyelv és a HTML5/JavaScript alapú technológiák felhasználásával a cross-platform alkalmazásfejlesztés során. Bemutatásra kerülnek a C++ 11 újdonságainak gyakorlati előnyei, a felhasználói felület megvalósításának módszerei és a különböző platformokkal való alacsonyszintű együttműködés technikái. Mélységeiben tárgyalja a HTML5, a CSS3 és a modern JavaScript alkalmazásfejlesztést könnyítő újdonságait. Kiemelt hangsúlyt kapnak a napjainkban népszerű önálló mobilkliensek és a nagyméretű rendszerek fejlesztésének kérdései.

8. A tantárgy részletes 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

Gyakorlat anyaga

           1. 

C++ alapozás, 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.

2.      

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. Cross-platform fejlesztési minták gyakorlati alkalmazásával való megismerkedés: RAII, kivételkezelés, platformfüggetlen interfészek.

3.      

Natív-platform interop problémáinak és technikáinak megismerése a C++/CX technológián keresztül.

Qt: az előadáson elhangzott alap koncepciók bemutatása kis példaalkalmazáson keresztül és egy nagyobb, összetettebb feladat elkészítése az előadás tematikájának megfelelően.

4.      

HTML5 és CSS3 felhasználás tablet és telefonos alkalmazások készítéséhez. Typescript és ECMA Script 6 fejlesztési minták használata, fontosabb könyvtárak áttekintése.

5.      

Kliensoldali keretrendszerek alkalmazása és Single page application architektúrájú mobilalkalmazás fejlesztése.

6.      

Modul-keretrendszerek megismerése, preprocesszor-technológiák alkalmazása, teljesítményelemző eszközök. Adattárolási és hálózati technológiák megismerése, aszinkron programozás elsajátítása Javascript környezetben.

7.      

PhoneGap alapjainak alkalmazása, mobilspecifikus API-k használata.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

Előadás és gyakorlat.

10. Követelmények

a.     A szorgalmi időszakban: egy zárthelyi

b.     A vizsgaidőszakban: írásbeli vizsga

c.     Elővizsga: igény szerint

  

Az aláírás megszerzésének feltétele a zárthelyi elfogadható (legalább elégséges szintű) megoldása. A vizsgára bocsátás feltétele az aláírás megléte.

 

A ZH eredményt 40%, a vizsgát 60%-kal számoljuk a jegybe.

11. Pótlási lehetőségek

A zárthelyihez a TVSZ előírásai szerint mind a szorgalmi, mind a pótlási időszakban 1-1 pótlási lehetőséget biztosítunk.

12. Konzultációs lehetőségek A tárgy előadójával történt egyeztetés szerint.
13. Jegyzet, tankönyv, felhasználható irodalom

Peter Gasston: The Modern Web, No Starch Press, 2013

Douglas Crockford: JavaScript: The Good Parts, O'Reilly Media, 2008

Stoyan Stefanov: Object-Oriented JavaScript, Packt Publishing, 2008

Ben Frain: Responsive Web Design with HTML5 and CSS3, Packt Publishing, 2012

Peter Gasston: The Book of CSS3, No Starch Press, 2011

Ethan Brown: Web Development with Node and Express, O'Reilly Media, 2014

Bjarne Stroustrup: The C++ Programming Language (4th Edition), Addison-Wesley, 2013

Bjarne Stroustrup: Programming -- Principles and Practice Using C++, Addison-Wesley, 2014

Johan Thelin: Foundations of Qt Development, 2007

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra42
Félévközi készülés órákra24
Felkészülés zárthelyire27
Felkészülés vizsgára27
  
Összesen120
15. A tantárgy tematikáját kidolgozta

Név:

Beosztás:

Tanszék, Int.:

Albert István

tanársegéd

Automatizálási és Alkalmazott Informatikai Tanszék

Fekete Krisztián

doktorandusz

Automatizálási és Alkalmazott Informatikai Tanszék

Nagy Dániel

ügyvivő-szakértő mérnök

Automatizálási és Alkalmazott Informatikai Tanszék

Dr. Kővári Bence

adjunktus

Automatizálási és Alkalmazott Informatikai Tanszék