SlideShare a Scribd company logo
1 of 15
Web aplikacije za mobilne ure ajeđ
Stipe Predanić
Stranice za mobilne ure ajeđ
● Zašto razvijati stranice za mobilne ure aje?đ
● Zašto razvijati web aplikacije za mobilne ure aje?đ
● prosinac 2012 - 64.2 milijuna korisnika u SAD-u i 48.4
milijuna korisnika u EU5 je pristupilo socijalnim mrežama
ili blogovima putem “pametnog” telefona barem jednom
(od toga polovica više puta). (izvor comScore)
● ožujak 2013 - u Hrvatskoj je 1.22 milijuna korisnika
Interneta od ega 20% kroz mobile mreže (ponajvišeč
koriste i smartphone)ć
● kolovoz 2013 – 17% svjetskog mrežnog prometa dolazi s
mobilnih ure ajađ
● previše korisnika da ih propustimo
Prednosti i nedostaci
● Prednost je samo jedna:
● maksimalna mobilnost
● Nedostaci:
● spor pristup Internetu s estim variranjima brzineč
● ure aji ograni enih mogu nosti prikaza,đ č ć
procesorske snage i memorije
● rascjepkanost platformi
Zaobi ite nedostatkeđ
● problem s brzinom
● cache na ure ajuđ
● korištenje AJAX-a kako bi se podaci prenosili u pozadini
● problem sa veli inom ekranač
● prilagodite izgled i/ili CSS
● prilagodite sadržaj
● problem sa procesorskom snagom i memorijom
● ne optere ujte stranice sa nepotrebnim JavaScriptć
framework-cima (npr. na mobitelu sigurno ne treba jQuery
Datatable)
Preporuke: dizajn
● Preporuke za dizajn:
● zbog malog ekrana razli itih dimenzija (svakič
telefon/tablet ima svoju rezoluciju) ne koristiti odnose
(duljine, širine itd) u pikselima, ve u postocimać
– primjer .menu{ width:300px; } postaje .menu{width:90%}
● ne koristiti puno slika, samo najnužnije, a ikone
izvla iti iz CSS spriteovač
● ne koristiti evente koji se na touch screenu ne mogu
upotrebiti – bilo JavaScript (onMouseOver,
onMouseOut itd), bilo CSS (hover)
Preporuke: dizajn
● Preporuke za dizajn:
● smanjiti broj potrebnih unosa sa virtualne tipkovnice
i pripremite gumbe za unos
– primjer: predefinirana tipkovnica sa brojevima na
studomatu
● smanjiti koli inu gužve podataka na ekranuč
odjednom
– prelomiti podatke u više ekrana
– pojednostaviti podatke koji se prezentiraju
Preporuke: arhitektura
● Preporuke za arhitekturu:
● server – debeli klijent koji obavlja što više posla
– koristiti JavaScript dostupnu bazu podataka
● WebKit (iPhone, Android) podržava WebSQL
– provjera i filtriranje podataka prije slanja na server
– slanje podataka AJAX-om
– preporuke:
● izraditi jednu stranicu koja ima skrivene DIV-ove koji se pojavljuju
po potrebi koriste i JavaScript. Kad korisnik u ita stranicu, ne eć č ć
morati sa Interneta vu i nove stranice, što daje bolji osje ajć ć
fluidnosti aplikacije.
● koristiti sustave s Virtualnim DOM-om
Preporuke: arhitektura
Prva stranica
Druga stranica
Treća stranica
Stranice skrivene
CSS-om
(display:none,
pomaknute van
vidljivog područja,
z-index:-1 )
Korisni alati
● Detekcija mobilnog ure aja:đ
● detekcija browsera po user agentu:
– WURFL – sada pod AGPL licencom
● zamjena OpenDDR, pa sada Apache DeviceMap
– analiza user agenta - npr regularnim izrazom (
http://detectmobilebrowsers.com/ ) bilo na server strani
(PHP), bilo na klijent strani (JavaScript)
● provjeriti JavaScriptom da li klijentski browser
podržava element
navigator.appVersion.indexOf("Mobile");
● provjeriti JavaScriptom veli inu ekrana u pikselimač
(problem: iPad 3 i 4 :D)
Korisni alati
● HTML5 daje par zgodnih mogu nosti:ć
● WebSQL
– baza podataka na mobitelu, upravljiva JavaScriptom
– spremanje i itanje podataka bez potrebe za zahtjevom premač
serveru
● a ako i ide zahtjev prema serveru povu e se sve što možda treba ič
pospremi u bazu
– podržano na iPhoneu i Android baziranim telefonima
● najavljuju povla enje u korist IndexDB ali još ništa od togač
● local storage
– za spremanje jednostavnih podataka koji moraju ostati i nakon
gašenja browsera (npr korisni ko ime, lozinka, postavke)č
– u nuždi može se koristiti i kao zamjena za WebSQL
Korisni alati
● HTML5
● Offline aplication
– definiranje koje datoteke treba cacheirati na klijentskom
ure aju, i nikada ne mijenjatiđ
– mogu e je i definirati koje datoteke zamjenjuju drugeć
datoteke ako se stvarno radi o offline na inu radač
● dodatno korisno:
– Geolocation
– SSE (Server side events)
Korisni alati
● JavaScript framework-ci koji su predvi eni za rad nađ
mobilnim ure ajimađ
● nije problem u veli ini i overheadu frameworka ve želja zač ć
podrškom za touch mogu nostimać
● predefinirani grafi ki elementi (CSS koji konzistentnoč izgleda
na svim platformama)
● podrška za touch (scroll, zoom itd)
● Sencha Touch
● jQuery Mobile
● postoje prototype alati za bržu izradu stranica (Codiqa, Tiggzi)
Native vs web
● korištenjem svih mogu nosti koje HTML5 pružać
možemo stvoriti pristojnu višeplatformsku
aplikaciju za mobilne ure ajeđ
● imamo spremanje podataka (WebSQL, local storage),
“nevidljivu” komunikaciju sa serverom (AJAX)
● ali je i dalje nemogu e koristiti neke resurse telefona:ć
kamera, vibracija, prava memorija (memorijska kartica)
– ovisno o browseru!
● PhoneGap / Apache Cordova !
PhoneGap
● development framework koji
● se pokre e kao nativna aplikacija na mobilnomć
ure ajuđ
● ali za UI koristi webbrowser – HTML5/JavaScript
● daje JavaScriptu mogu nost upravljanja s resursimać
telefona (npr kamera)
● višeplatformski
– jedan HTML5/JavaScript kod za stranicu odgovara za
više mobilnih ure ajađ
– potrebno prilagoditi nativnu aplikaciju pojedinom telefonu
Više informacija
● Više informacija
● jQuery mobile ( http://jquerymobile.com/ )
● Codiqa ( http://www.codiqa.com/ )
● PhoneGap ( http://phonegap.com/ )
● Knjige Jonathana Starka
– Building iPhone Apps with HTML, CSS, and JavaScript
– Building Android Apps with HTML, CSS, and JavaScript

More Related Content

Similar to [TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.

AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević Kruno Ris
 
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
 
Heron MC - JavaScript for sysadmins and lazy developers
Heron MC - JavaScript for sysadmins and lazy developersHeron MC - JavaScript for sysadmins and lazy developers
Heron MC - JavaScript for sysadmins and lazy developersDavor Racić
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Denis Kranjčec
 
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
 
Branimir Šloser - Razbor IT (IT Showoff)
Branimir Šloser - Razbor IT (IT Showoff)Branimir Šloser - Razbor IT (IT Showoff)
Branimir Šloser - Razbor IT (IT Showoff)IT Showoff
 
Web tehnologije u desktop developmentu
Web tehnologije u desktop developmentuWeb tehnologije u desktop developmentu
Web tehnologije u desktop developmentuDarko Kukovec
 
Muke po malim zaslonima
Muke po malim zaslonimaMuke po malim zaslonima
Muke po malim zaslonimaYlodi
 
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
 
Kako izvuci (naj)vise iz vaseg share pointa 2013
Kako izvuci (naj)vise iz vaseg share pointa 2013Kako izvuci (naj)vise iz vaseg share pointa 2013
Kako izvuci (naj)vise iz vaseg share pointa 2013Matija Blagus
 
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister
 
[WinDays13] Web-dizajn je mrtav, živio responzivni web-dizajn!
[WinDays13] Web-dizajn je mrtav, živio responzivni web-dizajn![WinDays13] Web-dizajn je mrtav, živio responzivni web-dizajn!
[WinDays13] Web-dizajn je mrtav, živio responzivni web-dizajn!Lucijan Blagonic
 
Vert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaVert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaFive
 
Šefe, smanjio sam web
Šefe, smanjio sam webŠefe, smanjio sam web
Šefe, smanjio sam webYlodi
 

Similar to [TVZ računarstvo] Dinamičke web aplikacije, predavanje 11. (20)

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
 
AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević AngularJS - Ivan Vučičević
AngularJS - Ivan Vučičević
 
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...
 
Heron MC - JavaScript for sysadmins and lazy developers
Heron MC - JavaScript for sysadmins and lazy developersHeron MC - JavaScript for sysadmins and lazy developers
Heron MC - JavaScript for sysadmins and lazy developers
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?
 
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
 
Branimir Šloser - Razbor IT (IT Showoff)
Branimir Šloser - Razbor IT (IT Showoff)Branimir Šloser - Razbor IT (IT Showoff)
Branimir Šloser - Razbor IT (IT Showoff)
 
Web tehnologije u desktop developmentu
Web tehnologije u desktop developmentuWeb tehnologije u desktop developmentu
Web tehnologije u desktop developmentu
 
JavaCro'15 - Microservice architecture - Nenad Pečanac
JavaCro'15 - Microservice architecture - Nenad PečanacJavaCro'15 - Microservice architecture - Nenad Pečanac
JavaCro'15 - Microservice architecture - Nenad Pečanac
 
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
 
Gliffy
GliffyGliffy
Gliffy
 
Muke po malim zaslonima
Muke po malim zaslonimaMuke po malim zaslonima
Muke po malim zaslonima
 
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)
 
Kako izvuci (naj)vise iz vaseg share pointa 2013
Kako izvuci (naj)vise iz vaseg share pointa 2013Kako izvuci (naj)vise iz vaseg share pointa 2013
Kako izvuci (naj)vise iz vaseg share pointa 2013
 
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
 
[WinDays13] Web-dizajn je mrtav, živio responzivni web-dizajn!
[WinDays13] Web-dizajn je mrtav, živio responzivni web-dizajn![WinDays13] Web-dizajn je mrtav, živio responzivni web-dizajn!
[WinDays13] Web-dizajn je mrtav, živio responzivni web-dizajn!
 
Seminar hipermedija
Seminar hipermedijaSeminar hipermedija
Seminar hipermedija
 
Vert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, JavanturaVert.x - Mihovil Rister, Javantura
Vert.x - Mihovil Rister, Javantura
 
Šefe, smanjio sam web
Šefe, smanjio sam webŠefe, smanjio sam web
Šefe, smanjio sam web
 
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
 

More from Stipe Predanic

Osnove bežičnih mreža - Predavanje: Topologije
Osnove bežičnih mreža - Predavanje: TopologijeOsnove bežičnih mreža - Predavanje: Topologije
Osnove bežičnih mreža - Predavanje: TopologijeStipe Predanic
 
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli Stipe Predanic
 
Osnove bežičnih mreža - Predavanje: Antene
Osnove bežičnih mreža - Predavanje: AnteneOsnove bežičnih mreža - Predavanje: Antene
Osnove bežičnih mreža - Predavanje: AnteneStipe Predanic
 
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacije
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacijeOsnove bežičnih mreža - Predavanje Bežične radiokomunikacije
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacijeStipe Predanic
 
[ERRO] Predavanje: FPGA 12.1.2017
[ERRO] Predavanje: FPGA 12.1.2017 [ERRO] Predavanje: FPGA 12.1.2017
[ERRO] Predavanje: FPGA 12.1.2017 Stipe Predanic
 
[ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016
[ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016 [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016
[ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016 Stipe Predanic
 
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016 [ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016 Stipe Predanic
 
[ERRO] Predavanje: Napajanje uređaja 8.12.2016
[ERRO] Predavanje: Napajanje uređaja 8.12.2016 [ERRO] Predavanje: Napajanje uređaja 8.12.2016
[ERRO] Predavanje: Napajanje uređaja 8.12.2016 Stipe Predanic
 
[ERRO] Predavanje: Prikaz podataka 1.12.2016
[ERRO] Predavanje: Prikaz podataka 1.12.2016 [ERRO] Predavanje: Prikaz podataka 1.12.2016
[ERRO] Predavanje: Prikaz podataka 1.12.2016 Stipe Predanic
 
[ERRO] Predavanje: RTOS
[ERRO] Predavanje: RTOS[ERRO] Predavanje: RTOS
[ERRO] Predavanje: RTOSStipe Predanic
 
[ERRO] Predavanje: Porodice mikroupravljača
[ERRO] Predavanje: Porodice mikroupravljača[ERRO] Predavanje: Porodice mikroupravljača
[ERRO] Predavanje: Porodice mikroupravljačaStipe Predanic
 
[ERRO] Predavanje: 8051
[ERRO] Predavanje: 8051 [ERRO] Predavanje: 8051
[ERRO] Predavanje: 8051 Stipe Predanic
 
[ERRO] Predavanje: ulazi/izlazi na mikroupravljač (27.10.2016)
[ERRO] Predavanje: ulazi/izlazi na mikroupravljač (27.10.2016) [ERRO] Predavanje: ulazi/izlazi na mikroupravljač (27.10.2016)
[ERRO] Predavanje: ulazi/izlazi na mikroupravljač (27.10.2016) Stipe Predanic
 
[ERRO] Predavanje: MARIE model procesora
[ERRO] Predavanje: MARIE model procesora [ERRO] Predavanje: MARIE model procesora
[ERRO] Predavanje: MARIE model procesora Stipe Predanic
 
[ERRO] Predavanje: Ponavljanje digitalnih sklopova
[ERRO] Predavanje: Ponavljanje digitalnih sklopova [ERRO] Predavanje: Ponavljanje digitalnih sklopova
[ERRO] Predavanje: Ponavljanje digitalnih sklopova Stipe Predanic
 
[ERRO] Uvodno predavanje (pravila polaganja ispita)
[ERRO] Uvodno predavanje (pravila polaganja ispita) [ERRO] Uvodno predavanje (pravila polaganja ispita)
[ERRO] Uvodno predavanje (pravila polaganja ispita) Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12. Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10. Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. Stipe Predanic
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8. Stipe Predanic
 

More from Stipe Predanic (20)

Osnove bežičnih mreža - Predavanje: Topologije
Osnove bežičnih mreža - Predavanje: TopologijeOsnove bežičnih mreža - Predavanje: Topologije
Osnove bežičnih mreža - Predavanje: Topologije
 
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
Osnove bežičnih mreža - Predavanje 4: 802.11 protokoli
 
Osnove bežičnih mreža - Predavanje: Antene
Osnove bežičnih mreža - Predavanje: AnteneOsnove bežičnih mreža - Predavanje: Antene
Osnove bežičnih mreža - Predavanje: Antene
 
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacije
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacijeOsnove bežičnih mreža - Predavanje Bežične radiokomunikacije
Osnove bežičnih mreža - Predavanje Bežične radiokomunikacije
 
[ERRO] Predavanje: FPGA 12.1.2017
[ERRO] Predavanje: FPGA 12.1.2017 [ERRO] Predavanje: FPGA 12.1.2017
[ERRO] Predavanje: FPGA 12.1.2017
 
[ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016
[ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016 [ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016
[ERRO] Predavanje: 8 i 32 bitni mikroupravljači/mikroprocesori 15.12.2016
 
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016 [ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
[ERRO] Predavanje: Komunikacija s mikroupravljačem 8.12.2016
 
[ERRO] Predavanje: Napajanje uređaja 8.12.2016
[ERRO] Predavanje: Napajanje uređaja 8.12.2016 [ERRO] Predavanje: Napajanje uređaja 8.12.2016
[ERRO] Predavanje: Napajanje uređaja 8.12.2016
 
[ERRO] Predavanje: Prikaz podataka 1.12.2016
[ERRO] Predavanje: Prikaz podataka 1.12.2016 [ERRO] Predavanje: Prikaz podataka 1.12.2016
[ERRO] Predavanje: Prikaz podataka 1.12.2016
 
[ERRO] Predavanje: RTOS
[ERRO] Predavanje: RTOS[ERRO] Predavanje: RTOS
[ERRO] Predavanje: RTOS
 
[ERRO] Predavanje: Porodice mikroupravljača
[ERRO] Predavanje: Porodice mikroupravljača[ERRO] Predavanje: Porodice mikroupravljača
[ERRO] Predavanje: Porodice mikroupravljača
 
[ERRO] Predavanje: 8051
[ERRO] Predavanje: 8051 [ERRO] Predavanje: 8051
[ERRO] Predavanje: 8051
 
[ERRO] Predavanje: ulazi/izlazi na mikroupravljač (27.10.2016)
[ERRO] Predavanje: ulazi/izlazi na mikroupravljač (27.10.2016) [ERRO] Predavanje: ulazi/izlazi na mikroupravljač (27.10.2016)
[ERRO] Predavanje: ulazi/izlazi na mikroupravljač (27.10.2016)
 
[ERRO] Predavanje: MARIE model procesora
[ERRO] Predavanje: MARIE model procesora [ERRO] Predavanje: MARIE model procesora
[ERRO] Predavanje: MARIE model procesora
 
[ERRO] Predavanje: Ponavljanje digitalnih sklopova
[ERRO] Predavanje: Ponavljanje digitalnih sklopova [ERRO] Predavanje: Ponavljanje digitalnih sklopova
[ERRO] Predavanje: Ponavljanje digitalnih sklopova
 
[ERRO] Uvodno predavanje (pravila polaganja ispita)
[ERRO] Uvodno predavanje (pravila polaganja ispita) [ERRO] Uvodno predavanje (pravila polaganja ispita)
[ERRO] Uvodno predavanje (pravila polaganja ispita)
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 12.
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 10.
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 8.
 

[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.

  • 1. Web aplikacije za mobilne ure ajeđ Stipe Predanić
  • 2. Stranice za mobilne ure ajeđ ● Zašto razvijati stranice za mobilne ure aje?đ ● Zašto razvijati web aplikacije za mobilne ure aje?đ ● prosinac 2012 - 64.2 milijuna korisnika u SAD-u i 48.4 milijuna korisnika u EU5 je pristupilo socijalnim mrežama ili blogovima putem “pametnog” telefona barem jednom (od toga polovica više puta). (izvor comScore) ● ožujak 2013 - u Hrvatskoj je 1.22 milijuna korisnika Interneta od ega 20% kroz mobile mreže (ponajvišeč koriste i smartphone)ć ● kolovoz 2013 – 17% svjetskog mrežnog prometa dolazi s mobilnih ure ajađ ● previše korisnika da ih propustimo
  • 3. Prednosti i nedostaci ● Prednost je samo jedna: ● maksimalna mobilnost ● Nedostaci: ● spor pristup Internetu s estim variranjima brzineč ● ure aji ograni enih mogu nosti prikaza,đ č ć procesorske snage i memorije ● rascjepkanost platformi
  • 4. Zaobi ite nedostatkeđ ● problem s brzinom ● cache na ure ajuđ ● korištenje AJAX-a kako bi se podaci prenosili u pozadini ● problem sa veli inom ekranač ● prilagodite izgled i/ili CSS ● prilagodite sadržaj ● problem sa procesorskom snagom i memorijom ● ne optere ujte stranice sa nepotrebnim JavaScriptć framework-cima (npr. na mobitelu sigurno ne treba jQuery Datatable)
  • 5. Preporuke: dizajn ● Preporuke za dizajn: ● zbog malog ekrana razli itih dimenzija (svakič telefon/tablet ima svoju rezoluciju) ne koristiti odnose (duljine, širine itd) u pikselima, ve u postocimać – primjer .menu{ width:300px; } postaje .menu{width:90%} ● ne koristiti puno slika, samo najnužnije, a ikone izvla iti iz CSS spriteovač ● ne koristiti evente koji se na touch screenu ne mogu upotrebiti – bilo JavaScript (onMouseOver, onMouseOut itd), bilo CSS (hover)
  • 6. Preporuke: dizajn ● Preporuke za dizajn: ● smanjiti broj potrebnih unosa sa virtualne tipkovnice i pripremite gumbe za unos – primjer: predefinirana tipkovnica sa brojevima na studomatu ● smanjiti koli inu gužve podataka na ekranuč odjednom – prelomiti podatke u više ekrana – pojednostaviti podatke koji se prezentiraju
  • 7. Preporuke: arhitektura ● Preporuke za arhitekturu: ● server – debeli klijent koji obavlja što više posla – koristiti JavaScript dostupnu bazu podataka ● WebKit (iPhone, Android) podržava WebSQL – provjera i filtriranje podataka prije slanja na server – slanje podataka AJAX-om – preporuke: ● izraditi jednu stranicu koja ima skrivene DIV-ove koji se pojavljuju po potrebi koriste i JavaScript. Kad korisnik u ita stranicu, ne eć č ć morati sa Interneta vu i nove stranice, što daje bolji osje ajć ć fluidnosti aplikacije. ● koristiti sustave s Virtualnim DOM-om
  • 8. Preporuke: arhitektura Prva stranica Druga stranica Treća stranica Stranice skrivene CSS-om (display:none, pomaknute van vidljivog područja, z-index:-1 )
  • 9. Korisni alati ● Detekcija mobilnog ure aja:đ ● detekcija browsera po user agentu: – WURFL – sada pod AGPL licencom ● zamjena OpenDDR, pa sada Apache DeviceMap – analiza user agenta - npr regularnim izrazom ( http://detectmobilebrowsers.com/ ) bilo na server strani (PHP), bilo na klijent strani (JavaScript) ● provjeriti JavaScriptom da li klijentski browser podržava element navigator.appVersion.indexOf("Mobile"); ● provjeriti JavaScriptom veli inu ekrana u pikselimač (problem: iPad 3 i 4 :D)
  • 10. Korisni alati ● HTML5 daje par zgodnih mogu nosti:ć ● WebSQL – baza podataka na mobitelu, upravljiva JavaScriptom – spremanje i itanje podataka bez potrebe za zahtjevom premač serveru ● a ako i ide zahtjev prema serveru povu e se sve što možda treba ič pospremi u bazu – podržano na iPhoneu i Android baziranim telefonima ● najavljuju povla enje u korist IndexDB ali još ništa od togač ● local storage – za spremanje jednostavnih podataka koji moraju ostati i nakon gašenja browsera (npr korisni ko ime, lozinka, postavke)č – u nuždi može se koristiti i kao zamjena za WebSQL
  • 11. Korisni alati ● HTML5 ● Offline aplication – definiranje koje datoteke treba cacheirati na klijentskom ure aju, i nikada ne mijenjatiđ – mogu e je i definirati koje datoteke zamjenjuju drugeć datoteke ako se stvarno radi o offline na inu radač ● dodatno korisno: – Geolocation – SSE (Server side events)
  • 12. Korisni alati ● JavaScript framework-ci koji su predvi eni za rad nađ mobilnim ure ajimađ ● nije problem u veli ini i overheadu frameworka ve želja zač ć podrškom za touch mogu nostimać ● predefinirani grafi ki elementi (CSS koji konzistentnoč izgleda na svim platformama) ● podrška za touch (scroll, zoom itd) ● Sencha Touch ● jQuery Mobile ● postoje prototype alati za bržu izradu stranica (Codiqa, Tiggzi)
  • 13. Native vs web ● korištenjem svih mogu nosti koje HTML5 pružać možemo stvoriti pristojnu višeplatformsku aplikaciju za mobilne ure ajeđ ● imamo spremanje podataka (WebSQL, local storage), “nevidljivu” komunikaciju sa serverom (AJAX) ● ali je i dalje nemogu e koristiti neke resurse telefona:ć kamera, vibracija, prava memorija (memorijska kartica) – ovisno o browseru! ● PhoneGap / Apache Cordova !
  • 14. PhoneGap ● development framework koji ● se pokre e kao nativna aplikacija na mobilnomć ure ajuđ ● ali za UI koristi webbrowser – HTML5/JavaScript ● daje JavaScriptu mogu nost upravljanja s resursimać telefona (npr kamera) ● višeplatformski – jedan HTML5/JavaScript kod za stranicu odgovara za više mobilnih ure ajađ – potrebno prilagoditi nativnu aplikaciju pojedinom telefonu
  • 15. Više informacija ● Više informacija ● jQuery mobile ( http://jquerymobile.com/ ) ● Codiqa ( http://www.codiqa.com/ ) ● PhoneGap ( http://phonegap.com/ ) ● Knjige Jonathana Starka – Building iPhone Apps with HTML, CSS, and JavaScript – Building Android Apps with HTML, CSS, and JavaScript

Editor's Notes

  1. procjena je kako će do kraja godine preko 600 milijuna ljudi imati nekakav smartphone