Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Multiplatform mobil fejlesztések

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 43 Publicité

Multiplatform mobil fejlesztések

Télécharger pour lire hors ligne

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.

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.

Publicité
Publicité

Plus De Contenu Connexe

Similaire à Multiplatform mobil fejlesztések (20)

Publicité

Plus par Open Academy (17)

Multiplatform mobil fejlesztések

  1. 1. Intelligens környezet és e-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áncsi vagyok hogyan lehet alkalmazásokat fejleszteni az okos mobilokhoz. Hogyan kezdjek hozzá, mire figyeljek?”
  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 • iOS A 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énk CROSS-PLATFORM MEGOLDÁ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 Windows Phone, é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ÁNY DESKTOP - 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 - Maemo eltérések 1/4 • Új elemek • Edit Bar • Információs sávok: Note, Banner • Picker Button • Stacked Windows
  27. 27. Qt desktop - Maemo elté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 - Maemo elté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 - Maemo elté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ás Bearer A telefon hálózati kapcsolat menedzselő API Management Camera Fotók, videó készítése, vaku, zoom állítása Contacts Contact (címtár) adatok lekérése helyi vagy távoli tárolóból Document Dokumentumok metaadat alapján történő keresése, böngészése Gallery Feedback A vibramotor és a piezo (tactile) rezgő visszajelzések kezelése Location Helymeghatározáshoz, POI-k kezeléséhez, térkép és navigáció kezeléséhez szükséges gyűjtemény Maps / 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ás Messaging 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ól Publish 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ése Service Különböző célú szolgáltatások felfedezésére és használatára Framework szolgáló általános API System A rendszerinformációk lekérdezése és értesítés kérése Information Versit 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ét void 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, QColor color, 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ót MyWidget::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ása Header: … 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

×