Bevezetés, platformok Léczfalvy Ádám
[email protected]
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
SmartPhone
◦ Alapvető funkciók, amelyek egyre bővülnek
◦ Széleskörű üzleti funkciók ◦ Számos kommunikációs protokoll támogatottsága
6
PDA, Pocket PC
Egyéb intelligens hordozható eszközök
◦ Szervezői funkciók támogatása ◦ Érintőképernyő ◦ Bizonyos változatok telefonálást is lehetővé tesznek ◦ 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
Felhasználás helye
◦ Kereskedelem, szállítás, támogatás, marketing ◦ 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
Támogatott eszközök száma
◦ Mennyire könnyű elsajátítani az adott platformra vonatkozó ismereteket? ◦ Gyorsan lehet programozni az adott platformon? ◦ 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:
J2SE:
J2ME:
Java Card:
◦ szerveroldali, illetve web- fejlesztésre szánt változat ◦ asztali PC-kre szánt verzió ◦ mobil eszközökre szánt verzió, a J2SE részhalmaza, a korlátokhoz alkalmazkodik ◦ 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 Elérhető Fejlesztés nyelv funkciók 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
C++
Sok
Lassú
Sok
Objective-C
Több mint átlagos
Lassú
Kevés
iPhone OS
40