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