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: 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
    VIAUMA25   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/VIAUMA05/
    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

    Tóth Tibor, tanszéki mérnök, AUT

    Pásztor Dániel, doktorandusz, AUT

    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( "BMEVIAUMA05", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUMA05", "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.

    Megismerkedünk a Flutter keretrendszer felépítésével, működésével. Megvizsgáljuk a Dart programozási nyelv érdekességeit, különlegességeit, illetve eltéréseit más nyelvekhez képest.

    13.

    A Flutter fő komponensének, a Widgetnek az ismertetése kerül sor. Pár egyszerű felületi elem kerül bemutatásra. Megismerjük a StatelessWidget és StatefulWidget osztályokat. Megvizsgáljuk a Material Design által használt elemeket.

    14.

    Megvizsgáljuk egy általános Flutter projekt felépítését. Ismertetésre kerül az oldalak közötti navigációhoz használt Navigator osztály. Végül a kódgenerátorok fontossága kerül bemutatásra.

     
     

     

    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 bemutatá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 egy egyszerűbb Flutter alkalmazás elkészítésével ismételjük át az előadás elméleti anyagait.

    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
    Xamarin Developer portal: https://developer.xamarin.com/ 
    Xamarin.Forms: https://www.xamarin.com/forms 
    Charles Petzold: Creating Mobile Apps with Xamarin.Forms, 2015.
    Flutter Docs: https://docs.flutter.dev/

    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

    Tóth Tibor, tanszéki mérnök, AUT