Mobil Szoftverfejlesztés az Oktatásban és Kutatásban Ekler Péter Peter.ekler@aut.bme.hu Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék Szeged Szeminárium 2010. November 16.
Tartalom Mobileszközök és rendszerek sokszínűsége, mobil eszközök egyedi képességei Mobil platformok napjainkban Mobil szoftverfejlesztési irányok: Natív fejlesztés Widget platformok Platformfüggetlen alkalmazásfejlesztés Mobil szoftverfejlesztés oktatása: tematikák, tananyag, tapasztalatok Kutatási irányok: peer-to-peer, energiatakarékosság, közösségi hálózatok Esettanulmányok Augmented Reality MindMap Multiscreen Mobil torrent kliensek Mobil távirányító MobSensor Összefoglalás BME-AAIT 2010 Szeged 2
Bevezetés Mobil készülékek rohamos fejlődése Fejlődés főbb iránymutatói Hálózati kommunikációk támogatása Számításkapacitás Rendelkezésre álló memória A fejlődés fő mozgatórugója a mobil szoftverek iránti igény Egyre jelentősebb a szerepe a mobil szoftverfejlesztésnek Eltérő szemlélet és módszerek (fix gépekre való fejlesztéshez viszonyítva) Probléma: jelentős eltérések a mobil platformok között BME-AAIT 2010 Szeged 3
Mobil készülékek általános típusai Típusok általánosítva: Egyszerű mobilkészülék Beszédátvitel, SMS, Java Okostelefon (smartphone) Naptár, email, fejlett szervezőfunkciók PDA (Personal Digital Assistant) Érintőképernyő Egyszerű mobilkészülék Okostelefon PDA Egyre inkább elmosódnak a határok (pl. PDAtelefon) BME-AAIT 2010 Szeged 4
Mobil eszközök egyedi képességei I. Rendkívül sok beépített eszköz, mely lehetőséget nyit újszerű alkalmazások készítéséhez Különféle hálózati technológiák: Mobil hálózatok: 2G, 3G, nagysebességő fel és letöltés Bluetooth: rövid hatótávú, de népszerű WLAN: tipikusan IP alapú hálózatokhoz BME-AAIT 2010 Szeged 5
Mobil eszközök egyedi képességei II. Különféle multimédia eszköz és funkció támogatása: Kamera Mikrofon Zene és videó lejátszás Mobiltelefon egyedi módon való felhasználása Mobiltelefon mint mozgás és hangérzékelő Robot távvezérlés telefonról P2P kliens: adott tartalom egyből a készülékre tölthető Közösségi hálózatokba való bevonás: a telefonkönyv tulajdonképpen egy kis szociális háló BME-AAIT 2010 Szeged 6
Mobil eszközök és platformok Több irányú fejlődés Eltérő hardware képességek Eltérő támogatott technológiák Jelentősen eltérő platformok a PC-s világhoz képest Főbb mobil platformok (2008-as adatok): Symbian 52.4% Windows Mobile 11.8% iphone 8.2% Linux 8.1% Google Android Az első eszköz 2008 utolsó negyedévében jelent meg Java ME: az értékesített eszközök közel 80%-a támogatja BME-AAIT 2010 Szeged 7
Készülékeladások A piac telítődik! Míg 2006-ban még 15.7%-al több készüléket adtak el mint 2005-ben, 2011-re már csak 3%-os növekedést várnak Jelenleg legnagyobb piac Kína és Latin- Amerikai, de ezek is előbb-utóbb telítődnek Egyre nagyobb az értéke a mobil szoftvereknek, lásd pl: iphone market, Android market, OVI Store, stb. BME-AAIT 2010 Szeged 8
Mobil eszközök számításkapacitása π számítás adott tizedesjegyig Nagyságrendbeli különbségek asztali és mobil processzorok között Készülék típusa Nokia N93 Nokia N91 Nokia 6630 SE K750i PC Processzor ARM11 332 MHz ARM9 220 MHz ARM9 220 MHz ARM9 110 MHz Intel Core 2 Duo 1830 MHz PI-JAVA 3.702 sec 5.647 sec 5.703 sec 7.18 sec 0.032 sec PI-Symbian 1.695 sec 2.690 sec 2.710 sec - - BME-AAIT 2010 Szeged 9
Jelentős eltérések a mobil platformok között Támogatott programozási nyelvek Fejlesztőkörnyezetek és eszközök (IDE és Emulátor biztosítása) Natív fejlesztés engedélyezése Támogatott eszközök száma Alacsony szintű funkciók elérhetősége Fejlesztési idő BME-AAIT 2010 Szeged 10
Symbian Rég óta jelenlevő nyílt okostelefon platform Jelenleg a Nokia első számú mobilplatformja Megbízható, kiforrott rendszer Kezdetektől fogva mobiltelefonokra tervezték Érintőképernyős telefonok némi lemaradással jelentek meg más platformokhoz képest UI ergonómia szempontjából fel kell zárkóznia BME-AAIT 2010 Szeged 11
Qt Symbian programozás korábban nehezen tanulható, gyakran nem hatékony volt Új megoldás: Qt 2008-ban Nokia felvásárolta a gyártót Platformfüggetlen programozási környezet (Linux világban régóta jelen van) Intuitív, könnyen kezelhető kód Az új Symbian verziókban alapértelmezett BME-AAIT 2010 Szeged 12
A Google Android platform Egy mobil eszköz képességét a beépített hardver és az azon futó szoftverplatform határozza meg Google Android: az egyik legújabb platform Cél: egyszerűvé tegyék a mobil szoftverek fejlesztését BME-AAIT 2010 Szeged 13
Az Android fő jellemzői Nem kellett kompatibilisnek lenni egyik előző platformmal sem Szoftverfejlesztés Java nyelven (gyakorlatilag Java SE) Alacsonyszintű funkciók is könnyen elérhetők Az alkalmazások egyenrangúak BME-AAIT 2010 Szeged 14
Egységes felület Erőforrás-szerkesztővel elkészíthető XML alapú leírás Az erőforrás-struktúra felkészítve a különböző képernyőméretekre, felbontásokra, orientációra Tweened és frame-by-frame animációk magas szintű támogatása BME-AAIT 2010 Szeged 15
iphone Az első billentyűzet nélküli készülék Gyors reakcióidő, de ára van Intuitív kezelőfelület Látványelemekben gazdag Fejlesztőket segítő Human Interface Guidelines Csak önmagával kompatibilis iphone -> ipad ->? BME-AAIT 2010 Szeged 16
Windows Mobile Megszokott Windows elemek és fejlesztőkörnyezet.net Megújult Windows Phone 7-ben BME-AAIT 2010 Szeged 17
Platformfüggetlen alkalmazásfejlesztés A platformok eltérősége miatt komoly igény egy közös platformra Java alapú alkalmazások alapelve: Az operációs rendszerre épül a Java virtuális gép Az alkalmazások ezen virtuális gépen keresztül érik el az operációs rendszer szolgáltatásait A fentiekből következik a platformfüggetlenség BME-AAIT 2010 Szeged 18
Java platformok Java platformok ( csökkenő sorrendben ): Java EE (Java Platform, Enterprise Edition) Java SE (Java Platform, Standard Editon) Java ME (Java Platform, Micro Editon) A Java ME platformot főként beágyazott eszközökre való fejlesztéshez találták ki, mint például a PDA-k, mobil telefonok, stb. Szabványosított API (Application Programming Interface)-val rendelkezik, de az osztálykönyvtár és a támogatott függvények korlátozottak BME-AAIT 2010 Szeged 19
A Java ME technológia jellemzői Célja: lehetővé tegye Java alkalmazások futtatását eltérő típusú és képességű készülékeken Nehézségek: típusok és platformok különbözősége Eltérő kijelző méret és felbontás Eltérő mennyiségű és általában korlátozott memória (0.5-8 MB) Jelentős különbségek a számításkapacitásban Minden platformra külön Java virtuális gép készül, melyek eltérőséget mutatnak egymáshoz képest BME-AAIT 2010 Szeged 20
Java ME előnyei és hátrányai Előnyök: Rugalmas felhasználói felület Robosztusság Hálózati és off-line alkalmazások támogatása Hálózati protokollok támogatása Hátrányok: Alacsony szintű funkciók elérhetőségének hiánya Virtuális gép miatti overhead BME-AAIT 2010 Szeged 21
Java ME jövője SUN-Oracle integráció Jelenleg az egyetlen megoldás platform független mobil alkalmazásfejlesztésre Korlátozott képességek, nem elégítik ki a modern igényeket Megújulás szükséges: Java ME SDK 3.0 Mac OS-re (2010 január) LWUIT (jó irány, de elavult technológia) MIDP 3.0 BME-AAIT 2010 Szeged 22
Felhasználói felület LWUIT 1/2 LWUIT 1.4 (2010 augusztus) csomag UI vezérlők XHTML komponens (XHTML-MP 1.0): HTML tartalmak renderelése Layout támogatás CSS jellegű testreszabás Fontok támogatása Érintőképernyő kezelése BME-AAIT 2010 Szeged 23
Felhasználói felület LWUIT 2/2 Virtuális billentyűzet Animációk és képernyő átmenetek támogatása 3D és SVG kezelés Kétirányú szöveg kezelés BlackBerry támogatás Fejlesztési életciklus szétbontása BME-AAIT 2010 Szeged 24
MIDP 3.0 JSR 271 1/3 Fejlettebb MIDlet viselkedés: Konkurens MIDlet futtatás Tűzfal kezelés és fejlettebb életciklus MIDletek háttérben futtatása (faceless) MIDlet futtatása az Idle Screen-en MIDlet auto indítás (akár boot során) Fejlett MIDlet közi kommunikáci (direkt és esemény alapú kommunikáció) BME-AAIT 2010 Szeged 25
MIDP 3.0 JSR 271 2/3 Osztott könyvtárak támogatása Készülékek közti interoperabilitás fejlesztése MIDlet telepítési módok bővítése: OMA (SyncML) DM/DS, Bluetooth, hordozható média, MMS és JSR 232 Készülék tulajdonság lekérdezés fejlesztése Lokalizáció fejlett támogatása BME-AAIT 2010 Szeged 26
MIDP 3.0 JSR 271 3/3 Fejlettebb funkcionalitás minden területen: Átláthatóbb és testre szabhatóbb UI elemek Nagyfelbontású kijelzők támogatása Másodlagos kijelző kezelése Gyorsabb játékok Biztonságos RMS Távolról elérhető RMS IPv6 Több hálózati interface támogatása BME-AAIT 2010 Szeged 27
[1] A futtatókörnyezetet azonban általában külön telepíteni kell! [2] Jelenleg csak a Windows Mobile-ra épülő PDA-k és okostelefonok [3] Jelenleg még nem kapható Androidra épülő eszköz Mobil platformok összehasonlítása 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 Symbian OS Symbian C++ Sok Lassú Sok Windows C# Több mint átlagos Átlagos Átlagos mobile Android Java Sok Átlagos Sok iphone OS Objective-C Több mint átlagos Lassú Kevés BME-AAIT 2010 Szeged 28
App generálás vs. egyszerű programozás App generálás a 0 programozói tudástól indul egységesebb funkcionalitás Webes tudással mobil alkalmazások vagy mobil weboldalak Egyszerű prototípusok Python: GTK-s, SOTE-s képzésben Java ME, NetBeans képességek Platformok diverzitása BME-AAIT 2010 Szeged 29
Ovi App Wizard Egyszerű RSS olvasó készítése programozói tudás nélkül Webes WYSIWYG varázsló Maximum 4 feed egy alkalmazásba Multimédiás tartalmakat is kezel Hirdetés helyezhető el az alkalmazásban Használata ingyenes amíg a készítőnek nem származhat bevétele belőle BME-AAIT 2010 Szeged 30
Ovi App Wizard Testreszabhatóság: Ikon Fejléc kép Színséma Feed szövegének, hivatkozásainak színe ~20 kattintással alkalmazás készíthető BME-AAIT 2010 Szeged 31
Nokia WRT Mobil Widgetek webes eszközökkel (Web)programozói tudás szükséges HTML megjelenítés CSS stílusdefiníció JavaScript interakció kezelés, DOM manipulálás WRTKit előre gyártott stílus elemek és JavaScript osztályok a gyakran előforduló feladatokra BME-AAIT 2010 Szeged 32
Nokia WRT Flash Lite beágyazható, használható JavaScript segítségével elérhetők a telefon-specifikus funkciók: Gyorsbillentyűk Képernyő orientáció Perzisztens tárhely Más alkalmazások indítása Naptár, kamera, névjegyzék, GPS, híváslista, üzenetek, szenzorok, BME-AAIT 2010 Szeged 33
Nokia WRT Előnyök a natív kóddal szemben: HTML, CSS, JavaScript, AJAX használata C++ helyett Az alacsony szintű funkciókkal nem kell foglalkoznia a fejlesztőnek Renderelés Eseménykezelés Hálózati kommunikáció Nem szükséges a Symbian Signing Alkalmazás build sokkal gyorsabb BME-AAIT 2010 Szeged 34
Nokia WRT Hátrányok a natív kóddal szemben: Teljesítményben nem éri el a natív alkalmazások szintjét (Widget Engine egy plusz absztrakciós lépcső) Memóriakezelés sokkal kevésbé vezérelhető Helyi erőforrások elérése limitált Third party kiegészítések és könyvtárak nem használhatók BME-AAIT 2010 Szeged 35
Android App Inventor 1/2 Android alkalmazás generátor Több, mint egy UI generátor Összetettebb funkciók támogatása BME-AAIT 2010 Szeged 36
Android App Inventor 2/2 GPS és helymeghatározás támogatása Telco képességek: SMS küldés és fogadás, SMS felolvasás Kommunikáció web alapú rendszerekkel BME-AAIT 2010 Szeged 37
Felhasználói élmény mobiltelefonon Jelenleg nagy hangsúly az alkalmazás felületén (ld. iphone hype) Nehézség: különböző felbontású, méretű, arányú, orientációjú kijelzők egy platformon belül is Hardveres támogatás az animált felületekhez gyakran 3D gyorsító a készülékben BME-AAIT 2010 Szeged 38
Felhasználói felület napjainkban A megszokott elemek lassan elavulnak : Menü Teljes képernyős lista Érintőképernyő támogatása Nagyfelbontású kijelzők Egyre nagyobb szabadság a felület tervezőnek Egyedi, újszerű megoldások terjedése BME-AAIT 2010 Szeged 39
Példa felületek 1/4 BME-AAIT 2010 Szeged 40
Példa felületek 2/4 BME-AAIT 2010 Szeged 41
Példa felületek 3/4 BME-AAIT 2010 Szeged 42
Példa felületek 4/4 BME-AAIT 2010 Szeged 43
Szervezeti felépítés, oktatás, kutatás
Automatizálási és Alkalmazott Informatika Tanszék 36 főlállású oktató, 37 doktorandusz 3 nagy terület: Automatizálás, mechatronika, alk. inf (ez a legnagyobb) Alk inf. több, mint 10 éve, egyre önállóbb alegységekkel a köv. területekről: mobil.net Enterprise világ adatkezelési csoport portál technológia csoport (kisebb) teljesítmény menedzsment (kisebb) További kapcsolatok: Forum Nokia University Member, Innovation Network tag, Microsoft Kompetencia Központ Kapcsolat az iparral: Nokia, NSN, MS, IBM, Telekom, Vodafone, GE, Apple BME-AAIT 2010 Szeged 45
Az Amorg 2002 óta Oktatás: 250+ hallgató/év Platformok Kutatás-fejlesztés Ipari projektek BME-AAIT 2010 Szeged 46
Oktatás Kurzusok 4 kurzus, mely lefedi a mobil platformokat: Symbian OS, Java ME, Andorid, iphone, Maemo, Windows Mobile Körülbelül 250 hallgató évente Körülbelül 5-8 Szakdolgozat/Diplomamunka évente Tréningek 1-5 napos tréningek különféle platformokra Platform specifikus tréningek (e.g. Symbian platform, Java ME, Android) Téma orientált tréningek Áttekintő tréningek Legfontosabb partnerek: Nokia, Nokia Siemens Networks, Microsoft, Siemens PSE BME-AAIT 2010 Szeged 47
Bevezetés a mobilprogramozásba Rendszeresség: heti 1 előadás Számonkérés: HF és félév végén egy ZH Python és Java ME Alapozás Biztos kezdő tudás a HF miatt BME-AAIT 2010 Szeged 48
Mobilszoftverek Rendszeresség: heti 1 előadás és 1 gyakorlat, következő félévben heti 1 labor Számonkérés: ZH és Vizsga Platformok: Java ME, Android, Symbian és QT, iphone Mobilspecifikus tervezési minták Összetettebb funkciók, feladatok BME-AAIT 2010 Szeged 49
Symbian alapú szoftverfejlesztés Rendszeresség: heti 1 előadás és 1 labor Számonkérés: HF és vizsga Platformok: Symbian és QT Symbian operációs rendszer teljes körű ismertetése QT és Symbian kapcsolata Alapos tudás a Nokia platformok világában BME-AAIT 2010 Szeged 50
Beágyazott Linux rendszerek Rendszeresség: heti 1 előadás Számonkérés: HF és vizsga Platformok: Linux alapok és MeeGo, valamint QT HF cél eszköz: Nokia N810, N900 Kezdő linux-osoknak is ajánlott BME-AAIT 2010 Szeged 51
Önálló labor, Szakdolgozat, Diplomaterv Hallgató önálló témája, vagy tanszéki téma Körülbelül 10-15 önálló labor félévente Körülbelül 5-8 Szakdolgozat/Diplomaterv évente Heti konzultáció Önálló feladatvégzés BME-AAIT 2010 Szeged 52
Legfontosabb kutatási irányok Peer-to-peer Szemantikus P2P Energia hatékonyság Energia hatékony tartalommegosztás Közösségi hálózatok Közösségi hálózatok modellezése Mobil platformok egységesítése Modell alapú kódgenerálás Gyors alkalmazás fejlesztés BME-AAIT 2010 Szeged 53
Esettanulmányok, projektek
Mobil BitTorren kliensek Követelmények az eszköz és platform szempontjából: HTTP és TCP kapcsolat támogatása Fájlrendszer elérése (mobil eszközök esetén nem triviális) Elfogadható mennyiségű memória és rendelkezésre álló számításkapacitás Példa: 350 MB tartalom letöltéséhez elegendő csupán 500 KB-1 MB memória (BitTorrent protokoll tulajdonságai miatt) Az okostelefonok és az egyszerűbb mobil készülékek is eleget tesznek a BitTorrent követelményeinek: SymTorrent, MobTorrent BME-AAIT 2010 Szeged 55
Elterjedtség, generált adatforgalom A P2P adatforgalom a feltöltési adatforgalomban dominál 61%-al, míg a letöltési irányban 22%-át teszi ki az összes adatforgalomnak. www.sandvine.com - 2008 Global Broadband survey BME-AAIT 2010 Szeged 56
CloudTorrent A mobilon futó CloudTorrent kliens, mely a SymTorrent-re épül µtorrent & Apache, Amazon EC2-őn 1. Fájl letöltése BitTorrenttel a CloudTorrent szerverre Cloud torrent szerver 2. A torrent letöltése közben a mobil x (20) másodpercenként lekérdezi a letöltés állapotát a szervertől 3. Mikor az egész fájl letöltődött, a kliens HTTP-n letölti a szerverről HTTP/JSON BitTorrent BME-AAIT 2010 Szeged 57
Teljesítmény 65% energia megtakarítás, 60% idő megtakarítás a SymTorrent-el (standard BitTorrent) összehasonlítva BME-AAIT 2010 Szeged 58
P2P energiaszükséglete SymTorrent energiamérések Néhány órás üzemidő BME-AAIT 2010 Szeged 59
Java ME hiányosságok Hálózatkezelés Max 9 párhuzamos kapcsolat Túl hosszú kapcsolódás timeout Egyszerre csak egy kapcsolódási kérés indítható Számítási kapacitás Különösen hash ellenőrző értékek számításánál Fájlkezelés Keresés fájlon belül lassú (nincs seek) BME-AAIT 2010 Szeged 60
Kiterjesztett valóság Objektumok elhelyezése a kameraképen Új információk hozáadása BME-AAIT 2010 Szeged 61
Bluetooth alapú távvezérlő mobil telefonokra Mobiltelefon, mint nem speciális hardver is alkalmas akár ipari készülékeket irányítására Különféle vezeték nélküli technológiák a legegyszerűbb mobil telefonokban is Példa alkalmazások: NXT Robot, Szökőkút fúvókák BME-AAIT 2010 Szeged 62
Workflow és helymeghatározás Workflow management - Nokia BizTalk és InfoPath integráció okostelefonokra Workflow management mobil kliensekkel Mobile platformok üzleti folyamatokhoz Hely alapú szolgáltatások MYTH Meet You There FindFriends BME-AAIT 2010 Szeged 63
Közösségi hálózatok Social networking Smiwle! Phonebookmark Nokia Siemens Networks BME-AAIT 2010 Szeged 64
Keep In m-mind MindMap alkalmazás mobil készülékekre Strukturált adatmegjelenítés A mobil eszköz képességeinek kihasználásával Felhasználói felület: LWUIT keretrendszer Jól dokumentált, ergonomikus keretrendszer MindMap rajzolás: SVG-tiny Megjelenítés fa struktúrában Tetszőleges nagyítás/kicsinyítés BME-AAIT 2010 Szeged 65
Alapfunkciók BME-AAIT 2010 Szeged 66
Közös gondolkodás BME-AAIT 2010 Szeged 67
Speciális elemek BME-AAIT 2010 Szeged 68
Multiscreen Mobiltelefon kijelzője mint erőforrás Szinkronizáció a kijelzők frissítéséhez Bluetooth WLAN Újszerű alkalmazási lehetőségek: Nagyfelbontású képek/videók Játékok Stb. BME-AAIT 2010 Szeged 69
Multiscreen példa Multiscreen snake: Multiscreen elrendezések: BME-AAIT 2010 Szeged 70
MobSensor Mozgás és hangérzékelő mobiltelefonra Mintavétel kameráról és mikrofonról Minták feldolgozás és összehasonlítása Jelentős eltérés esetén riasztás Riasztást kiváltó kép/hang feltöltése weboldalra BME-AAIT 2010 Szeged 71
MobSensor érzékelő hálózat kialakítása Érzékelő hálózat létrehozása Ad hoc WLAN technológia segítségével Központi eszköz: Hálózat felügyelése Egyes riasztók ideiglenes kikapcsolása Amennyiben az egyik telefon riasztást érzékel, figyelmezteti a többi készüléket BME-AAIT 2010 Szeged 72
Összefoglalás Mobil platformok eltérősége megnehezíti a fejlesztést Mobilergonómia kiemelt szerepe Mobil készülékekben rejlő lehetőségek hatékony kiaknázása Oktatás, kutatás jelentősége Tananyag folyamatos fejlesztése BME-AAIT 2010 Szeged 73
Köszönöm a figyelmet! További információk: http://amorg.aut.bme.hu/ E-mail cím: peter.ekler@aut.bme.hu BME-AAIT 2010 Szeged 74