Derfor skal du kode mobile apps i HTML5
Du skal udvikle en lækker mobil-applikation og skal dække Android, iOS og måske også Windows Phone.
Det betyder normalt, at du enten skal kode både i Android-Java, Objective-C og C#, eller bruge et værktøj til at oversætte koden til flere platforme, med svingende held.
Men hvorfor ikke bare holde dig til webteknologier som Javascript og HTML5, som kan køre på alle platforme, og så pakke det ind som en normal, lokal applikation?
Sådan lød det fra Kristian Langborg-Hansen på konferencen Community Day i sidste uge. Han har ved siden af sit arbejde som udvikler hos Schneider Electric blandt andet skrevet undervisningsbøger om HTML5.
»Du kan lave helt rigtige apps som Angry Birds og Wordfeud med Javascript og HTML5. Det er teknologier, som de fleste af os kender, og så kommer du ud på alle platforme på én gang. Med lidt held også Blackberry,« forklarede han de fremmødte udviklere i salen.
'Yes we can' tilgå kameraet
Han jog med Obama-sloganet ’yes, we can’ en pæl gennem nogle af de myter, han støder på, når han nævner konceptet native applikationer kodet med HTML5.
»Kan man pakke det som en rigtig app? Ja, man kan. Kan det sælges i App Store? Ja, og for brugeren ligner det fuldstændig en normal app. Kan det tilgå kamera og GPS? Yes – det kan vi også, der er API’er til det,« forklarede han.
På nej-fronten understregede han, at brugerne ikke først skulle åbne deres browser eller være online for at køre sådan nogle apps.
»Er det så ikke super langsomt? Nej – for på telefoner i dag er browseren som et ekstra lag ikke det, som vil give problemer,« sagde han.
Helt rosenrødt er det dog ikke at bruge webteknologier til applikationen, for Write Once, Run Anywhere holder ikke. Selvom alle telefonernes browsere kan køre koden, kan det ske på lidt forskellig vis, fordi det ikke er de samme browsere overalt.
»Det er som dengang, man skulle tilpasse websider til forskellige browsere. Der er også skærmstørrelsen at tage hensyn til. Med smartphones ved du ikke engang, om skærmen er bred eller høj,« forklarede han.
I nogle situationer er en web-applikation også bare en dårlig idé, og så er det bedst at holde sig til den normale fremgangsmåde, lød rådet.
»Hvis du virkelig har brug for total kontrol over telefonen, trækker det i retning af native. For eksempel hvis du vil live-streame fra kameraet, eller at app’en bare skal tage et billede. Så er der ikke så meget grund til at køre HTML og Javascript ind over,« forklarede Kristian Langborg-Hansen.
Det samme gælder, hvis hastighed er meget afgørende, for eksempel hvis målet med applikationen er at plotte data i realtid, så selv en bette forsinkelse på 10 millisekunder er for meget. En applikation med meget beregning og kompliceret kode bør man også holde native.
»Hvis det meste er logik, er Javascript ikke førstevalg. Men hvis det mest er UI [brugergrænseflade, red.], så giver det mening,« lød budskabet.
Hvorfor lave en iPhone-brugergrænseflade?
Her ville han også gerne gøre op med mantraet om, at en smartphone-applikation skal have en brugergrænseflade som alle andre. Faktisk mente han, at det kunne give lige så meget mening at gå efter en brugergrænseflade á la webapplikationer, for dem har folk også masser af erfaringer med.
»Det skal ikke ligne en grim hjemmeside, men noget, som brugeren er vant til, og det kan man også sagtens. Hvorfor skal det ligne en iPhone-app, hvis man kan lave noget, der passer bedre til? Alle, der har en smartphone, har været på nettet og har brugt en web-app. Så det vil ikke være fremmed,« sagde han.
Selve kodearbejdet anbefalede han foregik med hjælp fra værktøjer som Sencha og Jquery Mobile. Han var selv lige skiftet væk fra Sencha, fordi det ikke understøtter Windows Phone, men var ellers glad for det. Så bliver koden automatisk pakket ind som en applikation, som så åbner en browser og kører web-koden.
»Det er rigtig skægt at skrive det hele fra bunden i en blank editor – men kun indtil der kommer testere på, som finder en masse fejl,« forklarede Kristian Langborg-Hansen.
Bruger man Jquery Mobile er værktøjet Phonegap en stor hjælp til at få lavet applikationer til de forskellige platforme, så man ikke selv skal sidde og kompilere og uploade, lød rådet.
Og til alle dem, der får nervøse trækninger ved tanken om applikationer bygget på Javascript var budskabet, at det sagtens kan lade sig gøre - om nødvendigt ved at skrive i Java først og så få det oversat.
»Man kan godt lave dårlig Javascript-kode. Men man kan også bare stramme sig an og lave god Javascript-kode,« sagde han.
