Mobilne web aplikacije kao alternativa iOS, Symbian i Android aplikacijama – imaju li smisla?
Cilj svakog izdavača mobilnih aplikacija je pokriti što više potencijalnih korisnika. Obzirom da je današnje mobilno tržište po broju korisnika fragmentirano na nekoliko jakih igrača, kako ćete kvalitetno pokriti što više mobilnih platformi? U zadnje vrijeme sve se više tvrtki poput 37signals i Facebooka oslanja na mobilne web aplikacije kao alternativu nativnim aplikacijama. Web ili nativna aplikacija, pitanje je sad...
Cilj svakog izdavača mobilnih aplikacija je pokriti što više potencijalnih korisnika. Obzirom da je današnje mobilno tržište po broju korisnika fragmentirano na nekoliko jakih igrača, kako ćete kvalitetno pokriti što više mobilnih platformi?
U zadnje vrijeme sve se više tvrtki poput 37signals i Facebooka oslanja na mobilne web aplikacije kao alternativu nativnim aplikacijama. Web ili nativna aplikacija, pitanje je sad.
Nativne mobilne aplikacije su aplikacije izrađene koristeći SDK i programski jezik određene mobilne platforme. Glavna karakteristika nativnog razvoja aplikacija je da je tako napravljene aplikacije uglavnom teško (ili gotovo nemoguće) prebaciti na drugu platformu, bez da se kompletan programski kod napiše ispočetka.
Serijom članaka o razvoju mobilnih aplikacija za Android, Symbian, iPhone i druge mobilne platforme Netokracija vas uvodi uz vodeće hrvatske stručnjake za mobilne i internetske tehnologije u svijet appova.
Od planiranja i izrade do promocije i slaganja korisničkog sučelja, u tome nas podržava Ovi by Nokia na kojemu možete naći pregršt mobilnih aplikacija kao i objaviti vlastitu.
Pristupom web mobilne aplikacije išao je 37signals za svoj Basecamp Mobile. Iako imaju niz nativnih mobilnih klijenata koje ne održavaju sami, vlastiti mobilni proizvod su razvijali kao mobilni web jer kažu da ne žele razvijati i održavati posebni klijent za svaku platformu, niti biti ovisni o tome da će ih sutra Apple tražiti primjerice 30 posto prihoda od njihove usluge. Za web mobilnu aplikaciju odlučio se i Facebook, koji je rekao da što se tiče tablet tržišta neće razvijati nativnu iPad aplikaciju nego planiraju razviti HTML5 rješenje.
Ciljate li iOS, aplikaciju ćete razvijati koristeći iOS SDK, a programski kod pisati u programskom jeziku ObjectiveC. Nakon toga, ako ćete htjeti lansirati verziju aplikacije i za Android uređaje, morat ćete razvijati u Javi koristeći Android SDK. Ako ćete htjeti pokriti i Symbian uređaje, morat ćete razvijati u C++u koristeći QT Creator i tako se priča dalje nastavlja za sve druge platforme: BlackBerry, Windows Phone 7, webOS, bada..
Najveća prednost nativnih aplikacija jest što su izrađene po mjeri za zadanu platformu, dakle daju najbolji rezultat koji je moguće ostvariti na toj platformi. Nedostatak ovog pristupa je visok trošak razvoja i održavanja nekoliko različitih verzija aplikacije.
Ne tako davno, mobilni telefoni imali su tragično loše implementirane preglednike, sjetimo se samo WML-a i sličnih standarda. Danas je situacija na polju mobilnog browsinga drastično bolja te mobilni internetski preglednici podržavaju većinu funkcionalnosti kao i njihovi desktop ekvivalenti, samo na manjem ekranu i s manje procesorske snage.

Napredak u mobilnim internetskim preglednicima danas omogućava developerima da stvore mobilne web aplikacije koje su upotrebljive na razini nativnih aplikacija. Slična situacija se u PC segmentu događala prije nekoliko godina, kad se pojavio Gmail i slični servisi koji su dovoljno dobro radili u internetskom pregledniku tako da niste morali instalirati aplikaciju na svoje računalo.
Mobilne web aplikacije se ne trebaju shvaćati kao “optimizirane” verzije postojećih web stranica ili web aplikacija. Riječ je o potpuno novim aplikacijama izrađenim najčešće koristeći alate poput JQTouch, Sencha Touch ili jQuery mobile. Dakle, ako krenete izrađivati mobilnu web aplikaciju, vjerojatno da ćete morati dobar dio koda napisati ispočetka, jedino što ćete moći koristiti poznate tehnologije – HTML, Javascript i CSS.
HTML5-4-3-2-1
Većinu ovih naprednih mogućnosti koje omogućuju izradu mobilnih web aplikacija koje su u rangu s nativnim nazivaju se HTML5. To je u biti adekvatan termin koji podrazumijeva CSS3, Geolocation, Web Storage, Application cache i druge funkcionalnosti, kao što je prije nekoliko godina AJAX bio adekvatan termin za objasniti bilo kome javascript interakcije unutar web stranice.
Ključni element koji je omogućio razvoj mobilnih web aplikacije je prihvaćanje Webkit browser enginea kao svojevrsnog standarda na gotovo svim mobilnim platformama. Dakle iOS, Android, bada, Blackberry, webOS – svi oni koriste Webkit kao rendering engine.
Dobar dio funkcija koje ćete koristiti su specifične za Webkit, dakle u određenom trenutku više nećete razvijati prema HTML5 specifikaciji nego prema Webkit implementaciji. Trenutno vam to garantira najveću kompatibilnosti na različitim platformama. Podršku za HTML5 su uglavnom usvojile sve platforme osim Windows Phone 7.
Native ili web?
Diskusija je već toliko prožvakana da čak postoji simpatičan (kako kome) video spot. Odabir između native i web-based mobilnih aplikacija ne predstavlja crno-bijelu situaciju jer postoji dovoljno dobrih argumenata i za jedno i drugo.
Korisničko iskustvo
Performanse aplikacije kao i dostupne mogućnosti (pristup akcelerometrima, kameri, snimanju i reprodukciji zvuka itd..) uvijek su na strani nativnih aplikacija.
Ipak, obzirom na brzinu uređaja i Webkit implementacija, danas se doista čuda mogu raditi kao web aplikacije i za content aplikacije može se postići solidna brzina i look and feel, barem na iOS uređajima. S Android uređajima se već pojavljuje više problema – telefoni su različitih performansi i dimenzija ekrana, CSS tranzicije nisu hardverski akcelerirane i općenito je browser lošiji nego na iPhoneu, tako da o tome trebate voditi računa kod odabira.
Nativne aplikacije su izrađene po mjeri za pojedinu platformu i uvijek će raditi brže, bolje i izgledati ljepše od web aplikacija. Dobar primjer toga je odlična slovenska aplikacija Toshl koja ima razvijene nativne klijente za sve glavne platforme, a koji su korisničkim iskustvom prilagođeni svakoj pojedinoj platformi što je najbolje moguće rješenje.
ROI odnosno return on investment
Povrat investicije uložene u razvoj je bitan. Ako jednom izradite mobilnu web aplikaciju, moći ćete pokriti puno više platformi za manji trošak i uz puno brži “time to market” što su sve vrlo jaki argumenti jer si širite tržište, a usput i štedite.
Također, pristupačnost developerima je točka koje ide u prilog web aplikacijama jer je puno developera već zna HTML/JS/CSS te su im to pristupačnije platforme od ObjectiveC-a, Android Jave i drugih.
U teoriji to lijepo zvuči, no jesu li zbilja troškovi manji i vrijeme izrade kraće? Ovisi o slučaju i situaciji. Ako ste perfekcionist toliko vremena ćete potrošiti da popravite određene greške kojih ne bi bilo da ste radili native aplikaciju. Vjerojatno ćete morati prilagođavati i koncept svoje aplikacije te morat ćete prihvatiti da neke stvari jednostavno ne možete napraviti i morat ćete raditi kompromise. Također, dosta vremena ćete izgubiti na popravljanje cross browser ili cross device problema.
Poslovna perspektiva
Glavno svojstvo mobilnih web aplikacija je da se ne moraju i ne mogu smjestiti u neki app store, nego je dovoljno posjetiti link. Nešto što je prednost recimo Gmaila na računalu (jeej, ne moram ga instalirati), na mobilnoj platformi i nije tolika prednost. Korisnici pametnih telefona su uglavnom dobro upoznati skonceptom trgovine mobilnih aplikacija i znaju da tamo nalaze aplikacije. Druga prednost app storea koje je vrlo bitna je da vam daje mogućnost monetizacije aplikacija kroz prodaju ili in app purchase.
Za ovaj problem doduše postoji i zaobilazno rješenje, a zovu se hibridne mobilne aplikacije. Riječ je o nativnoj aplikaciji koja u WebView komponenti izvršava neku web aplikaciju.
Pitanje tržišnog udjela je isto vrlo zanimljivo i generalno tu argument ide na stranu mobilnih web aplikacija. S mobilnom web aplikacijom možete pokriti puno više uređaja i potencijalnih platformi nego s nativnom aplikacijom, ali ćete morati raditi prilagodbe za svaku od njih.

Ako svoj proizvod i uslugu jako vežete uz bilo koju platformu, postajete nešto što se naziva digital sharecropper, dakle kopate i orete po Appleovoj, Googleovoj ili bilo čijoj plantaži besplatno, dok s mobilnom web stranicom niste vezani uz određenu platformu.
Ako imate dovoljni budžet da razvijate, ali i održavate paralelno verzije aplikacije za nekoliko OS-a, onda sigurno možete ići na native varijantu, jer ćete u konačnici dobiti kvalitetniji proizvod. U suprotnom, ako aplikacija uglavnom obavlja manipulaciju podacima i ne pristupa naprednim funkcijama telefona, možda je odabir web tehnologija kao razvojne platforme dovoljno dobar za vas. Odluka će vam stoga ovisi o pojedinom slučaju, stoga razmislite o vama najbitnijim faktorima i donesite informiranu odluku.
Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.
Pravila ponašanja
Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:
Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.
Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.
Komentari
Damir
24. 03. 2011. u 11:20 am
Nema tu nikakvog pitanja. HTML5/Web app’s nisu ni blizu native aplikacijama i to ce tako ostati jos sigurno jedno pet godina.
Native app ima bolji user expierence, vise mogucnosti i naravno puno bolje izgleda (nije zalijepljem u browseru).
Ako imas mogucnosti da napravis native app onda pravi native app.
Edi Budimilić
24. 03. 2011. u 11:59 am
Nativna web browser kontrola koja otvara webapp je moj top choice za poslovne aplikacije. Uz dobar odabir frameworka i web aplikacija može raditi gotovo jednako kao i nativna. Naravno, isključujem game development.
Pet minuta izrađuju takve “hibridne” aplikacije. Čak smo se i mi okušali i radi zadovoljavajuće.
Tomislav Car
24. 03. 2011. u 1:04 pm
Trenutno je situacija takva da može raditi s nekih 80-90% učinkovitosti, responzivnosti i look and feela kao nativna – ali na iOS uređajima.
Na Androidu ćeš se pomučiti sa manjim i slabijim uređajima (kao recimo X10 mini ili HTC Tatoo), a ni druge platforme nisu baš blistave, tj.negdje su na razini Androida.
Ono što je bitno u cijeloj priči je ograničenja HTML5 pristupa jasno u startu iskomunicirati klijentu, jer klijenti nisu dovoljno educirani i misle da će im aplikacija svugdje raditi jednako, uglavnom imaju previsoka očekivanja.
Ne želiš se dovesti u situaciju da vodiš ovakav razgovor s klijentom:
– “Žale nam se customeri, aplikacija loše radi na HTC Wildfire”
– “Ali znate, taj telefon ima 528 MHz procesor i nema hardverski akceleriran CSS”
– “Ali vi ste nam rekli da HTML5 pristupom ćemo pokriti sve iOS i Android uređaje?”
@tpodmani
24. 03. 2011. u 1:21 pm
Sviđa mi se ovaj članak!
Prije nekog vremena i ja sam se bavio tim razmišljanjem, o čemu sam pisao na http://toni.podmanicki.com/blog/izrada-web-stranica-i-aplikacija-za-iphone i za tu prigodu napravio web stranicu prilagođenu iPhone uređaju (nisam imao vremena prilagoditi CSS za druge uređaje, ali sam napravio primjer kako izgleda za one koji dolaze s desktop browsera).
Upravo kao što si rekao u zaključku “Odluka će vam stoga ovisi o pojedinom slučaju, stoga razmislite o vama najbitnijim faktorima i donesite informiranu odluku.” to je sva mudrost oko vječite dileme web vs native app.
Dino
24. 03. 2011. u 10:24 pm
odlično kao i uvijek od tebe.
zanimljivo je da su se jaki igrači opredjelili za html a manji za native. možda su veliki zato i veliki jer štede pare, makar njihovo ponašanje tako često ne izgleda.
Ivan Galic
25. 03. 2011. u 11:08 am
I kod velikih igraca se stvari razlikuju od slucaja do slucaja. Facebook se odlucio za web app, twitter ima nativne klijente za sve platforme. Mislim da se tu ne radi toliko o stednji koliko o drugim faktorima – ako za primjer uzmemo twitter i facebook, twitteru je user experience i dizajn uvijek bio veci prioritet nego facebooku, sto se vidi i iz njihovih klijenata. Osim toga, kao sto u clanku pise radi se i o izbjegavanju ovisnosti o vlasniku OS-a i pogotovo u slucaju Applea, njegove hirovitosti.
Mislim da se stvari krecu slicnom putanjom kao na PC-u; do prije par godina je cijeli web bio samo hrpa staticnih web stranica s informacijama, dok se danas tu moze naci ogroman niz aplikacija koje su prije bile rezervirane za desktop. Ipak, neke stvari ostaju nativne i vjerojatno ce tako biti jos neko vrijeme. Vidjet cemo 🙂
Siniša Abramović
06. 04. 2011. u 7:40 am
Jako dobar tekst, samo ne razumem zašto je kolega ispustio napomenuti “kroskompajlere” ili je to meni negde promaklo u tekstu.
Native Made Easy 🙂