Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    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, Automatizálási és Alkalmazott Informatikai Tanszék
    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)

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

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    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