Mobilszoftver-platformok

A tantárgy angol neve: Mobile Software Platforms

Adatlap utolsó módosítása: 2018. február 4.

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
VIAUMA05 1 2/1/0/f 4  
3. A tantárgyfelelős személy és tanszék Dr. Forstner Bertalan,
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

Dr. Forstner Bertalan

egyetemi docens

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

Dr. Ekler Péter

egyetemi docens

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

Dr. Blázovics László

egyetemi adjunktus

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

 

 

 

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

Objektumorientált programozási ismeretek. Szoftvertechnikák. Mobil és webes szoftverek.

6. Előtanulmányi rend
Kötelező:
NEM ( TárgyEredmény( "BMEVIAUM125" , "jegy" , _ ) >= 2
VAGY TárgyEredmény("BMEVIAUM125", "FELVETEL", AktualisFelev()) > 0
VAGY
TárgyEredmény( "BMEVIAUMA25" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIAUMA25", "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)

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

A tárgy célja, hogy a hallgatókkal megismertesse a tipikus, mobilszoftvert alkalmazó rendszereket, valamint a szoftverek kialakításához szükséges, legelterjedtebb megközelítéseket és platformokat.

8. A tantárgy részletes tematikája

 

Előadás anyaga

1.

Ismertetésre kerülnek a mobilplatformokhoz kapcsolódó alapelvek. Áttekintjük az aktuálisan legelterjedtebb platformokat. Megismerkedünk a platformfüggetlenség és keresztplatformos fejlesztés fogalmaival.

2.

Áttekintjük az Android platform alapjait és a főbb alkalmazás komponenseket mélyebb szinten. Alkalmazások lazán csatolt architektúrája, komponensek kommunikációja. Az előadás részét képezi az instant (telepítés nélküli) alkalmazások bemutatása is.

3.

Az előadás témája az összetett felhasználói felülettervezés Android környezetben, layout-ok és vezérlők felhasználása, testreszabása, képernyő méret függetlenség, tablet, telefon, és egyéb eszköz egyidejű támogatása. Megvizsgáljuk a Fragmentek és a ConstraintLayout működését.

4.

Áttekintjük a hálózati kommunikáció lehetőségeit Android környezetben. Megvizsgáljuk, hogyan lehet elérni a beépített alkalmazásokat, feliratkozni rendszer eseményekre és felüldefiniálni az alapértelmezett viselkedést.

5.

Az előadáson egyrészt a  Google Play szolgáltatásaival, másrészt pedig a helyfüggő Android alkalmazások készítésével foglalkozunk (fused location, proximity alert stb.) Megismerkedünk a térképek és overlay megjelenítési technikák használatával.

6.

Az előadás fő témája az iOS platform alapjainak bemutatása. Megismerkedünk a platform jellegzetességeivel és a Swift programozási nyelv alapjaival.

7.

Az előadás témája a felhasználói felületek készítése iOS alkalmazásokhoz: Storyboard, Segue, View Controllerek bemutatása. Áttekintjük a platformra jellemző design alapelveket. Megismerkedünk a többnézetes iOS alkalmazások készítésének alapjaival (Navigation Controller, Tab Bar Controller).

8.

Az előadáson ismertetjük az egyik leggyakrabban használt iOS-es komponenst, a Table View-t.  Megismerjük az iOS alkalmazások életciklusát. Szó lesz az animációkról és az alkalmazások közti kommunikációs lehetőségekről. Áttekintjük az alkalmazások és a rendszer védelmi mechanizmusait (pl. sandboxing) és néhány adattárolási megoldást.

9.

Az előadás témája az Apple fejlesztői szolgáltatások ismertetése (pl. Push Notification, iCloud). Megvizsgáljuk a rendszeralkalmazások kibővítésének lehetőségeit, és az alkalmazások közötti integrációs lehetőségeket (pl. widgetek és dokumentumszolgáltatók).

10.

Bemutatjuk a keresztplatformos mobil alkalmazás fejlesztés koncepcióját. Megvizsgáljuk a .NET alapú Xamarin keretrendszert és fejlesztőkörnyezet és fejlesztési folyamatot. Ismertetjük a szorosan kapcsolódó szoftverfejlesztési technikákat, tervezési mintákat (DI, IoC).

11.

Platformfüggetlen felhasználói felület programozása Xamarin.Forms keretrendszerrel XAML nyelven. Áttekintjük a legfontosabb koncepciókat: vezérlők, erőforrások, stílusok, navigáció. Továbbá téma az MVVM tervezési minta alkalmazása Xamarin.Forms alkalmazások esetében.

12.

Áttekintjük a webes technológiák mobil fejlesztési aspektusait, webes keretrendszerek összehasonlítása, legfontosabb webes ismeretek átismétlése mobil alkalmazások szempontjából. Bevezetés a React keretrendszer használatában.

13.

Ismertetjük a React Native keresztplatformos mobil alkalmazás fejlesztési keretrendszer használatának legfontosabb elemeit, felületkészítés, natív funkciók elérése, (location, kamera stb.), tárhely- hálózatkezelés. Bemutatjuk és elemezzük a kapcsolódó tervezési mintákat (Flux, Redux)

14.

Kitekintés egyéb mobil fejlesztés szempontjából releváns webes keretrendszerek használatába, pl.: az Phonegap, Ionic, Titanium, Progressive Web Applications (PWA).

 

 

Gyakorlat anyaga

1.

A gyakorlat keretein belül megismerkedünk a több komponensből álló Android alkalmazások fejlesztésével, a komponensek közti kommunikációval és az állapotmentéssel.

2.

A gyakorlat témái a Fragment és ConstraintLayout alapú Android alkalmazástervezés adatbázis támogatással és a hatékony adatkezelési módszerek alkalmazása.

3.

A gyakorlaton az Android hálózati kommunikációt és térképhasználatot nézzük át példákon keresztül. Külső osztálykönyvtárak integrálása. Szintén a gyakorlat része a speciális Play szolgáltatások bemtatása, mint például az Activity recognition.

4.

Swift programozás: a gyakorlat keretein belül megismerjük a programozási nyelv alapelveit és funkcióit. A megismert új fogalmakat kipróbáljuk Playground segítségével. Áttekintjük az iOS alkalmazások architekúráját, valamint a kód és felhasználói felület közötti kapcsolatot (Outletek és Actionök).

5.

A gyakorlaton megismerkedünk a perzisztens adattárolást elősegítő Core Data keretrendszerrel, a leggyakrabban használt kommunikációs technológiákkal, a helymeghatározással kapcsolatos megoldásokkal. Szó lesz a különböző szenzorok kezeléséről, az értesítésekről és a multimédiás lehetőségekről.

6.

A gyakorlaton megismerkedünk a Xamarin alkalmazások fejlesztésével. Felületet készítünk natív technológiával és XAML nyelven, gyakoroljuk az MVVM és DI tervezési minta használatát.

7.

A gyakorlaton megismerkedünk a React Native webes keretrendszerrel történő fejlesztéssel. Egyszerűbb felületek készítünk el, kipróbáljuk a kapcsolódó tervezési minták használatát.

 

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 félév lezárásának módja: félévközi jegy.

A félévközi jegy megszerzésének feltétele a szorgalmi időszakban megírandó két  darab zárthelyi dolgozat sikeres teljesítése. A félévközi jegyet a két dolgozatra kapott osztályzat átlaga adja.

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

Xamarin Developer portal: https://developer.xamarin.com/

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árthelyire40
Házi feladat elkészítése0
Kijelölt írásos tananyag elsajátítása14
Vizsgafelkészülés0
Összesen120
15. A tantárgy tematikáját kidolgozta

Név:

Beosztás:

Tanszék, Int.:

Dr. Kelényi Imre

egyetemi adjunktus

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

Dr. Forstner Bertalan

egyetemi docens

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

Dr. Ekler Péter

egyetemi adjunktus

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