iphone és Android két jó barát...



Hasonló dokumentumok
Mobilplatformok Merre tart a világ? Kis Gergely MattaKis Consulting

Crossplatform mobil fejlesztőkörnyezet kiválasztását támogató kutatás

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

Flex: csak rugalmasan!

Bevezetés, platformok. Léczfalvy Ádám

mlearning Mobil tanulás a gyakorlatban

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Fejlesztői szemmel at K

Mobil Informatikai Rendszerek

A mobil nyelvtanár megvalósításának folyamata

MOBIL PLATFORMHÁBORÚ. Török Gábor

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Kis Gergely MattaKis Consulting Fejlesztői szemmel

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Safebrand a magyar termékekért

Kis Gergely MattaKis Consulting Fejlesztői szemmel

Mobil Informatikai Rendszerek

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

SZABADKAI MŰSZAKI SZAKFŐISKOLA. PREZENTÁCIÓ E-mobil tantárgyból Jquery Mobil Keretrendszer SZABADKA, 2015.

Gyors, kényelmes, típusbiztos

Mire nem jó egy telefon!

Java I. A Java programozási nyelv

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

Web-fejlesztés NGM_IN002_1

Közösség, projektek, IDE

Cross platform játékmotor + szerkesztő Támogatott platformok





Szoftver újrafelhasználás

Pentaho 4: Mindennapi BI egyszerűen. Fekszi Csaba Ügyvezető október 6.

Hova tart a cross platform mérés?

Mobil készülékek programozása

FELHASZNÁLÓI KÉZIKÖNYV 1.sz. melléklet

Megújul a Videotorium

Mobil szolgáltatások és alkalmazások fejlesztése

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Mobilizált könyvtári felületek

FELHASZNÁLÓI KÉZIKÖNYV 1.sz. melléklet

Nokia N9 - MeeGo Harmattan bemutatkozik

IBM WorkLight 5.0 mobil alkalmazás platform

Mobil Peer-to-peer rendszerek

Feltörekvő technológiák: seam, drools, richfaces és társai a JBossban

Előszó A Windows alkalmazásfejlesztés rövid története A Windows életútja A Windows 8 paradigmaváltása... 16

Mobilizálódó OSZK. A nemzeti könyvtár mobileszközöket célzó fejlesztései az elmúlt időszakban. Garamvölgyi László. Networkshop, 2013.

Távközlési és Médiainformatikai Tanszék Hálózatok és szolgáltatások szakirány. Szolgáltatások és alkalmazások. Apple App Store. Sándor Roland Martin

ARM Cortex magú mikrovezérlők. mbed

Nagy bonyolultságú rendszerek fejlesztőeszközei

Gyakorlatok. VITMMA09 Okos város MSc mellékspecializáció

Az NFC-technológia mindennapi életben való alkalmazásának vonzó lehetőségei

OTRS bevezetése és tapasztalatok a DF-ISZK-n

Játékfejlesztés a Windows Phone 7 erejével

Tartalomjegyzék. I. rész: Bevezető ismeretek. II. rész: PyS Bevezetés a mobiltechnológiákba Mobilszoftverplatformok...

MKB. Mobil NetBANKár. Mobil eszköz és böngészı beállítások

Ustream.tv Bepillantás egy közösségi élővideo site működésébe

A Java EE 5 plattform

ANDROID ALKALMAZÁS FEJLESZTÉS

A jelenlegi és az új szolgáltatás moduljai. Web. Web. Play button. Mobil+app


Ember-gép interfész. 1. gyakorlat. Csapó Tamás szeptember 16.

Üzleti folyamatok rugalmasabb IT támogatása. Nick Gábor András szeptember 10.

Hálózati betekint ő program telepítése mobil telefonra. Symbian. alarm shop. Windows mobile Android IPhone Blackberry

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

Számlaigazoltatás újratöltve. Lázár Péter

Tesztelés: kezdd el már az elejétől!

Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban

Mobil eszközök programozása Mivel is kezdjem?

Mobil eszközök programozása Mivel is kezdjem?

STORE. Rajacsics Tamás BME AAIT

Java I. A Java programozási nyelv

Budapesti Műszaki és Gazdaságtudományi Egyetem Távközlési és Médiainformatikai Tanszék. TDK dolgozat

A Scolvo DIRECT teljeskörű direkt marketing megoldást biztosít vállalata számára minden mobil eszközön alkalmazásként valamint weben és mobil weben.

A 365 Solutions Kft. büszke a teljesítményére, az elért sikereire és a munkatársai képességeire. Kamatoztassa ön is a tapasztalatainkat és a

MVC. Model View Controller

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem



Autóipari beágyazott rendszerek. Komponens és rendszer integráció

NIIF Sulinet szolgáltatásai


.NET Microsoft.Net Framework

Helyzetalapú szolgáltatások közösségi hálózatokon. Helyzetalapú szolgáltatások

Integral IP Az IP technológia megjelenése a tűzjelzéstechnikában Tűzvédelmi Szakmai Napok Vecsés, június

Symbian Nokia. A Symbian gyártója és a Nokia szabad forráskódúvá tette a Symbiant, így szabadon fejleszthetőek az applikációk a szoftverre.

Iman 3.0 szoftverdokumentáció

Üzleti intelligencia eszköztár a SAS 9.2 platformon

Touch me - az Iphone világsikerének titkai






WEB alapú kataszter információs rendszer Koszovóban KCLIS


Melyek az újdonságok a Microsoft Dynamics AX 2012-ben? Sasfi Imre

WEB2GRID: Desktop Grid a Web 2.0 szolgálatában

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

Alkalmazás boltok. Android Market, Apple AppStore, WP7 MarketPlace Cserna Bence, Paksy Patrik

Átírás:

iphone és Android két jó barát... Multiplatform alkalmazásfejlesztés a gyakorlatban Kis Gergely MattaKis Consulting 1

Tartalom Miért multiplatform fejlesztés? Multiplatform fejlesztési módszerek A közös nyelvek: Java és C/C++ Egy multiplatform termék tervezése Gyakorlati bemutató XMLVM: Java támogatás iphone-on MattaKis Porting Framework 2

Miért multiplatform fejlesztés? 3

Miért multiplatform fejlesztés? Több potenciális vásárló Ügyféligényeknek megfelelés Forrás: Canalys, Wikipedia 4

Multiplatform fejlesztési módszerek Különálló fejlesztések Az alkalmazást minden platformra külön fejlesztik Előnyök Adott platformra optimalizált felhasználói felület és kód Kooperáció csak a specifikációkban és a szerveroldali komponensekben lehetséges Hátrányok Kódduplikáció Lassabb, drágább fejlesztés 5

Multiplatform fejlesztési módszerek (2) Különálló fejlesztések Közös nyelven/platformon történő fejlesztés Előnyök A kód jelentős részét (90+%) csak egyszer kell kifejleszteni Hátrányok A felhasználói felület elüthet a natív alkalmazásoktól Kevésbé optimalizált kód Nem minden platformhoz található megfelelő közös nyelv 6

Multiplatform fejlesztési módszerek (3) Különálló fejlesztések Komponensek újrafelhasználása (pl. C/C++ könyvtárak) Előnyök Bonyolult kódrészek kifejlesztése spórolható meg A teljesítményigényes részekhez gyors implementáció használható Hátrányok A közös komponenseken kívüli kódrészeket minden platformra ki kell fejleszteni Nem minden platformon lehetséges a natív komponensek felhasználása 7

Közös nyelvek Java A legszélesebb körben elterjedt mobil programozási nyelv A smartphone-ok 80-90%-án elérhető Android, Symbian (J2ME), BlackBerry és most már iphone is Egyszerű, fejlesztőeszközökkel jól támogatott J2ME, BlackBerry régi, elavult API-k 8

Közös nyelvek (2) C / C++ Teljesítményigényes kódrészek írására alkalmas iphone, Android, Symbian, Windows Mobile stb. Kivétel: BlackBerry Mobilbiztos C++ Nincs RTTI Nincs kivételkezelés Standard könyvtárnak csak egyes részei használhatók 9

Közös nyelvek (3) Javascript Web technológiákra épülő alkalmazások fejlesztése iphone, Android, Palm WebOS WebKit böngészőmotor beágyazva Nagyon jó struktúrált dokumentumok megjelenítésére A Webes alkalmazások problémái (teljesítmény, többszálúság hiánya) hatványozottan jelentkeznek 10

Egy multiplatform termék megtervezése Célcsoport: Üzleti alkalmazások Gyakran igény, hogy minél több platformon elérhető legyen Ergonomikus, funkcionális felület az igény, nem Eye Candy Feladatok Megcélzott platformok kiválasztása Felhasználói élmény Multimédia Kommunikáció 11

Megcélzott platformok kiválasztása BlackBerry Az üzleti világban nagyon elterjedt Java (J2ME + kiterjesztések) iphone Gyorsan terjed üzleti felhasználásokra is Objective-C, Java, Mono (.NET) Android Egyre többen igénylik, de általában alacsonyabb prioritás Java és C/C++ 12

Felhasználói élmény 1. Egyedi, alkalmazásra jellemző felület minden platformon Előny Hátrány Csak egyszer kell kifejleszteni Az alkalmazást ismerőknek könnyű a platformok között váltani Nem natív alkalmazás iphone esetén gond lehet az App Store-ba kerüléssel Új felhasználóknak nehezebb lehet megszokni 13

Felhasználói élmény (2) 2. Platformnak megfelelő felhasználói felület nyújtása Előny: Hátrány Natív alkalmazás Új felhasználók könnyen megszokják Több fejlesztést igényel Más platformokról áttérőknek szokni kell a felületet 14

Multimédia BlackBerry J2ME JSR-135, felvételhez AMR codec DRM-hez BlackBerry kiterjesztések iphone Korlátozott Objective-C API C API közvetlenül az AudioQueue-khoz AMR felvételt nem támogat Nem szabványos kiterjesztések lehetősége (C/C++) Android Korlátozott MediaPlayer / Recorder API PCM adatokhoz közvetlen hozzáférés Nem szabványos kiterjesztések lehetősége (C/C++) 15

Kommunikáció BlackBerry iphone IP alapú: BES, BIS, Direkt TCP (WLAN, 3G) Bluetooth: JSR-82 IP alapú: WLAN, 3G, Bonjour Bluetooth: GameKit, csak iphoneos alapú eszközök között, Bonjour-ra épül Android IP alapú: WLAN, 3G Bluetooth: 1.6 óta az SDK-ban, előtte nem hivatalos kiterjesztések (pl. Bluecove) 16

Gyakorlati bemutató: PreziMote Távirányító prezentációkhoz Vakon is használható felület Eredeti változat: Bluetooth kommunikáció Android 1.5 támogatás iphone támogatás: Bluetooth nem használható Áttérés IP alapú kommunikációra 17

PreziMote iphone változat Az Android verzió kódja módosítás nélkül lefordítható iphone-ra Android képernyő iphone képernyők 18

Java támogatás iphone-on: XMLVM Java Objective-C keresztfordító Java Runtime Library implementáció Objective-Cben iphone API Java binding Android API implementáció az iphone API-ra építve Nyílt forráskódú: GPLv2 Kereskedelmi alkalmazásokhoz Linking Exception szerezhető be az XMLVM Core Teamtől. 19

XMLVM architektúra Alkalmazás forráskód Java API Java bytekód Android API forráskód iphone Java API stubs XMLVM fordító DEX bytekód XMLVM modell iphone alkalmazás Alkalmazás Objective-C Android API Objective-C Java API Objective-C iphone Java API Objective-C 20

XMLVM felhasználás A MattaKis Consulting sikeresen portolt egy BlackBerry - J2ME Android alkalmazást iphone-ra a segítségével Ehhez a következő fejlesztéseket végeztük: Threading + szinkronizáció Java IO, Java Net támogatás Iphone multimédia támogatás Collection Framework továbbfejlesztés Különböző egyéb Java API-k implementálása 21

XMLVM: Java API Objective-C-ben Objective-C kategóriák használata typedef NSString java_lang_string; @interface NSString (cat_java_lang_string) - (java_lang_string*) substring int_int: (int) start : (int) end;... @end 22

XMLVM korlátok Hiányos API implementáció Nincs garbage collector a generált kód reference counting sémát használ Egy átlag alkalmazás portolásakor a 70-80%-a használható fel újra Nincs debugger (GDB használható a generált kódon) 23

MattaKis Porting Framework Keretrendszer multiplatform mobil alkalmazások fejlesztéséhez Támogatott platformok: J2ME (Symbian S60) BlackBerry Android iphone 24

25 MattaKis Porting Framework (2) Model Support Workflow User Interface Generator Configuration iphone Platform Support iphone Generic UI J2ME Platform Support J2ME Generic UI Android Platform Support Android Generic UI BlackBerry Platform Support BlackBerry Generic UI BlackBerry Application UI iphone Application UI J2ME Application UI Android Application UI Application Model Application Workflow MattaKis Porting Framework Application

Összefoglalás Miért multiplatform fejlesztés? Multiplatform fejlesztési módszerek A közös nyelvek: Java és C/C++ Egy multiplatform termék tervezése Gyakorlati bemutató XMLVM: Java támogatás iphone-on MattaKis Porting Framework 26

Köszönöm a figyelmet! Kis Gergely (gergely.kis@mattakis.com) MattaKis Consulting (www.mattakis.com) 27