Bevezetés, platformok Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu
Mobil készülékek és tulajdonságaik A mobil eszközök programozása, kihívások, nehézségek Mobilprogramozási platformok Java Micro Edition.NET Compact Framework Python Symbian OS iphone OS 2
Mit nevezünk mobil készüléknek? Olyan készülék, amely: Akkumulátorról üzemel Támogat valamilyen vezeték nélküli technológiát Rendelkezik valamilyen felhasználói felülettel (pl. gombok, érintőképernyő) Korlátozott képességű hardverrel rendelkezik 3
Kis méret Kis tömeg Gyenge processzor Kis méretű memória Kis méretű képernyő Korlátozott adatbeviteli lehetőségek Erősen korlátozott energiafogyasztás 4
Notebook Tablet PC Kisméretű ipari PC Hordozható célra készült alaplapok, CPU-k (pl. Intel Atom) 5
Mobiltelefon Alapvető funkciók, amelyek egyre bővülnek SmartPhone Széleskörű üzleti funkciók Számos kommunikációs protokoll támogatottsága 6
PDA, Pocket PC Szervezői funkciók támogatása Érintőképernyő Bizonyos változatok telefonálást is lehetővé tesznek Egyéb intelligens hordozható eszközök PNA GPS vevőkészülék 7
A korlátozott képességekkel rendelkező mobil eszközökre történő alkalmazás fejlesztés Területei: Mobil tartalomszolgáltatás (WAP) Egy hagyományos informatikai rendszer és egy mobil eszköz összekapcsolása A mobil eszközön futó alkalmazásfejlesztése 8
Eleinte csak operációs rendszer, nem volt lehetőség más szoftver telepítésére Csak a profi szakemberek tudtak mobilalkalmazást készíteni A PDA-k voltak az első, külső fél által programozható mobil eszközök A gyártók reagáltak a igényekre és később mobiltelefonokra is lehetővé tették a fejlesztést Ma már alig van olyan készülék, amelyhez ne létezne fejlesztői eszköz 9
Különböző technológiájú eszközök Hordozható számítógép, PDA, mobiltelefon Egyes eszközök ugyanazt a technológiát másképp támogatják (pl. böngészés) Sokféle kommunikációs csatorna, különböző sávszélességgel Bluetooth, Infra, WLAN, SMS, TCP/IP Felhasználás területe Kereskedelem, szállítás, támogatás, marketing Felhasználás helye Munkahely, vevő telephelye, repülőtér, repülő, utazás közben, otthon 10
Gyakran más szemléletmódot követel, mint a PC-n történő alkalmazás fejlesztés A különböző platformok sajátosságai miatt egyedi fejlesztési technikák szükségesek Sajátos hardver és szoftver architektúra, amelyet ismerni kell hatékony alkalmazások készítéséhez A eszközök hardver korlátai 11
Az eszközök korlátai miatt nehezebb jó alkalmazást készíteni Felhasználóbarát, áttekinthető, dizájnos GUI tervezése a korlátozott méretű kijelzőre Erőforrás korlátok Processzor Memória Tároló kapacitás A felhasználói input biztosítása különféle eszközök esetén 12
A különféle platformok eltérő eszköztámogatottsággal bírnak Népszerűség, elterjedtség Az alkalmazott platform tartalmazza a futtatáshoz és a fejlesztéshez szükséges eszközöket Bizonyos platformokon könnyebb fejleszteni, ám korlátozottabb az elérhető funkciók köre, másokon nehezebb a fejlesztés, de sokkal több funkció érhető el 13
A mobil eszköz operációs rendszere alá Palm OS Symbian OS Windows XP Embedded/Windows CE (Windows Mobile) Linux OS Binary Runtime Environment for Wireless (BREW) A mobil eszközön található futtató keretrendszer alá J2ME.NET Compact Framework Python 14
Alapvető koncepciók: Programozási nyelv Gyakran korlátozzák a nyelv szabványos eszközkészletét Kódkönyvtárak (osztálykönyvtárak) Az alapfunkciókat bővítő eljárások (osztályok) Fejlesztői eszközök Fordítóprogram Szimulátor Egyéb eszközök 15
Platformok összehasonlítási szempontjai: Programozási nyelv Elérhető funkciók Az adott eszközre vonatkozóan annak minden funkcióját el tudjuk-e érni? A fejlesztés gyorsasága Mennyire könnyű elsajátítani az adott platformra vonatkozó ismereteket? Gyorsan lehet programozni az adott platformon? Támogatott eszközök száma A piacon kapható eszközök közül mennyi támogatja? 16
C++ leváltására szolgáló nyelv Objektum orientált Többszálúság Garbage Colletion Hálózati kommunikáció támogatása Platform függetlenség Byte-code (köztes kód) Futtatás a Java Virtual Machine segítségével Interpreter üzemmód 18
A platformfüggetlenség csak részben igaz Eltérő piaci igények vannak J2EE: szerveroldali, illetve web- fejlesztésre szánt változat J2SE: asztali PC-kre szánt verzió J2ME: mobil eszközökre szánt verzió, a J2SE részhalmaza, a korlátokhoz alkalmazkodik Java Card: SmartCard-okhoz készült változat 19
A legelterjedtebb mobilszoftver-platform A ma kapható készülékek szinte kivétel nélkül támogatják Java nyelv A speciális hardvert és funkciókat nem használó alkalmazások könnyen elkészíthetők A speciális funkciók (pl. Bluetooth) csomagok segítségével érhetők el (az eszköznek a csomagot támogatnia kell!) Csak szekvenciális fájlelérés 20
Ingyenes Nyílt forráskódú Virtuális gép és csomagok Fejlesztőkörnyezetek: NetBeans IDE JBuilder Eclipse A fejlesztési ismereteket viszonylag könnyen el lehet sajátítani Átlagos fejlesztési gyorsaság 21
Különböző képességű eszközök memória, feldolgozási idő, hardver, megjelenítés szempontjából Konfigurációkat definiáltak, amely meghatározza a legalapvetőbb közös tulajdonságokat További csoportosítást tettek lehetővé a profilok alkalmazásával Opcionális csomagok a speciális funkciókhoz 22
Több programozási nyelv támogatása C#, Visual Basic IL (Intermediate Language) nyelvre forduló programok A Runtime(virtuális gép) az IL kódot futtatja JIT technológia A teljes.net keretrendszer részhalmaza Mobil eszközökhöz készült osztálykönyvtár bővítmények 24
Az eredeti.net Framework fontosabb osztályai és azok metódusai elérhetők Pl. System.Windows.Forms Mobiltelefonokon csak Windows Mobile-ra érhető el PDA-k között egyeduralkodó A fejlesztési ismereteket viszonylag könnyen el lehet sajátítani Átlagos fejlesztési gyorsaság 25
Magas szintű, általános célú programozási nyelv Szkript-nyelv Objektum orientált és procedurális programozás támogatása Platform független Gazdag standard osztálykönyvtár Kommunikációs protokollok Reguláris kifejezések Adatbázis kapcsolat Stb. 27
C vagy C++ -ban írt modulokkal való bővíthetőség Bizonyos változatok natív kódot is képesek generálni Kliensszoftverek, prototípusok készítésére kiváló, mert a nyelv nagyon egyszerű A fejlesztési ismereteket könnyen és gyorsan el lehet sajátítani Gyors fejlesztést tesz lehetővé 28
A legtöbb készülék alapesetben nem tartalmazza a futtatókörnyezetet, ezért telepítés szükséges! Ez nem várható el minden felhasználótól, ezért az elterjedést gátolhatja 29
Elsősorban okostelefonok épülnek rá, de egyre inkább jellemző az olcsóbb szegmensekre is C++-ban írták a kerneltől a magas szintű szolgáltatásokig Objektum orientált szemlélet Az OS írásakor a C++ még gyerekcipőben járt, a kiforrottság hiánya miatt egyedi technikákat alkalmaztak a készítők Ezekhez a technikákhoz alkalmazkodni kell, ezért nehezebbé teszi a programozást! 31
Mivel az OS C++ -ban készült ezért natív alkalmazásokat is csak ebben lehet készíteni Az alkalmazott C++ nyelv a sajátosságok miatt sok helyen eltér a szabványos C++ - tól Alacsony szintű rétegekhez való hozzáférés az OS-en belül, az elérhető funkciók száma igen nagy Open C csomag a szabványos C nyelven írt programok portolásához 32
A Symbian OS csak az alapját képezi a készülék operációs rendszerének Erre mindig ráépül egy UI réteg és számos alap alkalmazás, amelyek így önálló szoftverplatformokat alkotnak: S60: A Nokia definiálta gombbal vezérelt, kis képernyős mobiltelefonokhoz. Tetszőleges méretű képernyő támogatás UIQ: Érintőképernyős PDA-khoz, de már van érintőképernyő nélküli változat is 33
A két rendszer nem kompatibilis egymással Külön osztálykönyvtárak és SDK Az operációs rendszer alapfunkcióit azonban ugyanúgy kell programozni, ezért készíthető közös kódbázis az alapfunkciókhoz A felhasználói felület tekintetében egyedi programozás szükséges 34
Sok tapasztalat szükséges egyszerűbb programok készítéséhez is Az szabványos C++ -tól való eltérések és sajátosságok miatt hosszabb tanulási idő és sok gyakorlás szükséges A bonyolultabb programozás a fejlesztés sebességét lassíthatja 35
Apple készülékekre fejlesztették: iphone ipodtouch Unix alapokra épül Nem kompatibilisa Mac OS X-el 2008-ban megjelent az iphone SDK, így megnyíltak a lehetőségek a platformra történő fejelsztéshez 37
Obejctive-C nyelv Az elérhető funkciók száma gazdag, a multi-touch felhasználói felület és a gyorsulásmérő szenzorok is programozható Sok tanulást igényel A bonyolultabb programozás a fejlesztés sebességét lassíthatja Az emulátor csak Mac OS X alatt használható 38
Az elkészített alkalmazások csak az AppStore-on keresztül terjeszthetők A fejlesztők szabják meg az alkalmazás árát, amelyből 30% az Apple-höz kerül Szigorú és körülményes módszer, de: Garantálja a minőséget Biztonságos szoftverek 39
Platform Programozási nyelv Elérhető funkciók Fejlesztés gyorsasága Támogatott eszközök száma Java ME Java Átlagos Átlagos Nagyon sok.net CF C#, Visual Basic.NET Több mint átlagos Átlagos Átlagos Python Python Átlagos Gyors Sok Symbian OS iphone OS C++ Sok Lassú Sok Objective-C Több mint átlagos Lassú Kevés 40