SlideShare a Scribd company logo
1 of 40
Hibridnemobilneaplikacije Matija Šmalcelj
}  minimalno  4000$/kom
Zašto hibridne aplikacije? write once, run anywhere web developeri su najzastupljeniji programiranje mobilnih aplikacija bez znanja nativnog jezika npr. Objective-C manje programiranja -> jedan kod koji se vrti na više platformi manje testiranja manje održavanja -> jedan kod za debugiranje i implementaciju novih funkcionalnosti
Sastavni dijelovi hibridne aplikacije Nativni wrapper pisan u native kodu (objective C, Java) pokreće web aplikaciju odrađuje sve što se ne može kroz javascript Nativni wrapper Web view kontrola(WebKit) Web view kontrola ,[object Object],Web aplikacija Web aplikacija ,[object Object],[object Object]
Podrška za Webkit iPhone iPad Android  Palm WebOS BlackBerry (od OS 6.0) Nokia WRT
Web aplikacije - principi jedna html stranica koja sadrži sve ekrane svi ekrani sakriveni osim trenutno aktivnog navigacija pomoću location.hash tako da nema osvježavanja stranice http://stranica.html#drugi_ekran animacije pomoću CSS3 scrollanje dijela ekrana pomoću iScroll javascript plugina
Biblioteke za izradu web aplikacija
Biblioteke za izradu web aplikacija ubrzavanje razvoja gotova logika za prikaz i izmjenu ekrana podrška za rotaciju ekrana CSS prilagođen za mobilne uređaje gotovi GUI elementi i lagana promjena teme automatska kontrola performansi
jQTouch http://jqtouch.com/ plugin za jQuery omogućava brzo generiranje ekrana vrlo jednostavan podržava teme nije baš flexibilan animacije ne rade na androidu ne razvija se više -> Sencha besplatan: MIT License
Sencha Touch http://www.sencha.com/products/touch/ plugin za ExtJS javascript library od kreatora jQToucha podrška za Android i iOS fenomenalno izgleda i lako se prilagođava komercijalan: od 99$ na više $14M Sequoia Capital
PastryKit http://www.funkyspacemonkey.com/pastrykit-iphone-javascript-framework-apple-takes-webapps-level napravio Apple za potrebe iPhone help stranica http://help.apple.com/iphone/3/mobile/ trenutno najbolje CSS3 animacije, scrollanje i generalni look&feel unofficial SDK dobiven de-minificiranjem originalnih javascript datoteka kompliciran za korištenje nema dokumentacije
samSvojMajstor aplikacije :)
Animacija ekrana (1) vidljiv je samo aktivni ekran webkitAnimationEnd handler na novom ekranu postavljaju se CSS klase na oba ekrana po završetku animacije poziva se handler 2 1
Animacija ekrana (2) .slideIn { -webkit-animation-duration: 350ms;    -webkit-animation-name: slideinfromright; } @-webkit-keyframes slideinfromright {     from { -webkit-transform: translateX(100%); }     to { -webkit-transform: translateX(0); } } priča se da je translate3d(x, y, z) brži, ali kod nas je uzrokovao treptanje ekrana pa koristimo translateX
Scrollanje sadržaja (1) Cijeli ekran zajedno sa headerom i footerom Dio ekrana pomoću javascripta (CSS positon: fixed NE radi ) iScroll - prati pokrete prsta i generira CSS3 animacije http://cubiq.org/iscroll
Scrollanje sadržaja (2) <div id=“categories" class="screen"> <div class="toolbar"><!-- floating header --> </div> <div class="panel“class="scrollWrp"> <div id=“categoriesScroll" class="scrollCnt">                   <!-- scrolled content --> </div> </div> </div> <div id=“footer”><!-- floating footer --> </div> } } } // kreiranje scrolla var categoriesScroll = new iScroll('categoriesScroll'); // uništavanje scrolla categoriesScroll = categoriesScroll.destroy(false);
Browser storage Local storage -> dictionary “quota exceeded” bug na iPadu -> rješenje: prije setItem pozvati removeItem ,[object Object],window.localStorage.setItem("key", "value"); window.localStorage.getItem("key"); window.localStorage.removeItem("key"); window.localStorage.clear() vardb = openDatabase("name", "version"); db.executeSql("SELECT * FROM table", function(data) {    alert(data); });
Geolokacija (1) implementacija ovisi o uređaju iOS, Android v2.2   -> html5 standard Android < v2.2   -> Google gears if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(pos) {         alert(pos.coords.latitude+", "+pos.coords.longitude); });  }  var provider = google.gears.factory.create("beta.geolocation"); provider.getCurrentPosition(function(pos) {    alert(pos.timestamp+": “+pos.latitude+", “+pos.longitude); }, errorCallback, {});
Geolokacija (1) Google geo-location-javascript http://code.google.com/p/geo-location-javascript/  iPhone OS 3.x, Android, Windows Mobile Blackberry Devices (8820, 9000,...) Nokia Web Run-Time (Nokia N97,...) webOS Application Platform (Palm Pre) Torch Mobile Iris Browser Mozilla Geode add-on
iOS tips (1) aplikacije na desktopu (+ pa “Add to home screen”):  ikona ikona bez defaultnog “shine” efekta splash screen <link rel="apple-touch-icon" href="icon.png" /> <link rel="apple-touch-icon-precomposed" href="icon.png" /> <link rel="apple-touch-startup-image" href="splash.png" />
iOS tips (2) korisni meta tagovi  http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html veličina ekrana i kontrola pinch zooma gašenje detekcije telefonskih brojeva vidljivost statusne trake na vrhu ekrana
web aplikacija hibridna aplikacija OK, web aplikaciju imamo...Što dalje? native wrapper
Biblioteke za izradu wrappera
PhoneGap (1) 200 000 downloada, stotine aplikacija u App Store-u samo WebKit prozor + API za neke platform specific stvari besplatan: MIT License
PhoneGap (2) API primjer: korištenje kamere navigator.camera.getPicture(onSuccess, onFail, { quality: 50,     destinationType: Camera.DestinationType.FILE_URI }); function onSuccess(imageURI) {    var image = document.getElementById('myImage');    image.src = imageURI;}
Appcelerator Titanium (1) wrapper + nativni elementi sučelja koji se kontroliraju iz Javascripta 300 API metoda za komunikaciju prema wrapperu multimedia, kamera, kompleksne funkcionalnosti pomoću nativnih custom plugina dobra dokumentacija, vrlo moćan i vrlo native-like eBay, MTV, Jaguar, Dakine, ... komercijalna upotreba: od 199$ na više mjesečno $6,2M investicije
API primjer: Appcelerator Titanium (2) var label1 = Titanium.UI.createLabel({ color:'#999', text:'Hello World!', font:{fontSize:20,fontFamily:'HelveticaNeue'}, textAlign:'center', width:'auto' });
QuickConnectFamily osnovna podrška za široku paletu platformi (iOS, Android, BB, WebOS) za iOS postoji najviše funkcionalnosti malo dokumentacije, postoje primjeri spor razvoj, upitna budućnost besplatan
Naša iskustva
Naša iskustva od početka 2010.  prvo mijenjali dijelove postojećih nativnih aplikacija sa html elementima do sada 4 potpuno hibridnih aplikacija u to doba nije postojao dovoljno kvalitetan framework -> sami smo ga razvili
Konzum mobilna prodavaonica iPhone, iPad
ShoutEm klijenti Android, iPhone u planu
Što nas je mučilo (1) performanse dosta ovise o snazi uređaja: benchmark na startu pa graceful degradacija detekcija usporenih animacija WebKit ubacuje svoje request headere implementacija proxy servera u wrapperu Reachability test wrapper dojavljuje aplikaciji kada je dostupna internet veza
Što nas je mučilo (2) combo box se ne može otvoriti ako je unutar sadržaja koji se scrolla: JS/CSS3 Spining wheel  http://cubiq.org/spinning-wheel-on-webkit-for-iphone-ipod-touch
Zaključak (1) znatno ubrzava razvoj/testiranje/debugiranje idealno za jednostavnije aplikacije koje ciljaju na puno plaformi nešto ipak mora biti native:  naprednije igre aplikacije s puno animacija rich multimedija
Zaključak (2) paziti da se dobije native look&feel dobro za proof of concept aplikacije: Gowalla -> prvo web aplikacija pa native budućnost je svijetla
Hvala na pažnji!
Contact Matija Šmalcelj gsm        +385 98 788 290mail         matija.smalcelj@fiveminutes.euskype      matija.smalceljtwitter    twitter.com/matijasmalceljhttp://www.shoutem.com http://www. fiveminutes.eu
WebUG - Hibridne mobilne aplikacije

More Related Content

Similar to WebUG - Hibridne mobilne aplikacije

Kako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudKako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudDubravko Marak
 
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...Five
 
WinDays 13 - Internet Explorer 10 - san koji je postao java
WinDays 13 - Internet Explorer 10 - san koji je postao javaWinDays 13 - Internet Explorer 10 - san koji je postao java
WinDays 13 - Internet Explorer 10 - san koji je postao javaMatija Šmalcelj
 
Web tehnologije u desktop developmentu
Web tehnologije u desktop developmentuWeb tehnologije u desktop developmentu
Web tehnologije u desktop developmentuDarko Kukovec
 
(WS11) Srđan Stanić (Pet minuta): JavaScript svemogući*
(WS11) Srđan Stanić (Pet minuta): JavaScript svemogući*(WS11) Srđan Stanić (Pet minuta): JavaScript svemogući*
(WS11) Srđan Stanić (Pet minuta): JavaScript svemogući*Web::Strategija
 
Big Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzzBig Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzzwebburza
 
Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)IT Showoff
 
Razvoj Softvera Za Android Os
Razvoj Softvera Za Android OsRazvoj Softvera Za Android Os
Razvoj Softvera Za Android OsViktor Brešan
 
Vert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaVert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaFive
 
Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Nenad Pecanac
 
Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacijeVert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacijeMihovil Rister
 
Angular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayAngular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayNETMedia
 
Razvoj Air Mobilnih Aplikacija
Razvoj Air Mobilnih AplikacijaRazvoj Air Mobilnih Aplikacija
Razvoj Air Mobilnih AplikacijaIvan Ilijasic
 
FSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacijaFSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacijaDinko Korunic
 
Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.Mario Kušek
 

Similar to WebUG - Hibridne mobilne aplikacije (20)

Kako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudKako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloud
 
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...
 
WinDays 13 - Internet Explorer 10 - san koji je postao java
WinDays 13 - Internet Explorer 10 - san koji je postao javaWinDays 13 - Internet Explorer 10 - san koji je postao java
WinDays 13 - Internet Explorer 10 - san koji je postao java
 
Web tehnologije u desktop developmentu
Web tehnologije u desktop developmentuWeb tehnologije u desktop developmentu
Web tehnologije u desktop developmentu
 
(WS11) Srđan Stanić (Pet minuta): JavaScript svemogući*
(WS11) Srđan Stanić (Pet minuta): JavaScript svemogući*(WS11) Srđan Stanić (Pet minuta): JavaScript svemogući*
(WS11) Srđan Stanić (Pet minuta): JavaScript svemogući*
 
Big Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzzBig Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzz
 
Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)
 
Razvoj Softvera Za Android Os
Razvoj Softvera Za Android OsRazvoj Softvera Za Android Os
Razvoj Softvera Za Android Os
 
Vert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaVert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, Javantura
 
Mean Stack JavaCro 2014
Mean Stack JavaCro 2014Mean Stack JavaCro 2014
Mean Stack JavaCro 2014
 
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil RisterJavantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
Javantura Zagreb 2014 - Vert.x 1.3 - Mihovil Rister
 
Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacijeVert.x - asinkroni skalabilni i poliglotni framework nove generacije
Vert.x - asinkroni skalabilni i poliglotni framework nove generacije
 
Angular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayAngular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump Day
 
JavaCro'15 - Integration of Mobile Applications with Facebook - Krešimir Mišu...
JavaCro'15 - Integration of Mobile Applications with Facebook - Krešimir Mišu...JavaCro'15 - Integration of Mobile Applications with Facebook - Krešimir Mišu...
JavaCro'15 - Integration of Mobile Applications with Facebook - Krešimir Mišu...
 
Razvoj Air Mobilnih Aplikacija
Razvoj Air Mobilnih AplikacijaRazvoj Air Mobilnih Aplikacija
Razvoj Air Mobilnih Aplikacija
 
Zasto Flex
Zasto FlexZasto Flex
Zasto Flex
 
FSEC2011-Dinko
FSEC2011-DinkoFSEC2011-Dinko
FSEC2011-Dinko
 
FSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacijaFSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacija
 
Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.
 
JavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
JavaCro'14 - MEAN Stack – How & When – Nenad PećanacJavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
JavaCro'14 - MEAN Stack – How & When – Nenad Pećanac
 

More from Matija Šmalcelj

WinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer Toolsa
WinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer ToolsaWinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer Toolsa
WinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer ToolsaMatija Šmalcelj
 
WinDays 15 - This is Spartan!!
WinDays 15 - This is Spartan!!WinDays 15 - This is Spartan!!
WinDays 15 - This is Spartan!!Matija Šmalcelj
 
ATD10 - WinJS izlazi na globalnu pozornicu
ATD10 - WinJS izlazi na globalnu pozornicuATD10 - WinJS izlazi na globalnu pozornicu
ATD10 - WinJS izlazi na globalnu pozornicuMatija Šmalcelj
 
WebCamp2013 - 10 u 25 web site optimizacija
WebCamp2013 - 10 u 25 web site optimizacijaWebCamp2013 - 10 u 25 web site optimizacija
WebCamp2013 - 10 u 25 web site optimizacijaMatija Šmalcelj
 
WinDays 12 - Windows Phone 7 hybrid apps
WinDays 12 - Windows Phone 7 hybrid appsWinDays 12 - Windows Phone 7 hybrid apps
WinDays 12 - Windows Phone 7 hybrid appsMatija Šmalcelj
 

More from Matija Šmalcelj (6)

WinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer Toolsa
WinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer ToolsaWinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer Toolsa
WinDays 14 - Seciranje web aplikacija uz pomoć novih IE11 Developer Toolsa
 
WinDays 15 - This is Spartan!!
WinDays 15 - This is Spartan!!WinDays 15 - This is Spartan!!
WinDays 15 - This is Spartan!!
 
ATD10 - WinJS izlazi na globalnu pozornicu
ATD10 - WinJS izlazi na globalnu pozornicuATD10 - WinJS izlazi na globalnu pozornicu
ATD10 - WinJS izlazi na globalnu pozornicu
 
WebCamp2013 - 10 u 25 web site optimizacija
WebCamp2013 - 10 u 25 web site optimizacijaWebCamp2013 - 10 u 25 web site optimizacija
WebCamp2013 - 10 u 25 web site optimizacija
 
WinDays 12 - Windows Phone 7 hybrid apps
WinDays 12 - Windows Phone 7 hybrid appsWinDays 12 - Windows Phone 7 hybrid apps
WinDays 12 - Windows Phone 7 hybrid apps
 
Windays 11 - IE9 i HTML5
Windays 11 - IE9 i HTML5Windays 11 - IE9 i HTML5
Windays 11 - IE9 i HTML5
 

WebUG - Hibridne mobilne aplikacije

  • 2.
  • 3. } minimalno 4000$/kom
  • 4. Zašto hibridne aplikacije? write once, run anywhere web developeri su najzastupljeniji programiranje mobilnih aplikacija bez znanja nativnog jezika npr. Objective-C manje programiranja -> jedan kod koji se vrti na više platformi manje testiranja manje održavanja -> jedan kod za debugiranje i implementaciju novih funkcionalnosti
  • 5.
  • 6. Podrška za Webkit iPhone iPad Android Palm WebOS BlackBerry (od OS 6.0) Nokia WRT
  • 7. Web aplikacije - principi jedna html stranica koja sadrži sve ekrane svi ekrani sakriveni osim trenutno aktivnog navigacija pomoću location.hash tako da nema osvježavanja stranice http://stranica.html#drugi_ekran animacije pomoću CSS3 scrollanje dijela ekrana pomoću iScroll javascript plugina
  • 8. Biblioteke za izradu web aplikacija
  • 9. Biblioteke za izradu web aplikacija ubrzavanje razvoja gotova logika za prikaz i izmjenu ekrana podrška za rotaciju ekrana CSS prilagođen za mobilne uređaje gotovi GUI elementi i lagana promjena teme automatska kontrola performansi
  • 10. jQTouch http://jqtouch.com/ plugin za jQuery omogućava brzo generiranje ekrana vrlo jednostavan podržava teme nije baš flexibilan animacije ne rade na androidu ne razvija se više -> Sencha besplatan: MIT License
  • 11. Sencha Touch http://www.sencha.com/products/touch/ plugin za ExtJS javascript library od kreatora jQToucha podrška za Android i iOS fenomenalno izgleda i lako se prilagođava komercijalan: od 99$ na više $14M Sequoia Capital
  • 12. PastryKit http://www.funkyspacemonkey.com/pastrykit-iphone-javascript-framework-apple-takes-webapps-level napravio Apple za potrebe iPhone help stranica http://help.apple.com/iphone/3/mobile/ trenutno najbolje CSS3 animacije, scrollanje i generalni look&feel unofficial SDK dobiven de-minificiranjem originalnih javascript datoteka kompliciran za korištenje nema dokumentacije
  • 14. Animacija ekrana (1) vidljiv je samo aktivni ekran webkitAnimationEnd handler na novom ekranu postavljaju se CSS klase na oba ekrana po završetku animacije poziva se handler 2 1
  • 15. Animacija ekrana (2) .slideIn { -webkit-animation-duration: 350ms; -webkit-animation-name: slideinfromright; } @-webkit-keyframes slideinfromright { from { -webkit-transform: translateX(100%); } to { -webkit-transform: translateX(0); } } priča se da je translate3d(x, y, z) brži, ali kod nas je uzrokovao treptanje ekrana pa koristimo translateX
  • 16. Scrollanje sadržaja (1) Cijeli ekran zajedno sa headerom i footerom Dio ekrana pomoću javascripta (CSS positon: fixed NE radi ) iScroll - prati pokrete prsta i generira CSS3 animacije http://cubiq.org/iscroll
  • 17. Scrollanje sadržaja (2) <div id=“categories" class="screen"> <div class="toolbar"><!-- floating header --> </div> <div class="panel“class="scrollWrp"> <div id=“categoriesScroll" class="scrollCnt"> <!-- scrolled content --> </div> </div> </div> <div id=“footer”><!-- floating footer --> </div> } } } // kreiranje scrolla var categoriesScroll = new iScroll('categoriesScroll'); // uništavanje scrolla categoriesScroll = categoriesScroll.destroy(false);
  • 18.
  • 19. Geolokacija (1) implementacija ovisi o uređaju iOS, Android v2.2 -> html5 standard Android < v2.2 -> Google gears if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(pos) { alert(pos.coords.latitude+", "+pos.coords.longitude); }); } var provider = google.gears.factory.create("beta.geolocation"); provider.getCurrentPosition(function(pos) { alert(pos.timestamp+": “+pos.latitude+", “+pos.longitude); }, errorCallback, {});
  • 20. Geolokacija (1) Google geo-location-javascript http://code.google.com/p/geo-location-javascript/ iPhone OS 3.x, Android, Windows Mobile Blackberry Devices (8820, 9000,...) Nokia Web Run-Time (Nokia N97,...) webOS Application Platform (Palm Pre) Torch Mobile Iris Browser Mozilla Geode add-on
  • 21. iOS tips (1) aplikacije na desktopu (+ pa “Add to home screen”): ikona ikona bez defaultnog “shine” efekta splash screen <link rel="apple-touch-icon" href="icon.png" /> <link rel="apple-touch-icon-precomposed" href="icon.png" /> <link rel="apple-touch-startup-image" href="splash.png" />
  • 22. iOS tips (2) korisni meta tagovi http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html veličina ekrana i kontrola pinch zooma gašenje detekcije telefonskih brojeva vidljivost statusne trake na vrhu ekrana
  • 23. web aplikacija hibridna aplikacija OK, web aplikaciju imamo...Što dalje? native wrapper
  • 25. PhoneGap (1) 200 000 downloada, stotine aplikacija u App Store-u samo WebKit prozor + API za neke platform specific stvari besplatan: MIT License
  • 26. PhoneGap (2) API primjer: korištenje kamere navigator.camera.getPicture(onSuccess, onFail, { quality: 50,     destinationType: Camera.DestinationType.FILE_URI }); function onSuccess(imageURI) {    var image = document.getElementById('myImage');    image.src = imageURI;}
  • 27. Appcelerator Titanium (1) wrapper + nativni elementi sučelja koji se kontroliraju iz Javascripta 300 API metoda za komunikaciju prema wrapperu multimedia, kamera, kompleksne funkcionalnosti pomoću nativnih custom plugina dobra dokumentacija, vrlo moćan i vrlo native-like eBay, MTV, Jaguar, Dakine, ... komercijalna upotreba: od 199$ na više mjesečno $6,2M investicije
  • 28. API primjer: Appcelerator Titanium (2) var label1 = Titanium.UI.createLabel({ color:'#999', text:'Hello World!', font:{fontSize:20,fontFamily:'HelveticaNeue'}, textAlign:'center', width:'auto' });
  • 29. QuickConnectFamily osnovna podrška za široku paletu platformi (iOS, Android, BB, WebOS) za iOS postoji najviše funkcionalnosti malo dokumentacije, postoje primjeri spor razvoj, upitna budućnost besplatan
  • 31. Naša iskustva od početka 2010. prvo mijenjali dijelove postojećih nativnih aplikacija sa html elementima do sada 4 potpuno hibridnih aplikacija u to doba nije postojao dovoljno kvalitetan framework -> sami smo ga razvili
  • 33. ShoutEm klijenti Android, iPhone u planu
  • 34. Što nas je mučilo (1) performanse dosta ovise o snazi uređaja: benchmark na startu pa graceful degradacija detekcija usporenih animacija WebKit ubacuje svoje request headere implementacija proxy servera u wrapperu Reachability test wrapper dojavljuje aplikaciji kada je dostupna internet veza
  • 35. Što nas je mučilo (2) combo box se ne može otvoriti ako je unutar sadržaja koji se scrolla: JS/CSS3 Spining wheel http://cubiq.org/spinning-wheel-on-webkit-for-iphone-ipod-touch
  • 36. Zaključak (1) znatno ubrzava razvoj/testiranje/debugiranje idealno za jednostavnije aplikacije koje ciljaju na puno plaformi nešto ipak mora biti native: naprednije igre aplikacije s puno animacija rich multimedija
  • 37. Zaključak (2) paziti da se dobije native look&feel dobro za proof of concept aplikacije: Gowalla -> prvo web aplikacija pa native budućnost je svijetla
  • 39. Contact Matija Šmalcelj gsm +385 98 788 290mail matija.smalcelj@fiveminutes.euskype matija.smalceljtwitter twitter.com/matijasmalceljhttp://www.shoutem.com http://www. fiveminutes.eu