Mobil Szoftverfejlesztés az Oktatásban és Kutatásban Ekler Péter
[email protected] Szeged Szeminárium Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék
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”
Okostelefon (smartphone)
Naptár, email, fejlett szervezőfunkciók Egyszerű Okostelefon mobilkészülék
PDA (Personal Digital Assistant)
Beszédátvitel, SMS, Java
Érintőképernyő
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 LatinAmerikai, 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 Alacsony
szintű funkciók elérhetősége
Fejlesztési
© BME-AAIT 2010
eszközök száma
idő Szeged
10
Symbian Rég
óta jelenlevő nyílt okostelefon platform
Jelenleg a Nokia első számú mobilplatformja
Megbízható, kiforrott rendszer
Kezdetektől
tervezték
fogva mobiltelefonokra
É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 XML
elkészíthető
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
© BME-AAIT 2010
Windows Phone 7-ben
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 UI
1.4 (2010 augusztus) csomag
vezérlők
XHTML
komponens (XHTML-MP 1.0): HTML tartalmak renderelése
Layout CSS
támogatás
jellegű testreszabás
Fontok
támogatása
Érintőképernyő © BME-AAIT 2010
kezelése 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 Elérhető funkciók Fejlesztés nyelv gyorsasága
Támogatott eszközök száma
Átlagos
Átlagos
Nagyon sok
Symbian OS Symbian C++
Sok
Lassú
Sok
Windows mobile Android
C#
Több mint átlagos
Átlagos
Átlagos
Java
Sok
Átlagos
Sok
iPhone OS
Objective-C
Több mint átlagos
Lassú
Kevés
Java ME
© BME-AAIT 2010
Java
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 Hirdetés
tartalmakat is kezel
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
© BME-AAIT 2010
kattintással alkalmazás készíthető
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
– előre gyártott stílus elemek és JavaScript osztályok a gyakran előforduló feladatokra
WRTKit
© 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ó
© BME-AAIT 2010
web alapú rendszerekkel
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ő Nagyfelbontású
támogatása kijelzők
Egyre
nagyobb szabadság a felület tervezőnek
Egyedi, © BME-AAIT 2010
újszerű megoldások terjedése 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
© BME-AAIT 2010
projektek
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: Számonkérés: Python
heti 1 előadás
HF és félév végén egy ZH
és Java ME
Alapozás Biztos
© BME-AAIT 2010
kezdő tudás a HF miatt
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: Platformok:
ZH és Vizsga
Java ME, Android, Symbian és
QT, iPhone Mobilspecifikus Összetettebb
© BME-AAIT 2010
tervezési minták
funkciók, feladatok
Szeged
49
Symbian alapú szoftverfejlesztés Rendszeresség: Számonkérés: Platformok:
heti 1 előadás és 1 labor
HF és vizsga
Symbian és QT
Symbian
operációs rendszer teljes körű ismertetése
QT
és Symbian kapcsolata
Alapos
© BME-AAIT 2010
tudás a Nokia platformok világában Szeged
50
Beágyazott Linux rendszerek Rendszeresség: Számonkérés:
heti 1 előadás
HF és vizsga
Platformok:
Linux alapok és MeeGo, valamint QT
HF
cél eszköz: Nokia N810, N900
Kezdő
© BME-AAIT 2010
linux-osoknak is ajánlott
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ó
© BME-AAIT 2010
feladatvégzés
Szeged
52
Legfontosabb kutatási irányok
Peer-to-peer
Energia hatékonyság
Energia hatékony tartalommegosztás
Közösségi hálózatok
Szemantikus P2P
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 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
Cloud torrent szerver
3. Mikor az egész fájl letöltődött, a kliens HTTP-n letölti a szerverről
HTTP/JSON
© BME-AAIT 2010
BitTorrent
Szeged
57
Teljesítmény energia megtakarítás, 60% idő megtakarítás a SymTorrent-el (standard BitTorrent) összehasonlítva
65%
© BME-AAIT 2010
Szeged
58
P2P energiaszükséglete SymTorrent
Néhány © BME-AAIT 2010
energiamérések
órás üzemidő 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ó
Bluetooth
WLAN
Újszerű
a kijelzők frissítéséhez
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:
[email protected]
© BME-AAIT 2010
Szeged
74