28.6.2012

Ovatko HTML5-hybridisovellukset liian hitaita?

Debatti siitä mikä on paras reitti palvella mobiilia asiakasta sai uutta sisältöä kun huhut Facebookin natiivista iPhone sovelluksesta vahvistuvat. Mikä on paras vaihtoehto, html5, natiiviratkaisu vai sittenkin Geniemin AppEver -moottori?

New York Timesin blogi-kirjoituksen mukaan n. 38 000 Facebook sovelluksen arviosta Applen App Storessa  21 000 on antanut yhden tähden. Sovellusta moititaan hitaaksi, haisevaksi ja aina jotain lataavaksi.

NY Timesin blogisti Nick Bilton itse arvioi sovelluksen olevan jopa yksi App Storen hitaimmista koko kaupassa olevista sovelluksista. Facebook ei ole itse vahvistanut asiaa, mutta pääsääntöisesti nykyinen Facebook sovellus on ns. hybridi, jossa suuri osa koodista on html5-koodia joka on kietaistu (”wräpätty”) natiivikoodin sisään (Objective C).

Tämä on tehty pääsääntöisesti kustannustehokkuuden kannalta, koska html5-koodia on helppo käyttää myös esimerkiksi Android-sovelluksen pohjana.

Lähtökohtaisesti html5-koodi tarkoittaa sitä, että sovelluksen sisällä pyörii pieni ”web-ikkuna” jossa kuvat ja sisältö haetaan Webistä ikkunan sisään. Natiivi Objective-C pohjainen ratkaisu on huomattavasti tehokkaampi ja hyödyntää Applen valmiiksi tekemiä käyttäliittymäkomponentteja jotka on laitteelle optimoituja.

Blogistin mukaan uusi sovellus on salaman nopea 🙂

Mitä tämä tarkoittaa siis html5 hybridi-sovellusten kannalta? Yksinkertaisempi sovellus ei kärsi ”web-ikkunan” hitaudesta samalla tavalla kuin iso ja laaja sovellus. Joka tapauksessa natiivi on aina askeleen parempi, hienompi ja nopeampi. Joten jos etsitään ”loistavaa” käyttäjäkokomusta, luottaisin natiiviratkaisuun. Kun taas halutaan esimerkiksi lyhytaikainen tapahtumasovellus usealle alustalle kustannustehokkaasti, html5 hybridi on silloin hyvä valinta.

Geniem AppEver -moottori tarjoaa kolmannen tavan, jolloin sovellus koodataan skriptaamalla hyödyntäen natiiveja käyttöliittymäkomponentteja, mutta koodi on 80% käytettävissä sekä Android, että iOS alustoille. Tämä ”cross-platform” kehitys tarjoaa kustannustehokkuuden mutta lähes natiivisovelluksen laadun. Lähes siksi, että myös cross-platform skriptikieli hidastaa hieman verrattuna Objective C toteutukseen, mutta silti ollen selvästi html5 koodia nopeampaa.

Tosin AppEver moottori Androidille on ohjelmoitu pääosin C:llä, jolloin sovellukset Androidilla ovat itse asiassa yhtä nopeita kuin ”natiivit” Android sovellukset jotka on koodattu Javalla.