Mobilszoftver-rendszerek fejlesztése

A tantárgy angol neve: Mobile Software System Development 

Adatlap utolsó módosítása: 2023. január 11.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Mérnökinformatikus MSc szak
Mobilszoftver-fejlesztés mellékspecializáció
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIAUMA26   2/1/0/v 5  
3. A tantárgyfelelős személy és tanszék Dr. Forstner Bertalan,
A tantárgy tanszéki weboldala https://portal.vik.bme.hu/kepzes/targyak/VIAUMB01/
4. A tantárgy előadója

Dr. Forstner Bertalan, egyetemi docens, AUT

Dr. Ekler Péter, egyetemi docens, AUT

Dr. Blázovics László, egyetemi docens, AUT
5. A tantárgy az alábbi témakörök ismeretére épít Objektumorientált programozási ismeretek. Mobilszoftver-platformok.
6. Előtanulmányi rend
Kötelező:
NEM
(TárgyEredmény( "BMEVIAUMB01", "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIAUMB01", "FELVETEL", AktualisFelev()) > 0)

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:

Mobil- és webes szoftverek (https://www.aut.bme.hu/Course/mobilesweb)

Mobilszoftver-platformok. 

7. A tantárgy célkitűzése A tantárgy célja a mobilszoftver-tervezés és fejlesztés általánosan érvényes irányelveinek bemutatása, valamint mérnöki szemlélet kialakítása a területen.
8. A tantárgy részletes tematikája

 

Előadás anyaga

1.

Az előadáson a bevezetés után a mobilszoftver-specifikáció kérdéseinek és platformválasztásnak a körüljárása történik. A formális specifikáció elkészítése mellett megvizsgáljuk a platformfüggetlen, illetve hordozható részek kiemelését. Átnézzük, milyen szempontokat kell figyelembe venni mobil alkalmazás tervezésénél.

2.

A felhasználói felület kapcsán kitérünk a képernyőképek tervezésére, illetve a fragmentációra való felkészülésre. A csak tablet- illetve csak mobiltelefon-felület tervezésének különbségeit is vizsgáljuk. Bemutatjuk a platformspecifikus vs. generikus felhasználói felület közti különbségeket. Körüljárjuk a mock alkalmazások készítésének lehetőségét. Feltárjuk, milyen felhasználói élmény emelésére alkalmas szempontokra kell figyelni.

3.

Az előadáson körbejárjuk az adatréteg tervezés kérdéseit, az adattárolás helyét, illetve a backenddel való szinkronizáció lehetőségeit, típusait. Bemutatunk elterjedt mobilos ORM megoldásokat.

4.

A tanóra témája a Kommunikációs réteg tervezése. Bemutatjuk, hogyan kell egyedi kommunikációs protokoll tervezni és leírni, megvalósítani. Átvesszük az kapcsolódó eljárásokat és technikákat (mint a REST, az XML vs. JSON, illetve különböző, ezt támogató kódkönyvtárak). Megvizsgáljuk a Push üzenetek szerepét és használatát. Megvizsgáljuk a kommunikációs réteg tesztelésének módjait, illetve további stratégiákat (pl. Cache, hálózat elérhetősége).

5.

A mobil alkalmazások kapcsán vizsgáljuk a közösségi rendszerekkel való integráció lehetőségét. Ennek kapcsán részletesebben nézzük az OAuth megvalósítását. Áttekintjük a gyakori közösségi site-ok szolgáltatásait és integrációjukat.

6.

Az óra tematikája a „Backend as a service” koncepció bemutatása, elemzése, illetve használata. Ennek kapcsán megvizsgálunk több BaaS típust és képességeiket.

7.

Az előadáson a csapatban történő mobilszoftver fejlesztés kihívásaival foglalkozunk. Ennek részeként áttekintjük a verziókövetés, build szerverek, continuous integration, illetve a kódmetrika és automatikus kódmetrika report készítésének lehetőségeit.

8.

Az előadás témája a külső (vezetéknélküli) eszközök integrálása. Megvizsgáljuk a korszerű technológiákat (BLE, NFC, Zigbee/Z-Wave). Emellett szintén az óra anyaga a hordható informatika és integrációja (Google wear, okosszemüveg, orvosi eszközök stb.)

9.

Az óra keretein belül megismerkedünk a mobilszoftverek tesztelési kérdéseivel, illetve a TDD, BDD módszertanokkal.

10.

A tesztelési kérdések kapcsán ezen az előadáson a felhasználói felület tesztekkel, automatizált UI teszteléssel foglalkozunk.

11.

A tanóra anyaga az analitikai és loggolási funkciók beépítése, illetve ezekhez külső szolgáltatások integrációja. Az óra bemutatja a crash reporting megoldásokat és jelentőségüket. Az analitika egy területeként kitérünk a felhasználói felület használatának mérésére, hőtérkép készítésére, illetve az A/B tesztelésre.

12.

Bemutatjuk a mobil piacterekre lépés feladatait, az alkalmazás publikálás elemeit. Az előadás bemutatja, hogyan tervezzük meg a mobil alkalmazásunk béta-programját.

13.

Áttekintjük az elterjedt alkalmazás-finanszírozási modelleket, úgymint: paid, ad-supported, freemium, in-app purchase, enterprise, illetve ezek szoftveres támogatását. Szintén elemezzük a szoftver életciklus kezelés és frissítés módjait.

 

 

 

 

Gyakorlat anyaga

1.

A gyakorlat során konkrét, informális funkcionális specifikációból kiindulva készítünk formális funkcionális specifikációt mobilszoftverhez.  gyakorlat része a képernyőterveknek az elméletben megismert eszközökkel való megtervezése is.

2.

Az előző gyakorlaton specifikált alkalmazáshoz adatréteget, illetve kommunikációs protokollt tervezünk. Emellett a gyakorlatban kipróbálunk különböző szinkronizációs modelleket.

3.

A gyakorlat során megvizsgáljuk, hogyan lehet kiváltani egyes funkciókat konkrét Backend-as-a-Service használatával.

4.

A gyakorlat során a konkrét példán keresztül nézzük meg a verziókövetés és build szerver használatát, illetve a continouos integration szerver működését.

5.

Ezen a gyakorlaton a konkrét példa kiegészítésével a felahsználói felület tesztelésének módszereit próbáljuk ki.

6.

A gyakorlat folyamán az alkalmazáshoz konkrét analitika és crash reporting kódkönyvtárat választunk és építünk be.

7.

A gyakorlat célja az A/B tesztelés beépítése az eddig megvalósított alkalmazásba. Ezután a piactérre lépés folyamatát egy adott piactéren próbáljuk ki.

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

Előadás és gyakorlat.

A technológia fejlődéséből adódó újdonságokat előadáson bemutatjuk, és otthoni feldolgozásra további online anyagokat írunk elő.

10. Követelmények

Szorgalmi időszakban

1 db Nagyzárthelyi teljesítése legalább 40% eredménnyel

Vizsgaidőszakban

Írásbeli vizsga teljesítése legalább 40% eredménnyel.

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
Apple Inc.: The Swift Programming Language, https://itunes.apple.com/us/book/swift-programming-language/id881256329, 2014
raywenderlich.com Team, Matthijs Hollemans, Fahim Farook: iOS Apprentice Sixth Edition: Beginning iOS development with Swift 4, 2017
Reto Meier: Professional Android 4 Application Development, 2012.
Bill Phillips, Brian Hardy: Android Programming: The Big Nerd Ranch Guide 3rd edition, 2017.
Greg Nudelman: Android Design Patterns: Interaction Design Solutions for Developers, 2017.
Android Developer Training, online: http://developer.android.com/training/index.html
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ákra12
Felkészülés zárthelyire28
Házi feladat elkészítése
Kijelölt írásos tananyag elsajátítása40
Vizsgafelkészülés28
Összesen150
15. A tantárgy tematikáját kidolgozta

Dr. Forstner Bertalan, egyetemi docens, AUT

Dr. Ekler Péter, egyetemi docens, AUT

Dr. Blázovics László, egyetemi docens, AUT