A MOBIL ALKALMAZÁSFEJLESZTÉS ALAPJAI

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "A MOBIL ALKALMAZÁSFEJLESZTÉS ALAPJAI"

Átírás

1 A MOBIL ALKALMAZÁSFEJLESZTÉS ALAPJAI SUMMARY OF THEOREM PPKE ITK, December 16, 2016 Written by Komporday András 2016

2 Contents 1 Az OOP alapelvei A valós világ modellezése OOP alapelvek OOP működési elvárások OOP alapfogalmak Az objektum Mezők és metódusok A szerver-kliens modell Programozási minták A minták fajtái Létrehozási minták Programtervezési paradigmák Model-View-Controller Model-View-Presenter Model-View-ViewModel Tesztelés és programtervezés A tesztek fajtái Funkcionális tesztelés Struktúrateszt OOP teszt

3 3.1.4 Inspekció Terhelési tesztek Test Driven Development, Extreme Programming Terminológia Mobil alkalmazások A technológiák előnyei és hátrányai Android Az Android felépítése Az Android projectfolyamat Az Android-fejlesztés eszközei Android Debug Bridge Az Android project szerkezete Az Actvity Az Activity életciklusa Az Android GUI Az elrendezés Néhány GUI elem: Felhasználói interakció Egyedi View, Toolbar, Fragment Egyedi View definiálása Toolbar Fragment

4 6 ios programozás Az ios felépítése Objective-C Adattárolás ios módszer Core Data Az Adatmodell Android módszer Shared preferences Internal Storage External Storage Adatbázis használata Backup Az OOP alapelvei 1.1 A valós világ modellezése Az OOP a valós világot kívánja modellezni a követező alapelvek alapján: Absztrakció: a valós világ leegyszerűsítése, hogy csak a cél eléréséhez feltétlenül szükséges részletekre koncetrálunk. Megkülönböztetés: az objektumok a valós világ egy-egy önálló egységét jelölik, és a számunra lényeges tulajdonságaik alapján különböztetjük meg őket. Osztályozás: a hasonló tulajdonságokkal rendelkező objektumokat osztá- 3

5 lyokba soroljuk. Az objektum-osztályok hordozzák az objektumok tulajdonságait, az objektumok mintáinak tekinthetők. Általánosítás, specializálás: az objektumok között állandóan különbségeket és hasonlóságokat keresünk, hogy bővebb, vagy szűkebb kategóriákba sorolhassuk őket OOP alapelvek Dinamikus kötés: egy objektum esetén futási időben dől el, hogy egy metódus melyik implementációja kerül futtatásra. OOP-ben: az a jelenség, melynek során futási időben dől el, hogy egy objektumon a statikus típus által definiált műveletet meghívva, a statikus vagy a dinamikus típus implementációja fog-e lefutni? Csak akkor jön létre, ha van felüldefiniált (nem túlterehelt) metódus az alosztályban. Egységbe zárás: az adatok és a rajtuk végrehajtható műveletet egységet alkotnak (modern típusdefinícióval kozisztens). Altípusos polimorfizmus: egy rögzített típusú változó a típus altípusainak példányaira is mutathat. Statikus típus: a deklarációnál használt típus. Dinamikus típus: a véltozó által mutatott objektum tényleges típusa. A dinamikus típus vagy megegyezik a statikussal, vagy annak egy leszármazottja. A statikus típus állandó, dinamikus változhat a program futása során. Öröklődés, delegáció: egy adott osztályból lehetőség van képezni egy másik osztályt: ez módosíthatja, bővítheti az eredetit. Az osztály adattagjait, metódusait felhasználva, új funkciókat vezet be. Tervezési szintű lépés. Is-A reláció. Nyílt rekurzió: speciális változó, mely egy metódus esetén elérhetővé teszi az aktuális példányt (pl. this, self ) OOP működési elvárások Egységbezárás 4

6 Információ elrejtése: az objektum belső állapotát csak egy interjace-en keresztül lehet megközelíteni. Kód újrafelhasználhatóság: példányok létrehozásával, vagy osztály továbbfejlesztésével OOP alapfogalmak Objektum: valós fogalmak, objektumok reprezentációja, modellje. Objektumosztály: Hasonló objektumok csoportja, sablon, minta a létrehozásukhoz. Metódus: egy objektum állapotát befolyásoló, manipuláló függvény, eljárás. Mező: egy objektum tulajdonságát meghatározó változó. Üzenetküldés: objektumok interakciója, definiált interface-eken keresztüli kommunikáció. Absztrakció: osztályok csoportosítása hierarchiába, implementációs tervezési eszköz. Megvalósítása az absztrakt osztály: ezek a tervezés eszközei, generalizálást, általánosítást tesznek lehetővé.hiányosan definiált osztály, vannak benne olyan funkciók, melyek nincsenek implementálva, azt a leszármazottakra bízzuk. Túlterhelés (Overload): két azonos metódus, különböző szignatúrával. A különbség a (kimenő vagy bemenő) paraméterek száma vagy típusa. Felüldefiniálás (Override): A leszármazott osztály azonos névvel és szignatúrával bevezet egy függvényt. A különbség az elfedéstől, hogy itt létrejön a dinamikus kötés (az alosztály és a szülőosztály között). Vannak nyelvek, ahol jelezni kell. Elfedés: a leszármazott osztály azonos névvel és szignatúrával bevezet egy új függvényt. Csak akkor felüldefiniálás, ha dinamikus kötés nem jön létre. Mezők és változók is fedhetik egymást adott programblokkon belül, vagy leszármazott osztályokban. 5

7 1.2 Az objektum Az objektum dfiniált, információt tartalmazó belső állapottal rendelkezik, mely állapotot saját metódusai megváltoztathatják. Feladatokat hajt végre, üzenetekkel kommunikál más objektumokkal. Egyértelműen azonosítható. Az objektumoknak életciklusa van: Létrejön (konstrukció, inicializáció), ekkro beállítódnak a kezdő értékei, típusinvariánsa. Végrehajtódnak a működéséhez szükséges tevékenységek. Működik Megszűnik: ekkor felszabadulnak az erőforrások Mezők és metódusok Az objektumok rendelkezhetnek mezpkkel és metódusokkal, melyek lehetnek objektum- és osztályszíntűek. Az objektumszintű metódusok az aktuális objektum állapotait tárolják, míg az osztályszíntűek az osztályhoz tartozú összes objektumra érvényesek. A metódusoknál ugyanígy az objektumszintűek az egyes példányokon dolgoznak, míg az osztályszíntűek az osztályokon. Az objektumok indíthatnak export és import műveleteket: az exportműveleteket más objektumok hívják (pl. getterek), az importműveletekkel pedig az objektum igényel az export szolgáltatásaihoz szükséges információt. Az objektumok műveletei emellett lehetnek létrehozó (konstruktor), állapotmegváltoztató, szelektor (kiemeli az objektum egy bizonyos részét), kiértékelő (getterek) és iterátor műveletek (bejárásokhoz) A szerver-kliens modell Kliens: aktív objektum, más objektumokon végez műveleteket, de nincs export felülete (gettere). Szerver: passzív objektum, csak exportműveletei vannak, nem módosít más objektumokat. Nincs import felülete. Ágens: általános objektum, van import és exportfelülete is. 6

8 2 Programozási minták A tervezési minták egymással együttműködő objektumok és osztályok leírásai, amelyek testreszabott formában, valamilyen általános tervezési problémát oldanak meg. OOP programnyelvek (C++? Java, Smalltalk, stb.) esetén néhány a nyelvben alapértelmezetten implementálva van (Öröklődés, Egységbe foglalás, Polimorfizmus). 7

9 2.1 A minták fajtái Létrehozási minták Abstract Factory: Interface biztosítása konkrét osztályok megadása nélkül. Builder Factory Method: Alosztályra átruházni, hogy miként kerüljön létrehozásra az objektum. Pl. egy framework többféle dokumentumot tudjon megjeleníteni az alkalmazás fajtája szerint. Megvalósítás: létrehozó absztrakt osztály, létrehozó konkrét osztály, paraméterezett gyártófüggvény. Prototype Singleton: egy osztályból csak egy példány létrehozását megengedni, és ehhez globális hozzáférési pontot biztosítani. Szerkezeti minták Adapter: az adott osztály interface-ét az ügyfelek által igényelt interface-szé alakítani. Tehát biztosítani két nem kompatibilis interface együttűködését. Bridge Composite: az objektumok faszerkezetbe rendezés, hogy az önálló objektumokat és az objektumösszetételeket egységesen tudjuk kezelni. Pl. grafikus alkalmazásban az alapelemek, illetve az alapelemek csoportosításával létrehozott összetett elemek kezelését egységesíteni. 8 Decorator Facade Flyweight Proxy: egy adott objektumot egy "képviselőn" keresztül irányítani. Akkor használható, amikor egy egyszerű objektum mutatónál rugalmasabb, kifinomultabb hivatkozás szükséges. Fajtái: távoli, virtuális, védelmi, smart (pl. referenciaszámlálás). Viselkedési minták Chain of Responsibility Command Delegate: egy adott objektum egy feladatát nem hajtja végre, hanem azt egy másik objektumnak (akár segédobjektumnak) adja tovább. Az objektum végrehajtási felelőssége is továbbadódik. Interpreter Iterator Mediator Memento Observer: objektumok közötti 1:n függőségi kapcsolat. Amikor a megfigyelt objektum megváltozik, minden tőle függő objektum értesül erről és automatikusan frissül. State Strategy Template Method Visitor

10 2.2 Programtervezési paradigmák Léteznek komplex szerkezeti programozási paradigmák, melyek a teljes program felépítését meghatározzák Model-View-Controller Ebben a paradigmában a Model az információk megjelenítésért felelős: logikai jelentést ad az adatnak. Általában része az adatelérési réteg. A View (Nézet) megjeleníti a Modelt egy felhasználói interakcióra alkalmas felületen. Jellemzően GUI. Különböző célokra különböző View-k létezhetnek ugyanazon Modelhez. A Controller (Vezérlő) feldolgozza az eseményeket (pl. felhasználói műveleteket), válaszokat küld és módosíthatja a Modelt. A vezérlés menete kb. ilyen: a felhasználó csinál valamit a View-n, ezt a Controller feldolgozza, ha szükséges, frissíti a Modelt. A View a frissített Model alapján frissíti a felhasználói felületet is. A Model-View kapcsolat egyirányú, ahol csal a View létja a Modelt Model-View-Presenter Ebben a típusban a Model ugyanazért felel, mint az MVC-ben, a View pedig a felhasználói interakció fogadása után tovébbítja azokat a Presenter felé. Két fajtája van: a Passive View, ami minden feladatot átad a Presenternek és a Suprevisor View, ami bizonyos feladatokat (amik a program szempontjából lényegtelenek) elvégez maga. A Presenter a két másik réteg között helyezkedik el, itt található a folyamatvezérlés. Feladata az adatok konverziója és továbbítása a Model és a View között Model-View-ViewModel A Microsoft MVC-forkja. Eseményvezérelt működésre tervezték. A Model ugyanaz mint eddig, a nézet pedig ugyanaz, mint az MVC-ben. A ModelView lényegében a View Modelje, egy speciális Controller, ami közvetít és konvertál a Model és a View között. Nyilvános tulajdonságokat, parancsokat és absztrakt felületeket biztosít. Az adat koncepcionális állapotát reprezentálja a Modelben lévő valós adattal szemben. 9

11 3 Tesztelés és programtervezés A szoftver verifikációjának és validációjának célja a rendszer hibáinak felfedése, meggyőződni arról, hogy a rendszer egy-egy konkrét szituációban a specifikáció szerint működik. Az a sikeres teszt, ami legalább egy hibát felfedez. 3.1 A tesztek fajtái Funkcionális tesztelés A program fekete doboz, a tesztesetek a specifikáció alapján készülnek. Nem érdekel az implementáció, így már a fejlesztés korai szakaszában elkezdődhet Struktúrateszt A tesztek a program struktúrájának és implementációjának ismeretében készülnek. Ezek ismeretében új ekvivalencia-osztályok definiálhatók. A tesztelő a tesztesetek készítésekor elemzi a kódot, hogy biztosítsa minden utasítás legalább egyszeri végrehatását OOP teszt A komponens-és integrációs tesztelés OOP rendszereknél is alkalmazható. Különbségek: a tesztelendő objektumok komponensként gyakran nagyobbak, mint az egyszerű függvények. Az objektumok lazán kütődnek, a rendszernek nincs egyértelmű teteje. Az újrafelhasznált komponensek forráskódjához nem lehet mindig hozzájutni Inspekció Célja a hiányosságok felderítése, a hibák kb 60%-a felfedhető a kód átvizsgálásával. Egy átvizsgálás során több hiba felfedezhető, míg egy teszt tobbnyire egy hibát fed fel. Nem helyettesíti a tesztelést, de sok költséges tesztet előzhet meg. 10

12 3.1.5 Terhelési tesztek A rendszereket a tervezettnék nagyobb terhelésre is tesztelni kell. Addig kell növelni a terhelést, amíg a rendszer hibázik, vagy a teljesítménye elfogadhatatlanná válik. A terhelési tesztek feladata, hogy szélsőséges körülmények között tesztelje a rendszer viselkedését. A túlterhelés nem okozhat adatvesztést, vagy szolgáltatások teljes eltűnését. Olyan hiányosságokat fedhet fel, melyek normál esetben nem okoznak rendszerhibát. Különösen fontos az osztott rendszereknél, ahol a koordinációs adatokkal túlterheli a hálózatot. A teszteket a program tervezésévek párhuzamosan kell tervezni. A program minden komponensét egyenként, illetve az összeset egységben is le kell tesztelni Test Driven Development, Extreme Programming Agilis módszer, manapság népszerű. Lényege, hogy először a teszteket írják meg, és úgy készítik a programot, hogy a fejlesztés minden szakaszában a teszteknek megfefelően működjön. Ha egy kódhoz nincs automatizált teszt, akkor hibásnak tekintük. Az XP egy TDD-t és más gyakorlatokat is magába foglaló módszertan, mely több praktika (code refactoring, inspeció, TDD, stb.) kombinálásával próbálja meg megalkotni a leghatékonyabb szoftverfejlesztési folyamatot Terminológia Test fixture: tartalmazza az adatokat, melyek a teszt végrehajtásához szükségesek. Unit test: egyszerű osztályok halmaza. Test case: teszteli egy függvényre adott válaszokat egy bizonyos, meghatározott bemenet eseté. Test suite: Test case-ek gyűjteménye. Test runner: egy szoftver, mely a teszteket futtatja, valamint az eredményekről összefoglalót hoz létre. Integrációs teszt: ellenőrzi, hogy az egyek osztályok milyen módon dolgoznak együtt. 11

13 4 Mobil alkalmazások A mobil alkalmazások fajtái átjárhatóság szerint: Mobil weboldal Webalkalmazás Hibrid alkalmazás Keresztplatform alkalmazás Natív alkalmazás Figure 1: A mobil alkalmazások áttekintése 4.1 A technológiák előnyei és hátrányai HTML5: több platformon azonnal elérhető eredmény, a felhasználó számára könnyebben hozzáférhető. Webes ismeretekkel fejleszthető. Egyszerűbb terjeszteni a frissítéseket. Alacsonyabb fejlesztési költség és nagyobb gyorsaság. Nem igényel platformonként különleges szaktudást. Natív: Eszközspecifikus képességek kihasználhatók.nagyobb teljesítmény és biztonság. Magasabb felhasználói élmény. Az alkalmazhatóság alkalmazástól függ: szükséges erőforrások, képességek, igények alapján. 12

14 5 Android Android Egy Google által kezelt szoftver csomag: Linux kernel + Android WM + Egyéb alkalmazások Működési környezete: Sok gyártó sok hardverén fut: eltérő képességek, eltérhetnek a specifikációtól. ARM alapú, de van x86 és Intel port. Főbb jellemzők: Teljesen moduláris Multitasking, automatikus memóriakezelés, sok beépített programkönyvtár GSM, LTE, stb. támogatás (mobilcomm rendszerek) WiFi, Bloetooth, NFC Szenzorok: GPS, Triax, gyorsulás, mágneses mező, hőmérő, fénymérő, stb. Kamera, média (felvétel, lejátszás) HDMI, 2D, 3D gyorsítás, párhuzamosítás 5.1 Az Android felépítése Több szoftver együttesen: Middleware Core alkalmazások OPrendszer 13

15 Rétegei: System Apps: -kliens, SMSkliens, Telefonkönyv, Calendar, stb Java API Framework: nyílt platform fejlesztőknek. gyors, hatékony fejlesztés, nagy szabadság. Testreszabható. Native c/c++ Libraries / Android Runtime: Android Runtime: minden app külön folyamat az ART VMben. ART + Core Libraries (megmaradt Java csomagok) App Frameworkön keresztül használható: Media Framework, Webkit, OpenGL, OpenAl, OpenMax, SQLite, NDK komponensek. Hardware Abstraction Layer (HAL): hardverek feletti réteg, a fölötte levők számára elfedi a hardverkülönbségeket. Architektúra-és eszközfüggő kód. Figure 2: Az Android felépítése Linux Kernel: Minden alapja, hardver és szoftver között. Memória, energia és hálózatkezelés. Driverek. 3.4-es Linux kernel alapon. 5.2 Az Android projectfolyamat Általában Java nyelven fejlesztik (lehet mással is). Bájtkódra fordul, az Android VM (ART vagy Darvik) értelmezi. Felépítése: forráskód + resource-ok (pl. képek, XML-ek) + AndroidManifest (az alkalmazás összefoglalója) =.apk + digitális. Ezt az APK-t tudjuk futtatni. 14

16 Figure 3: Android projectfolyamat 5.3 Az Android-fejlesztés eszközei Android Studio Android SDK Android NDK Android Debug Bridge A fejlesztőgép és a mobileszköz kommunikációját biztosítja. Kliens-szerver megközelítés: a kliens egy parancssori alkalmazás, a fejlesztő gépen fut. Az IDE-k általában elfedik. A szerver a kommunikációt vezérli kliens és démon között. A démon az eszközön vagy az emulátorban fut a háttérben. A kommunikáció az portokon megy, eszközönként két porttal: konzol és ADB kapcsolat. A szervez az 5037-es porton allgat. A fejlesztéshez szükséges továbbá egy valós vagy virtuális mobileszköz. Ha valósat használunk, be kell állítani a drivereket és az USB hibakeresést, míg virtuális eszköznél be kell állítani egy emulátort. Ezt az AVD Manager(Android Virtual Device Manager) segítségével tehetjük meg: minden testreszabható, az AVD (a virtuális eszköz) saját tárhellyel rendelkezik. Nem szimulál, hanem valóban bebootol az Android rendszer. 15

17 5.3.2 Az Android project szerkezete.idea: az IntelliJ beállítások app: az alkalmazásmodul fájljai build: a lefordított program Több API-szintnek megfelelő lehet. libs: saját felhasznált programkönyvtárak src: androidtest: a teszteket tartalmazza main/java: a Java küdok main/jni: az NDK/JNI kódok main/assets: eredetileg üres, a resource-okat (pl. képek) tartalmazza main/res: anim - animációk, drawable - képek, layout - elrendezés XML-ek, menu - a menü gombra megjelenő felületek definiálása, raw - minden nyersanyag (mp3, mp4, avi, stb), values: nyelvli (szöveg) fájlok main/androidmanifest.xml: minden fontos infó az appról: részei, követelmények, kompatibilitás, jogosultságok, feladat. gradle: a Gradle Wrapper helye build.gradle: projectleíró a Gradle-nek gradle.properties: Gradle paraméterek gradlew: OS specifikus Gradle szkript local.properties: számítógépfüggő beállítások.iml: az IDEA modul információi settings.gradle: a Gradle tool beállításai 5.4 Az Actvity Az alkalmazás legfontosabb része, egy tevékenységet (képernyőt) ír le. Egy alkalmazás sok Activityből állhat. Az android.app.activityből osztály leszármazottja. Feladatai: Kapcsolattartás a felhsználóval 16

18 GUI kezelése Funkciók végrehajtása Az Activity életciklusa Az Activity életciklusának szakaszai különböző fügvényekben történnek, ezeket a függvényeket nekünk felül kell definiálni, de kötelező meghívni a szülőosztály implementációját (super.onvalami()). Ezek a függvények automatikusan hívódnak meg a program futása során, egyébként kivétel dobódik. Az életciklus függvényei: oncreate(): amikor először, vagy teljesen nullázott állapotból indul el az Activity. A GUI változók beállítása. onstart(): amikor az Activity láthatóvá válik a felhasználónak. onresume(): a felhasználó elkezdheti használni az appot. onpause(): amikor az Activity részben látszik, vagy többablakos megjelenítésnél, amikor nincs fókuszban. Itt kell elmenteni az adatokaz, ez az utolsó, ami biztos lefut. Gyorsan le kell fusson, hogy a következő Activity felugorhasson. onstop(): amikor már nem látszik. Pl. hívás, screen lock stb. esetén. ondestroy(): finish() függvény meghívása esetén. Törli az Activityt. Ha gyorsan kell a rendszernek a memória, meghívódik. A szükséges változók null-ra állítása történjen meg itt. Figure 4: Android Activity életciklusa 17

19 5.5 Az Android GUI Az elrendezés A Layout (Elrendezés) határozza meg a GUI elemek elhelyezkedését a képernyőn. Minden layout a View osztályból származik. Kétféleképpen adható meg, statikus módon: a res/layout mappában az XML fájlok definiálásával, valamint dinamikus módon: a Java forrásfájlokban, programkóddal megadva. A GUI elemek attribútumai: id: opcionális, de ezzel hivatkozhatunk az elemre. layout_width, layout_height: kötelező megadni (egyébként kivétel dobódik), megvalósulását a többi megjelenő objektum befolyásolhatja. Lehet: wrap_content: ameddig a tartalom igényli, fill_parent: minden rendelkezésre álló helyet kitölt, és fix méretű: dp (felbontásfüggetlen pixel) megadásban. gravity: mint a szövegszerkesztőkben az igazítás: left, right, bottom, center (vízszintesen és függőlegesen középre). layout_weight: priority-t lehet megadni, a kisebb értkűek nagyobb helyet foglalhatnak el. visibility: visible, illetve invisible - helyet foglal, de nem látható vagy gone - helyet sem foglal. padding: hézag az elemek között background háttér: drawable vagy szín. Vannak attribútumok, melyek a szülő ViewGroup osztályától függenek. A GUI elemei: A GUI widgetekből épül fel: View és ViewGroup elemek fába rendezve. A View- Group a View olyan leszármazottja, melynek gyermekei lehetnek (további elemeket tartalmazhat). Ezek hierarchiája adja az Activity felhasználói felületét. Van sok előre definiált, de írhatunk sajátot is (megfelelő osztályból leszármaztatva). A View hierarchiában egy gyökérelem van, a setcontentview metódussal lehet beállítani (oncreate()-ben!). A kirajzolás a gyökértől indul, lefele gyűrűzik (a levelek rajzolódnak legfelülre) és minden ViewGroup felelős a gyermekei kirajzolásáért (Összetétel minta). ViewGrouphoz gyermeket az addview(view) metódussal adhatunk. 18

20 5.5.2 Néhány GUI elem: Layoutok LinearLayout View-k: MapView RelativeLayout TableLayout: sorokból áll (TableRow), a sorok View elemeket tartalmaznak egyás mellett (azok az oszlopok). A leghosszabb sor határozza meg az oszlopok számát. Az oszlopszélességet is a leghosszabb határozza meg. GridView: rácsos elrendezés, ListAdapter kell hozzá. Automatikusan végja a tartalmat. Adapteres megjelenítés: Adapter->getView() - optimális erőforráskihasználás miatt. Csak akkor jön létre, ha meg kell jeleníteni a View-t. ListView: szekvenciális adatszerkezet megjelenítésére (ebben tárolja a list elemeit). Ahogy görgetjük, a kikerülő View-k a bekerülő oldalon újra felhasználódnak. FrameLayout: alapvetően egyetlen elem megjelenítésére, de gravityvel és paddinggal le lehet helyezni többet is. Ezek alapértelmezetten egymásra pakolódnak. WebView: beépített böngésző, webes tartalom megjelenítésére. TextView: egy szöveg megjelenítésére alkalmas. Attribútumai: text - statikusan megadható szöveg, textcolor - a szöveg színe, textsize - méret, typeface - betűtípus EditText: a TextView leszármazottja, beviteli mező. Ha fókuszt kap, feljön a billentyűzet. Attribútumok: inputtype - szöveg típusa ( , szöveg szám, stb.), hint - default szöveg AutoCompleteTextView Button: TextView leszármazottja. Kb. csak a háttérben különböznek. ImageVew: kép megjelenítésére. Attribútumok: scaletype: nyújtás módja ha a View és a képerány különböző, src: a megjeleníteni kívánt kép. ScrollView ViewPager Adapter: interface, összekapcsolja az adatot a megjelenítéssel. Ahhoz, hogy a ListView-val tudjuk használni, implementálni kell a saját osztályunkat. SDK-ban sok alapértelmezett implementáció. Pl. BaseAdapter, ArrayAdapter<T> 19

21 Inflation: A View hierarchiát XML-ben is lehet definiálni, ekkor az elemek a R.java fájlban generált azonosítójukkal hivatkozhatók. A rendszer az XML alapján felépíti a fát, majd meghívja a setcontentview() függvényt. 5.6 Felhasználói interakció Az interakció az Observer minta alapján történik. Egy interface-t kell implementálni, melynek dedikált metódusa hívódik meg az esemény lefutásakor (a mintába: notify()/update(), itt onclick(), onlongclick(), stb.). Az osztályt példányosítani is kell, átadni a View-nak: set<listenername> metósussal. Activity is implementálhatja. Figure 5: Android ListView működése 5.7 Egyedi View, Toolbar, Fragment Egyedi View definiálása Definiálhatunk saját widgeteket: a szokásos View paramétereken túl is testreszabható. Ekkor explicite felügyeljük a View kirajzolását az ondraw() protected függvény felüldefiniálásával. A szükséges méreteket az onmeasure(canvas) függvénnyel kell megadni: ha nem implementáljuk, nem jelenik meg semmi. Az ondraw()-nak átadott Canvas sok rajzoló függvénnyel rendelkezik, illetve lekérhetjük a méreteit. 20

22 5.7.2 Toolbar Általánosított ActionBar, Material Design-t alkalmaz.lehet nyitható-csukható Fragment Önálló Activity lifecycle-el rendelkező kirajzolási egyság. A felhasználói felület része, saját logikával. Az Activity újrafelhasználható alapegysége, mindig egy Activity része - futásidőben cserélhető, az Activity saját back stack-jében tárolódik. A lifecycle-je szinkronban van az Activity-ével, ugyanazok a függvények hívódnak meg. Az onattach() függvénnyel csatlakoztatható az Activity-hez. Az Activitybe beágyazva lehet használni, nem feltétlen van UI-a. Beágyazható közvetlenül XML-be vagy dinamikusan a kódban. Figure 6: Android Fragment 6 ios programozás Az Apple által kezel operációs rendszer Dawin alapokon. Egyetlen gyártó, jól specifikált, kevés számó hardwerére: ARM processzoron, verziók közötti áttérés támogatása. Csak Apple rendszeren fejleszthető Objective-C vagy Swift nyelven. Főbb fellemzők: Multitask, számos beépített programkönyvtár 21

23 Mobil kommunikációs rendszerek támogatása (GSM, LTS, stb.) WiFi, Bluetooth Szenzorok: GOS, Triax gyorsulás/mágneses Kamera, médiafelvétel támogatás HDMI kimenet, 2D+3D grafikai gyorsítás 6.1 Az ios felépítése Több szoftver (és szoftverszint) együttese OS/X (Darwin) alapokon. Figure 7: ios rendszer felépítése 22

24 Részei: CoreOS Mac OS/X kernel (XNU) TCP/IP Socketek Energia kezelés Fájlrendszer (HFS+) Biztonság Core sevices Hálózatkezelés Collections Preferenciák URL-ek kezelése Fájlok hozzáférése Névjegyek Beágyazott SQL adatbáziskezelő Core Location: az eszköz helyzetének meghatározása WiFi, cella vagy GPS alapon. Szálkezelés CoreMotion: gyorsulásmérő szenzorok kezelése Media Core Audio OpenAL (Open Audio Library) Hangkeverő Hangrögzítő Video lejátszás Médiaformátumok támogatása 2D gyorsítás Core Animation OpenGL ES Cocoa Touch Többpontos érintése és gesztusok támogatása Kamera támogatás Többnyelvűség Nézetek (nézethierarchia) kezelése Gyorsulásmérő támogatása Web view Map kit Értesítések kezelése Core Motion: mozgással kapcsolatos információk felhassnálása 23

25 6.2 Objective-C A C nyelv teljesen objektumorientélt kiterjesztése, vékony réteg, amit preprocesszor dolgoz fel. Új szintaktikai elemeket vezetett be osztályok, metódusok létrehozására. A Cocoa könyvtárak Objective-C alapúak. Üzenetküldésekkel operál, amiket []-kel jelez. Figure 8: Objective-C objektumok élettartama 7 Adattárolás 7.1 ios módszer Core Data OOP adatbázisban (OODB) tárolódnak az adatok, amihez az ios-nek hatékony keretrendszere van. Lényegében egy objektumgráfot állítunk elő, amely mögött DBMS áll. Ez leggyakrabban SQL, de lehet XML vagy memóriaalapú is. Vizuálisan kell létrehozni egy megfeleltetést az objektumok és az adatbázis között. Az OO API használatával az objektumok létrehozása és lekérdezése lehetséges. A téblák oszlopainak lekérdezése az objektumok mezőinek lekérése. 24

26 7.1.2 Az Adatmodell Ez egy Map az osztályaink és az adatbázis egyedek között. XCode: File > New > File menüponttal hozható létre új fájl az adatmodellhez. A Data Model egy sablon ennek a Mapnek. Legfontosabb fogalmai az Egyedek, Attribútumok, Kapcsolatok mind az adatbázisokhoz hasonlóan működnek. 7.2 Android módszer Az Android fájlrendszere hasonló a többi Linux fájlrendszerhez: a /boot, /system és /recovery rendszerpartíciók, ide kerül a kernel, a system image és a backup oprendszer. A /misc a drivereket, rendszerbeállításokat, stb. tárolja. A /data a felhasználó által használható terület, ide kerülnek a programok, ez az internal storage. Van még egy halom másik is (/cache, /sdcard, /radio, stb) Shared preferences Privát primitív (boolean, float, int, long, string) típusok tárolása kulcs-érték párok alapján. Az alkalmazás beállításainak kezelésére használható a Preference- Activity. Szerkesztésnék a SharedPreferences.Editor egy példánya szükséges Internal Storage Alapértelmezésből privát az alkalmazás számára, az alkalmazás törlése esetén törlődnek az itt tárolt adatok. Ide kerülnek a fordítási időben a res/raw/utvonal helyre mellékelt fájlok External Storage Lehet SD kártya vagy belső, nem privát hely is. Nincs semmiféle biztonság, a tárhely csak mountolás után látszik Adatbázis használata Az egyedeket név alapján érjük el és csak az alkalmazás fér hozzájuk.érdemes leszármaztatni az SQLiteOpenHelper osztályt és felüldefiniálni az oncreate() metó- 25

27 dusát. Ezután hozzáférhatünk az adatbázishoz az SQLiteOpenHelper getreadable- Database() és getwriteabledatabase() függvényei által. Mindkettő SQLiteDatabase objektumot ad vissza, amin használhatjuk a.query() függvényt (komplexebb lekérdezés esetén az SQLiteQueryBuilder osztállyak hozhatjuk létre a queryt). Érdemes készíteni egy statikus adatbáziskezelő osztályt, és eltrejteni az adatbázist a program többi része elől Backup A Google felhőszolgáltatásába menti el a rendszer az applikáció adatait, ezzel később visszaállíthatóvá válnak. Szinkronizációra nem alkalmas. Az AndroidManifest.xml fájlban kell deklarálni. Az onbackup() függvényt kell felüldefiniálni. A rendszer maga kezeli az egészet. 26

Android Wear programozás. Nyitrai István nyitrai.istvan@bmeautsoft.hu

Android Wear programozás. Nyitrai István nyitrai.istvan@bmeautsoft.hu Android Wear programozás Nyitrai István nyitrai.istvan@bmeautsoft.hu Amiről szó lesz A platformról dióhéjban Felületi újdonságok Fejlesztői környezet beállítása Értesítések Példa #1 Kommunikáció Példa

Részletesebben

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és

Részletesebben

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak

Részletesebben

Felhasználói felület megismerése, különböző felbontások támogatása

Felhasználói felület megismerése, különböző felbontások támogatása OE-NIK 2011. szeptember 20. Sicz-Mesziár János sicz-mesziar.janos@ nik.uni-obuda.hu Felhasználói felület megismerése, különböző felbontások támogatása Layout-ok megismerése LinearLayout UI Elemek egymás

Részletesebben

ANDROID ALKALMAZÁSFEJLESZTÉS

ANDROID ALKALMAZÁSFEJLESZTÉS ANDROID ALKALMAZÁSFEJLESZTÉS Adattárolás SharedPreference Belső - külső tároló PreferenceActivity Felhő alapú tárolás SQLite sicz.mj[tekercs]gmail.com Sicz-Mesziár János 2013. július 3. Shared Preference

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

Android 5.0. peter.ekler@aut.bme.hu

Android 5.0. peter.ekler@aut.bme.hu .0 peter.ekler@aut.bme.hu .0 It is going to be wait for it Lollipop (Legendary ) 2 .0 Új készülékek (telefon, tablet, óra, autó, ) Új futtatókörnyezet > Android Runtime (ART) Megújult UI design > material

Részletesebben

MVC. Model View Controller

MVC. Model View Controller MVC Model View Controller Szoftver fejlesztés régen Console-based alkalmazások Pure HTML weboldalak Assembly, C Tipikusan kevés fejlesztő (Johm Carmack Wolfenstein, Doom, Quake..) Szűkös erőforrások optimális

Részletesebben

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail: cseb@iit.bme.hu http://www.iit.bme.hu/~cseb/ Tematika Bevezetés Java programozás alapjai Kivételkezelés Dinamikus

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

Részletesebben

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus

Részletesebben

UI megismerése, különböző felbontások támogatása, használati jogok kérése

UI megismerése, különböző felbontások támogatása, használati jogok kérése UI megismerése, különböző felbontások támogatása, használati jogok kérése Sicz-Mesziár János sicz.mj@gmail.com 2011. március 2. OE-NIK Layout-ok megismerése LinearLayout UI Elemek egymás után Orientáció

Részletesebben

Interfészek. PPT 2007/2008 tavasz.

Interfészek. PPT 2007/2008 tavasz. Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált

Részletesebben

Java programozási nyelv 5. rész Osztályok III.

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

OOP és UML Áttekintés

OOP és UML Áttekintés OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés

Részletesebben

Mobil Informatikai Rendszerek

Mobil Informatikai Rendszerek Mobil Informatikai Rendszerek Android NDK Native Development Kit Sicz-Mesziár János sicz-mesziar.janos@nik.uni-obuda.hu Mezei József mezei.jozsef@nik.uni-obuda.hu 2018. április 22. NDK Native Development

Részletesebben

UI megismerése - 2. rész Adattárolás

UI megismerése - 2. rész Adattárolás UI megismerése - 2. rész Adattárolás Sicz-Mesziár János sicz.mj@gmail.com 2011. március 10. OE-NIK AlertDialog és ProgressDialog Egy párbeszédablak, ami az aktuális Activity előtt jelenik meg. Dialog osztály

Részletesebben

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési

Részletesebben

ANDROID ALKALMAZÁSFEJLESZTÉS

ANDROID ALKALMAZÁSFEJLESZTÉS ANDROID ALKALMAZÁSFEJLESZTÉS Felhasználói felület megismerése Különböző felbontások támogatása s i c z - m e s z i a r. j a n o s @ n i k. u n i - o b u d a. h u Sicz-Mesziár János 2013. szeptember 20.

Részletesebben

Komponens alapú fejlesztés

Komponens alapú fejlesztés Komponens alapú fejlesztés Szoftver újrafelhasználás Szoftver fejlesztésekor korábbi fejlesztésekkor létrehozott kód felhasználása architektúra felhasználása tudás felhasználása Nem azonos a portolással

Részletesebben

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe Webes alkalmazások fejlesztése Bevezetés az ASP.NET MVC 5 keretrendszerbe ASP.NET MVC Framework 2009-ben jelent meg az első verziója, azóta folyamatosan fejlesztik Nyílt forráskódú Microsoft technológia

Részletesebben

Clang Static Analyzer belülről

Clang Static Analyzer belülről Clang Static Analyzer belülről Nagy Donát 2015. október 6. Áttekintés 1 Clang Static Analyzer kívülről 2 A statikus elemzés folyamata 3 Az eszköz felépítése 4 Egy checker felépítése Rövid definíciók Clang

Részletesebben

Verifikáció és validáció Általános bevezető

Verifikáció és validáció Általános bevezető Verifikáció és validáció Általános bevezető Általános Verifikáció és validáció verification and validation - V&V: ellenőrző és elemző folyamatok amelyek biztosítják, hogy a szoftver megfelel a specifikációjának

Részletesebben

Broadcast Service Widget

Broadcast Service Widget OE-NIK 2012. április 22. Sicz-Mesziár János sicz-mesziar.janos@ nik.uni-obuda.hu Broadcast Service Widget Broadcast Mi is ez? Aszinkron, üzenetszórásos értesítés Azok akik felregisztráltak rá értesülnek

Részletesebben

Mobil Informatikai Rendszerek

Mobil Informatikai Rendszerek Mobil Informatikai Rendszerek Android NDK Native Development Kit 2016. november 27. Sicz-Mesziár János sicz- m e s z i a r. j a n o s @ nik.uni - obuda.hu NDK Native Development Kit Egy set of tools, amely

Részletesebben

Mobil készülékek programozása

Mobil készülékek programozása Mobil készülékek Egyre több ember zsebében és táskájában a legkülönfélébb mobileszközök megtalálhatóak Mobiltelefonok, PDA-k, PalmTopok és intelligens multimédiás eszközök (mit pl. ipod-ok) A készülékek

Részletesebben

Webes alkalmazások fejlesztése

Webes alkalmazások fejlesztése Webes alkalmazások fejlesztése 3. gyakorlat Authentikáció, adatok feltöltése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu Authentikáció Manapság már elvárás, hogy a felhasználó regisztrálni

Részletesebben

1. Az Android platform bemutatása (Ekler Péter)... 1 1.1. Az Android sikerességének okai... 1 1.2. Az Android platform története... 3 1.3. Android-verziók... 5 1.4. Android Market (Google Play)... 13 1.5.

Részletesebben

ios alkalmazásfejlesztés Koltai Róbert

ios alkalmazásfejlesztés Koltai Róbert ios alkalmazásfejlesztés Koltai Róbert mit vettünk a múlt órán? mi az a protocol? szintaktikája? mire jó a category? milyen memóriakezelés van ios-en? mi ennek a 4 állapota? mi a főszabály? + 4 része mi

Részletesebben

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg. KIINDULÁS Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg. Programozás III Az egyszerűség kedvéért mindegyiket a nevük alapján regisztráljuk,

Részletesebben

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira Programozás II gyakorlat 7. Példák a polimorfizmus alkalmazásaira Probléma class A { public: ~A() { cout

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:

Részletesebben

A Java EE 5 plattform

A Java EE 5 plattform A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 13. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési

Részletesebben

Név: Neptun kód: Pontszám:

Név: Neptun kód: Pontszám: Név: Neptun kód: Pontszám: 1. Melyek a szoftver minőségi mutatói? Fejlesztési idő, architektúra, programozási paradigma. Fejlesztőcsapat összetétele, projekt mérföldkövek, fejlesztési modell. Karbantarthatóság,

Részletesebben

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama 10. évfolyam: 105 óra 11. évfolyam: 140 óra 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra 36 óra OOP 14 óra Programozási

Részletesebben

Programozási alapismeretek 4.

Programozási alapismeretek 4. Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

JavaScript Web AppBuilder használata

JavaScript Web AppBuilder használata JavaScript Web AppBuilder használata Kiss András Esri Magyarország Kft. 2015. október 8. Az ArcGIS Platform lehetővé teszi a Web GIS-t Térinformatika elérése bárhonnan Desktop Web Eszköz Egyszerű Egységes

Részletesebben

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Operációs rendszerek. Az NT folyamatok kezelése

Operációs rendszerek. Az NT folyamatok kezelése Operációs rendszerek Az NT folyamatok kezelése Folyamatok logikai felépítése A folyamat modell: egy adott program kódját végrehajtó szál(ak)ból és, a szál(ak) által lefoglalt erőforrásokból állnak. Folyamatok

Részletesebben

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése Készítette: Simon Nándor Integrált fejlesztő környezet Egységes (vizuális) fejlesztési lehetőségek Bőséges segítség (help) Hibakeresési, nyomkövetési

Részletesebben

Tartalomjegyzék. Előszó... 10

Tartalomjegyzék. Előszó... 10 Előszó... 10 1. Bevezetés a Symbian operációs rendszerbe... 11 1.1. Az operációs rendszer múltja...11 1.2. Az okos telefonok képességei...12 1.3. A Symbian felépítése...15 1.4. A könyv tartalma...17 2.

Részletesebben

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül

Részletesebben

Előszó... 13. 1. A Windows alkalmazásfejlesztés rövid története... 15. A Windows életútja... 15 A Windows 8 paradigmaváltása... 16

Előszó... 13. 1. A Windows alkalmazásfejlesztés rövid története... 15. A Windows életútja... 15 A Windows 8 paradigmaváltása... 16 Előszó... 13 1. A Windows alkalmazásfejlesztés rövid története... 15 A Windows életútja... 15 A Windows 8 paradigmaváltása... 16 A Microsoft megteszi az első lépéseket a fogyasztók felé... 17 A Windows

Részletesebben

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis rendszerek. dr. Siki Zoltán Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt

Részletesebben

Web-fejlesztés NGM_IN002_1

Web-fejlesztés NGM_IN002_1 Web-fejlesztés NGM_IN002_1 Rich Internet Applications RIA Vékony-kliens generált (statikus) HTML megjelenítése szerver oldali feldolgozással szinkron oldal megjelenítéssel RIA desktop alkalmazások funkcionalitása

Részletesebben

ARM Cortex magú mikrovezérlők. mbed

ARM Cortex magú mikrovezérlők. mbed ARM Cortex magú mikrovezérlők mbed Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2016 MBED webes fejlesztőkörnyezet 2009-ben megjelent

Részletesebben

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő Több platform egy kódbázis Tanulságok a Tresorittól Budai Péter, vezető fejlesztő Miről lesz szó? A Tresorit szolgáltatás és platformjainak gyors bemutatása A Tresorit szoftver architektúrája Hogyan épül

Részletesebben

iphone és Android két jó barát...

iphone és Android két jó barát... iphone és Android két jó barát... Multiplatform alkalmazásfejlesztés a gyakorlatban Kis Gergely MattaKis Consulting 1 Tartalom Miért multiplatform fejlesztés? Multiplatform fejlesztési módszerek A közös

Részletesebben

Iman 3.0 szoftverdokumentáció

Iman 3.0 szoftverdokumentáció Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3

Részletesebben

Bevezetés a programozásba előadás: Öröklődés

Bevezetés a programozásba előadás: Öröklődés Bevezetés a programozásba 2 5. előadás: Öröklődés emlékeztető Tagfüggvény struct koord { double x,y,r; void set(double ux, double uy) { x=ux; y=uy; r=sqrt(x*x+y*y); } Használat: koord k; k.set(4,5); Egységbezárás

Részletesebben

Objektum orientált programozás Bevezetés

Objektum orientált programozás Bevezetés Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás: 2011. 09. 08. 1 A tantárggyal kapcsolatos adminisztratív kérdésekkel Micskei Zoltánt keressétek. 2 3 4 5 6 7 8 9 10 11 12 13 14 Erősen buzzword-fertőzött terület, manapság mindent szeretnek

Részletesebben

Kérdés Kép Válasz HIBAS Válasz HELYES Válasz HIBAS Válasz HIBAS Kérdés Kép Válasz HIBAS Válasz HELYES Válasz HIBAS Válasz HIBAS Kérdés Kép Válasz

Kérdés Kép Válasz HIBAS Válasz HELYES Válasz HIBAS Válasz HIBAS Kérdés Kép Válasz HIBAS Válasz HELYES Válasz HIBAS Válasz HIBAS Kérdés Kép Válasz Mire kell odafigyelni egy frissítendő/migrálandó Windows esetén? Léteznie kell egy frissítést végző felhasználónak. A frissítendő/migrálandó rendszer naprakész legyen, a legfrissebb javítások és szerviz

Részletesebben

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás NGB_IN003_1 SZE 2014-15/2 (8) Szoftverminőségbiztosítás Szoftvertesztelési folyamat (folyt.) Szoftvertesztelési ráfordítások (Perry 1995) Tesztelésre fordítódik a projekt költségvetés 24%-a a projekt menedzsment

Részletesebben

Intelligens biztonsági megoldások. Távfelügyelet

Intelligens biztonsági megoldások. Távfelügyelet Intelligens biztonsági megoldások A riasztást fogadó távfelügyeleti központok felelősek a felügyelt helyszínekről érkező információ hatékony feldolgozásáért, és a bejövő eseményekhez tartozó azonnali intézkedésekért.

Részletesebben

Adatbázis, adatbázis-kezelő

Adatbázis, adatbázis-kezelő Adatbázisok I. rész Adatbázis, adatbázis-kezelő Adatbázis: Nagy adathalmaz Közvetlenül elérhető háttértárolón (pl. merevlemez) Jól szervezett Osztott Adatbázis-kezelő szoftver hozzáadás, lekérdezés, módosítás,

Részletesebben

Közösség, projektek, IDE

Közösség, projektek, IDE Eclipse Közösség, projektek, IDE Eclipse egy nyílt forráskódú (open source) projekteken dolgozó közösség, céljuk egy kiterjeszthető fejlesztői platform és keretrendszer fejlesztése, amely megoldásokkal

Részletesebben

Objektumelvű programozás

Objektumelvű programozás Objektum, osztály Objektumelvű programozás Az elemzés együttműködő objektumok rendszereként fogalmazza meg a feladatot. Objektum-központú elemzés A tervezés a feladat tárgyköreit egy-egy objektum felelősségévé

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 8. előadás Visszatekintés A Windows Console alkalmazások egy karakteres képernyőt biztosítottak, ahol a kimenet a kiírt szöveg, míg a bemenet a billentyűzet volt.

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály

Részletesebben

Fejlesztői szemmel - 2010. at K

Fejlesztői szemmel - 2010. at K Fejlesztői szemmel - 2010 M at K ta is K G i s er C ge on l y su lt in g Tartalom Bemutatkozás Az Androidról röviden, fejlesztői szemmel Az Android 2.2 újdonságai Új média alrendszer: Stagefright Telephony

Részletesebben

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna

SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA. Dr. Iszály György Barna SZOFTVERFEJLESZTÉS ANDROID PLATFORMRA Dr. Iszály György Barna ERŐFORRÁSOK Az alkalmazások által használt erőforrások jól különválnak az őket kezelő forráskódoktól A készülék egyedi tulajdonságaihoz lehet

Részletesebben

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Autóipari beágyazott rendszerek. Komponens és rendszer integráció Autóipari beágyazott rendszerek és rendszer integráció 1 Magas szintű fejlesztési folyamat SW architektúra modellezés Modell (VFB) Magas szintű modellezés komponensek portok interfészek adattípusok meghatározása

Részletesebben

4. A konténerek. 4.1. Konténerek. 4.1.1. LinearLayout

4. A konténerek. 4.1. Konténerek. 4.1.1. LinearLayout Dashboard» JavaForum»». A konténerek. A konténerek A konténer arra a célra szolgál, hogy más konténereket vagy komponenseket tegyünk bele, ezzel megszabva az elhelyezkedés pontos és kevésbé pontos szabályait.

Részletesebben

Android fejlesztés Alapok. Készítette: Kálmán Kornél (KAKQAAT.SZE) 2011. 12. 19.

Android fejlesztés Alapok. Készítette: Kálmán Kornél (KAKQAAT.SZE) 2011. 12. 19. Android fejlesztés Alapok Készítette: Kálmán Kornél (KAKQAAT.SZE) 2011. 12. 19. Android Az Android egy mobil eszközök számára kifejlesztett szoftverrendszer, amely magába foglal egy operációs rendszert,

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

Részletesebben

Programfejlesztési Modellek

Programfejlesztési Modellek Programfejlesztési Modellek Programfejlesztési fázisok: Követelmények leírása (megvalósíthatósági tanulmány, funkcionális specifikáció) Specifikáció elkészítése Tervezés (vázlatos és finom) Implementáció

Részletesebben

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás: Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1 A program készítés Absztrakciós folyamat, amelyben a valós világban

Részletesebben

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu Számonkérés 2 Papíros (90 perces) zh az utolsó gyakorlaton. Segédanyag nem használható Tematika 1. félév 3 Óra Dátum Gyakorlat 1. 2010.09.28.

Részletesebben

Objektumorientált paradigma és a programfejlesztés

Objektumorientált paradigma és a programfejlesztés Objektumorientált paradigma és a programfejlesztés Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján Objektumorientált

Részletesebben

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák Java Web technológiák Bevezetés Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés

Részletesebben

GPRS Remote. GPRS alapú android applikáció távvezérléshez. Kezelési útmutató

GPRS Remote. GPRS alapú android applikáció távvezérléshez. Kezelési útmutató GPRS Remote GPRS alapú android applikáció távvezérléshez Kezelési útmutató Tartalomjegyzék Általános leírás... 1 Új modul beállítás... 2 Új okostelefon beállítás... 2 Modulok karbantartása... 3 Okostelefonok

Részletesebben

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;

Részletesebben

Objektumorientált paradigma és programfejlesztés Bevezető

Objektumorientált paradigma és programfejlesztés Bevezető Objektumorientált paradigma és programfejlesztés Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján

Részletesebben

JAVA webes alkalmazások

JAVA webes alkalmazások JAVA webes alkalmazások Java Enterprise Edition a JEE-t egy specifikáció definiálja, ami de facto szabványnak tekinthető, egy ennek megfelelő Java EE alkalmazásszerver kezeli a telepített komponensek tranzakcióit,

Részletesebben

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0 Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0 Az Ön letölthető fájl tartalmazza az Evolut Főkönyv 2013. program telepítőjét. A jelen leírás olyan telepítésre vonatkozik, amikor Ön

Részletesebben

Java programozási nyelv 4. rész Osztályok II.

Java programozási nyelv 4. rész Osztályok II. Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék

Részletesebben

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén

Részletesebben

Android fejlesztés Alapok. Tanács Attila, Kálmán Kornél

Android fejlesztés Alapok. Tanács Attila, Kálmán Kornél Android fejlesztés Alapok Tanács Attila, Kálmán Kornél Android Az Android egy mobil eszközök számára kifejlesztett szoftverrendszer, amely magába foglal egy operációs rendszert, középszintet (middleware)

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás: 2012. 09. 06. 1 A tantárggyal kapcsolatos adminisztratív kérdésekkel Micskei Zoltánt keressétek. 2 3 4 5 6 7 8 9 Forrás: Gartner Hype Cycle for Virtualization, 2010, http://premierit.intel.com/docs/doc-5768

Részletesebben

iphone programozás alapjai IV. Gyakorlat

iphone programozás alapjai IV. Gyakorlat iphone programozás alapjai IV Gyakorlat A mai előadás témái I Térképek és pozíció MKMapView GPS pozíció lekérése II Kamera kép kezelése III Gyorsulás érzékelő IV Push Notification I Térképek és Pozíció

Részletesebben

Földmérési és Távérzékelési Intézet

Földmérési és Távérzékelési Intézet Ta p a s z ta l a to k é s g ya ko r l a t i m e g o l d á s o k a W M S s zo l gá l tatá s b a n Földmérési és Távérzékelési Intézet 2011.03.13. WMS Szolgáltatások célja A technikai fejlődéshez igazodva

Részletesebben

Interfészek. Programozás II. előadás. Szénási Sándor.

Interfészek. Programozás II. előadás.  Szénási Sándor. Interfészek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Polimorfizmus áttekintése Interfészek Interfészek alkalmazása

Részletesebben

Junior Java Képzés. Tematika

Junior Java Képzés. Tematika Junior Java Képzés Tematika I. Szakmai törzsanyag A tematika tartalmaz algoritmuselméletet, programozási tételeket, tipikus adatfeldolgozó feladatokat, programozási nyelvi alapelemeket, technológiai ismereteket,

Részletesebben

Szoftverfejlesztés a Google Android OS-re (Android 3.0, API level 11)

Szoftverfejlesztés a Google Android OS-re (Android 3.0, API level 11) Szoftverfejlesztés a Google Android OS-re (Android 3.0, API level 11) Dudás András 2011 30 percben! Tartalom Egy alkalmazás alapjai, alapvető építőkövek Fejlesztés mikéntje Technológia áttekintés Projektek,

Részletesebben

A szerzõrõl... xi Bevezetés... xiii

A szerzõrõl... xi Bevezetés... xiii TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány

Részletesebben

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás.   Szénási Sándor. Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb

Részletesebben

Bevezetés a Python programozási nyelvbe

Bevezetés a Python programozási nyelvbe Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

S01-7 Komponens alapú szoftverfejlesztés 1

S01-7 Komponens alapú szoftverfejlesztés 1 S01-7 Komponens alapú szoftverfejlesztés 1 1. A szoftverfejlesztési modell fogalma. 2. A komponens és komponens modell fogalma. 3. UML kompozíciós diagram fogalma. 4. A szoftverarchitektúrák fogalma, összetevői.

Részletesebben

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

Részletesebben

Számítógépes munkakörnyezet II. Szoftver

Számítógépes munkakörnyezet II. Szoftver Számítógépes munkakörnyezet II. Szoftver A hardver és a felhasználó közötti kapcsolat Szoftverek csoportosítása Számítógép működtetéséhez szükséges szoftverek Operációs rendszerek Üzemeltetési segédprogramok

Részletesebben

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22 Unit Teszt Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Unit Teszt 2013 1 / 22 Tartalomjegyzék 1 Bevezetés 2 Unit Teszt 3 Példa Tóth Zsolt (Miskolci Egyetem) Unit Teszt 2013 2 / 22 Szoftvertesztelés

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver

Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver ANDROID ALKALMAZÁSFEJLESZTÉS Android komponensek használata Activity Fragment Service Broadcast Recevier sicz- m e s z i a r. j a n o s @ n i k. u n i - o b u d a. h u Sicz-Mesziár János 2015. március

Részletesebben

Operációs rendszerek. Az X Window rendszer

Operációs rendszerek. Az X Window rendszer Operációs rendszerek X Windows rendszer Az X Window rendszer Grafikus felhasználói felületet biztosító alkalmazás és a kapcsolódó protokoll 1983-84: a Massachusetts Institute of Technology-n (MIT, USA).

Részletesebben