Intelligens környezet ése-technológiák                Multiplatform   Intelligens környezet és              mobil fejleszt...
Az előadás alapfelvetése„Desktop alkalmazás fejlesztő vagyok. Kíváncsivagyok hogyan lehet alkalmazásokat fejleszteni azoko...
Melyik platformot válasszam?MOBIL PLATFORMOK
Szoftver platformok•   A korai mobileszközökre nem lehetett harmadik    félnek szoftvert fejleszteni•   Mára a helyzet meg...
C nyelv•   Symbian•   Maemo (GTK+)•   Android (fejlesztői könyvtárak)Csökken a támogatottsága, a C++ leváltja
Objective C nyelv•   iOSA Mac OS X fejlesztők használhatják a jól bevált  eszközöket: XCode, Interface Builder
C++ nyelv•   Symbian    •   Natív (egyéni)    •   Open•   Maemo/MeeGo•   Bada    •   Natív (egyéni)•   Android (fejlesztői...
C#, VB, .NET compact fw•   Windows Phone 7 (Silverlight)•   (Symbian)
Java•   Java ME (Java Mobile Edition)    •   A Java mobilkészülékekre kifejlesztett változata    •   A legtöbb mobilkészül...
Python•   Symbian•   Maemo/MeeGo•   Portok léteznek további mobil platformokra is
JavaScript, CSS, HTML•   WebOS (HP)•   A többi platformon web browser
Ha egyszerre több platformra fejlesztenénkCROSS-PLATFORMMEGOLDÁSOK
Flash lite•   Flash mobilokra optimalizált verziója•   Android, iOS, BlackBerry Tablet OS•   Alapvetően UI készítésre, de ...
Qt•   C++•   Platformok    •   Asztali platformok        •   Linux, Windows, Mac OS X    •   Beágyazott platformok        ...
MoSync•   C, C++•   Platformok    •   Android, iOS, Symbian, MeeGo, Java ME•   Az alacsony szintű funkciók elérhetősége   ...
Platformok elterjedtsége•   Elterjedtek:    •   Android(33%), Symbian(31%), iOS(16%),        RIM(14%)•   Feltörekvők    • ...
A Symbian, a WindowsPhone, és a MeeGo jövője
Mire kell odafigyelnie egy desktop fejlesztőnek mobilon?ÁTTÉRÉS DESKTOPRÓL
Desktop - mobil különbségek•   Bemeneti lehetőségek•   Erőforrások•   Egyéb eltérések
Bemeneti lehetőségek•   Érintő képernyő nem egér    •   Csak bal klikk    •   Nincs egér mozgás    •   Nehéz célzás    •  ...
Erőforrások•   Számítási teljesítmény•   Memória•   Háttértár•   Akkumulátor    •   Hosszú számítások, folyamatos kommunik...
Egyéb eltérések•   Azonos fejlesztő platform esetén is adódnak eltérések•   Általában kezelhetőek és egységes maradhat a f...
ESETTANULMÁNYDESKTOP - MOBIL VÁLTÁSRA
Mennyire cross az a cross-platform?•   Qt-val a cross-platform egyszerű    •   Az SDK-val lefordítjuk a cél platformra    ...
Maemo - QtCreator(MADDE)
Qt desktop - Maemoeltérések 1/4•   Új elemek    •   Edit Bar    •   Információs sávok: Note, Banner    •   Picker Button  ...
Qt desktop - Maemoeltérések 2/4•   A desktop window managerhez képest megkötések    vannak:    •   Nincs átlátszó ablak   ...
Qt desktop - Maemoeltérések 3/4•   Nem mindent widget van adaptálva, csak az    általánosabbak•   Az általános dialógus ab...
Qt desktop - Maemoeltérések 4/4•   Qt Mobility    •   Mobilspecifikus funkciókat tömörítő API-k    •   Sok funkció desktop...
Mobility 1.1 részei (1/2)API Framework     LeírásBearer            A telefon hálózati kapcsolat menedzselő APIManagementCa...
Mobility 1.1 részei (2/2)API Framework      LeírásMessaging          A különböző üzenetkezelési lehetőségek elérése (SMS, ...
GYAKORLATI PÉLDA
Mit alkotunk?
Mivel?
Létrehozunk egy projektet
Létrehozunk egy Widgetet
Megadjuk a megjelenésétvoid MyWidget::paintEvent(QPaintEvent*){  QPainter p(this);  …  qreal deg1 = state * 2 * M_PI;  dra...
Hozzáadjuk az animációtMyWidget::MyWidget(QWidget* parent) :  QWidget(parent){  state = 0;  pTimeLine = new QTimeLine(3000...
Forgás irány beállításaHeader:…public slots:  void slotForward(int forward);…Forrás:void MyWidget::slotForward(int forward...
Összeállítjuk a felületet
Bekötjük a szignálokat
Lefordítjuk a platformokra
Multiplatform mobil fejlesztések
Upcoming SlideShare
Loading in …5
×

Multiplatform mobil fejlesztések

1,231 views

Published on

Aki manapság bárki számára elérhető mobilalkalmazás fejlesztésére adja a fejét, tetemes plusz munkát vállal magára.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,231
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
25
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Multiplatform mobil fejlesztések

  1. 1. Intelligens környezet ése-technológiák Multiplatform Intelligens környezet és mobil fejlesztések e-technológiák Bányász Gábor BME - Automatizálási és Alkalmazott Informatikai Tanszék TÁMOP-4.2.1/B-09/1/KMR-2010-0002 1
  2. 2. Az előadás alapfelvetése„Desktop alkalmazás fejlesztő vagyok. Kíváncsivagyok hogyan lehet alkalmazásokat fejleszteni azokos mobilokhoz. Hogyan kezdjek hozzá, mirefigyeljek?”
  3. 3. Melyik platformot válasszam?MOBIL PLATFORMOK
  4. 4. Szoftver platformok• A korai mobileszközökre nem lehetett harmadik félnek szoftvert fejleszteni• Mára a helyzet megváltozott: nem ritka, hogy egy készülékre akár 3 különféle nyelven is lehet szoftvert írni (pl. natív C++, Java ME, Python)• Mobil szoftverplatform • Programozási nyelv • Kódkönyvtárak • Fejlesztőeszközök (SDK, emulátor)
  5. 5. C nyelv• Symbian• Maemo (GTK+)• Android (fejlesztői könyvtárak)Csökken a támogatottsága, a C++ leváltja
  6. 6. Objective C nyelv• iOSA Mac OS X fejlesztők használhatják a jól bevált eszközöket: XCode, Interface Builder
  7. 7. C++ nyelv• Symbian • Natív (egyéni) • Open• Maemo/MeeGo• Bada • Natív (egyéni)• Android (fejlesztői könyvtárak)
  8. 8. C#, VB, .NET compact fw• Windows Phone 7 (Silverlight)• (Symbian)
  9. 9. Java• Java ME (Java Mobile Edition) • A Java mobilkészülékekre kifejlesztett változata • A legtöbb mobilkészülék által támogatott • Kompatibilitási problémák (extension-ök miatt)• Módosított Java • Android (Dalvik JVM) • BlackBerry (RIM API)
  10. 10. Python• Symbian• Maemo/MeeGo• Portok léteznek további mobil platformokra is
  11. 11. JavaScript, CSS, HTML• WebOS (HP)• A többi platformon web browser
  12. 12. Ha egyszerre több platformra fejlesztenénkCROSS-PLATFORMMEGOLDÁSOK
  13. 13. Flash lite• Flash mobilokra optimalizált verziója• Android, iOS, BlackBerry Tablet OS• Alapvetően UI készítésre, de képes elérni a készülék bizonyos alacsonyszintű funkcióit is• Gyakran lassúcska a vektoros grafika miatt
  14. 14. Qt• C++• Platformok • Asztali platformok • Linux, Windows, Mac OS X • Beágyazott platformok • Embedded Linux, Windows CE, QNX, VxWorks • Mobil platformok • Symbian, Maemo/MeeGo, Android (alpha)• Képes elérni az eszközök alacsony funkcióit is
  15. 15. MoSync• C, C++• Platformok • Android, iOS, Symbian, MeeGo, Java ME• Az alacsony szintű funkciók elérhetősége platformonként változó
  16. 16. Platformok elterjedtsége• Elterjedtek: • Android(33%), Symbian(31%), iOS(16%), RIM(14%)• Feltörekvők • Windows Phone, Maemo/MeeGo, Bada, webOS
  17. 17. A Symbian, a WindowsPhone, és a MeeGo jövője
  18. 18. Mire kell odafigyelnie egy desktop fejlesztőnek mobilon?ÁTTÉRÉS DESKTOPRÓL
  19. 19. Desktop - mobil különbségek• Bemeneti lehetőségek• Erőforrások• Egyéb eltérések
  20. 20. Bemeneti lehetőségek• Érintő képernyő nem egér • Csak bal klikk • Nincs egér mozgás • Nehéz célzás • Multitouch• Gombok • Néhány, főként rendszer funkciókhoz• Billentyűzet • Ha van, akkor is korlátozott
  21. 21. Erőforrások• Számítási teljesítmény• Memória• Háttértár• Akkumulátor • Hosszú számítások, folyamatos kommunikáció szívják el az energiát.• A kommunikáció pénzbe kerül
  22. 22. Egyéb eltérések• Azonos fejlesztő platform esetén is adódnak eltérések• Általában kezelhetőek és egységes maradhat a forrás
  23. 23. ESETTANULMÁNYDESKTOP - MOBIL VÁLTÁSRA
  24. 24. Mennyire cross az a cross-platform?• Qt-val a cross-platform egyszerű • Az SDK-val lefordítjuk a cél platformra • A Qt lib automatikusan kezeli a megjelenést
  25. 25. Maemo - QtCreator(MADDE)
  26. 26. Qt desktop - Maemoeltérések 1/4• Új elemek • Edit Bar • Információs sávok: Note, Banner • Picker Button • Stacked Windows
  27. 27. Qt desktop - Maemoeltérések 2/4• A desktop window managerhez képest megkötések vannak: • Nincs átlátszó ablak • Az ablakok mérete normál vagy teljes képernyős • Tájkép és portré mód
  28. 28. Qt desktop - Maemoeltérések 3/4• Nem mindent widget van adaptálva, csak az általánosabbak• Az általános dialógus ablakok hiányoznak• Egy szintű menü• Kinetikus scroll
  29. 29. Qt desktop - Maemoeltérések 4/4• Qt Mobility • Mobilspecifikus funkciókat tömörítő API-k • Sok funkció desktop operációs rendszeren is használható • Messaging, Multimedia, Publish and Subscribe, …
  30. 30. Mobility 1.1 részei (1/2)API Framework LeírásBearer A telefon hálózati kapcsolat menedzselő APIManagementCamera Fotók, videó készítése, vaku, zoom állításaContacts Contact (címtár) adatok lekérése helyi vagy távoli tárolóbólDocument Dokumentumok metaadat alapján történő keresése, böngészéseGalleryFeedback A vibramotor és a piezo (tactile) rezgő visszajelzések kezeléseLocation Helymeghatározáshoz, POI-k kezeléséhez, térkép és navigáció kezeléséhez szükséges gyűjteményMaps / Térképek és útvonal információk elérése, térképek mozgatása,Navigation jelzések elhelyezése
  31. 31. Mobility 1.1 részei (2/2)API Framework LeírásMessaging A különböző üzenetkezelési lehetőségek elérése (SMS, MMS, e- mail)Multimedia Média felvétele, visszajátszása, rádióOrganizer Naptár, ütemezés, személyes adatok (feljegyzések, napló/blog) elérése lokális vagy távoli szolgáltatóktólPublish and A Publish and Subscribe API, a Value Space segítségével, lehetővéSubscribe teszi különböző célra értékek eltárolását, visszaolvasását, illetve feliratkozást az érték megváltozására.Sensor Hozzáférés a HW szenzorokhoz, az eszköz orientáció érzékeléseService Különböző célú szolgáltatások felfedezésére és használatáraFramework szolgáló általános APISystem A rendszerinformációk lekérdezése és értesítés kéréseInformationVersit Versit dokumentumok (vCard, iCal) kezelése.
  32. 32. GYAKORLATI PÉLDA
  33. 33. Mit alkotunk?
  34. 34. Mivel?
  35. 35. Létrehozunk egy projektet
  36. 36. Létrehozunk egy Widgetet
  37. 37. Megadjuk a megjelenésétvoid MyWidget::paintEvent(QPaintEvent*){ QPainter p(this); … qreal deg1 = state * 2 * M_PI; drawThing(p, c + QPointF(c.x() * 0.6 * qSin(deg1), c.y() * 0.6 * qCos(deg1)), r,Qt::red, 0.55 + 0.45 * qCos(deg1)); …}void MyWidget::drawThing(QPainter& p, const QPointF& center, qreal r, QColorcolor, qreal opacity){ QRadialGradient g(center, 10); g.setSpread(QGradient::RepeatSpread); g.setColorAt(0.0, Qt::white); g.setColorAt(1.0, color); p.setBrush(g); p.setOpacity(opacity); p.drawEllipse(center, r, r);}
  38. 38. Hozzáadjuk az animációtMyWidget::MyWidget(QWidget* parent) : QWidget(parent){ state = 0; pTimeLine = new QTimeLine(3000, this); pTimeLine->setCurveShape(QTimeLine::LinearCurve); connect(pTimeLine, SIGNAL(valueChanged(qreal)), this,SLOT(doAnim(qreal)));}void MyWidget::doAnim(qreal v){ state = v; update();}void MyWidget::mousePressEvent(QMouseEvent*){ if(pTimeLine->state() != QTimeLine::Running) pTimeLine->start();}
  39. 39. Forgás irány beállításaHeader:…public slots: void slotForward(int forward);…Forrás:void MyWidget::slotForward(int forward){ if(forward == Qt::Unchecked) { pTimeLine->setDirection(QTimeLine::Backward); } else { pTimeLine->setDirection(QTimeLine::Forward); }}
  40. 40. Összeállítjuk a felületet
  41. 41. Bekötjük a szignálokat
  42. 42. Lefordítjuk a platformokra

×