Test: Sådan udvikler du én app til alle smartphones

Det mobile framework PhoneGap giver dig mulighed for at udvikle en app, der kan implementeres på både Android, iOS, Windows Phone, BlackBerry, Symbian, WebOS og Bada.

Artikel top billede

Læs også:

HTML5 eller apps? Sådan vælger du din mobil-løsning

Fuld fart frem: Byg en app på seks uger

Computerworld News Service: Udvikling af apps til mobile enheder handler lige så meget om kunstfærdigt udførte grafiske brugergrænseflader og skærm-flow som om teknisk programmering.

At der lægges så stor vægt på form betyder, at det er mere sandsynligt at finde de vigtigste kompetencer til udviklingen af mobilapplikationer hos dine webudviklere end hos dine Objective-C-kodere.

Det mobile framework PhoneGap - der nu er et officielt Incubator-projekt ved navn Cordova under Apache Software Foundation - gør det muligt at udnytte sine kompetencer inden for webudvikling til udvikling af apps til mobile enheder ved at kombinere HTML, CSS og JavaScript med en API, der forbinder til apparaternes hardware og indbyggede funktionalitet.

Sådan fungerer PhoneGab

PhoneGap gør det muligt for webudviklere at bruge kontakter og filer på mobile enheder, foretage ændringer i det lokale lager, bruge enhedens sensorer (som kamera og GPS) samt facilitere dataudveksling direkte fra brugergrænsefladen.

Det bedste af det hele er, at en app, der er udviklet med PhoneGap, kan implementeres på den bredeste vifte af enheder, man kan forestille sig: Android, iOS, Windows Phone, BlackBerry, Symbian, WebOS og Bada.

Naturligvis har PhoneGaps' lette tilgang og kompatibilitet på tværs af platforme sin pris: PhoneGap skaber webapplikationer, der virker native (udviklet specifikt til én platform), men som faktisk ikke kvalificerer til denne betegnelse.

Når du bygger en app til for eksempel Android, pakker PhoneGap din HTML, JavaScript og CSS ind i en WebView-container.

Det betyder, at afviklingen af applikationen er afhængig af den underliggende rendering engine (grafikmotor, red.), WebKit, og at applikationen således arver browserens hastighedsbegrænsninger.

Derfor er PhoneGap ikke det bedste valg til beregningstunge applikationer.

Men hvis du er ude efter en måde at udvikle data-drevne webapplikationer til en bred vifte af mobile platforme, så rammer PhoneGap en fin balance mellem arbejdsindsats og funktionalitet.

PhoneGap gør det muligt at udvikle stærke apps, der kan udvides med plugins for at efterligne brugergrænsefladen i native apps eller tilføje funktionalitet såsom push-meddelelser eller integration med PayPal, men uden de samme høje krav til færdigheder og arbejdsindsats som ved native kodning.

Og så er PhoneGap gratis.

Du får brug for udviklingsværktøjer

Læs også:

HTML5 eller apps? Sådan vælger du din mobil-løsning

Fuld fart frem: Byg en app på seks uger

Vær opmærksom på, at PhoneGap SDK er et rent framework uden præfabrikerede kode-widgets eller andet, der kan hjælpe med udviklingen af brugergrænseflader.

PhoneGap inkluderer heller ikke middleware til at forbinde enheder med backend-servere.

Du får brug for udviklingsværktøjer til at kode din app.

Til Android kan du installere Eclipse, Android SDK og plugin'et Android Development Tools. Du kan derudover vælge at installere Git, hvis du ønsker at målrette din app til specifikke platforme og samtidig minimere dens størrelse.

Hvis din app desuden skal kunne køre på iOS, Windows Phone og BlackBerry, kan du bruge Adobes PhoneGap Build-cloud til at oprette pakker til disse og andre understøttede platforme.

PhoneGap Build er gratis at bruge til open source-projekter eller en enkelt privat app, men det koster fra omkring 70 kroner per måned til omkring 500 kroner per måned at bruge til større projekter.

Det kræver lidt tilpasning af koden at komme i gang med Android SDK: Et Android-projekt skal defineres, PhoneGap-biblioteker skal importeres, Java-startfilen skal pege over til PhoneGap, og grundklassen skal ændres til extendDroidGap.

Man er også nødt til at ændre setContentView til at indlæse URL'en til sin apps' HTML-baserede startskærm, der også skal oprettes manuelt.

Integrerede udviklingsmiljøer

Hvis alt det virker afskrækkende, så kan du overveje at bruge et af de PhoneGap-baserede integrerede udviklingsmiljøer (IDE'er), såsom AppMobi eller Tiggzi, der giver framework'et en grafisk frontend. Adobe Dreamweaver CS 5.5 fungerer også fint med PhoneGap.

Det er mere ukompliceret at bruge PhoneGap med Xcode på Mac, da Xcode genererer alle aktiver og leverer en grafisk frontend, der gør det lettere at konfigurere for eksempel splash screens og orientering af skærmen.

Det var dog i forbindelse med denne test let nok at konfigurere min Android-enhed (version, skærmopløsning, lagerenhed og så videre) i Eclipse, så det var relativt hurtigt at producere en simpel app. API-metoderne er veldokumenterede og overstrøet med kodeeksempler.

Eclipse opsætter en central mappe, der bliver det primære lager for dit projekts billeder, HTML og JavaScript. Udviklingen af din app - hvad enten du bruger teksteditoren i Eclipse eller Dreamweavers PhoneGap-plugin - er ligesom at opbygge en almindelig webside.

Og selvom der ikke er direkte adgang til native grænseflade-elementer, så kan du anvende brugergrænseflade-værktøjer fra tredjeparter såsom JQuery Mobile, Sencha Touch og XUI. Du kan også gøre brug af CSS3 til at skabe effekter.

Ud over at gøre udviklingen lettere giver PhoneGaps browser-baserede tilgang den fordel at levere mere forudsigelige resultater på tværs af forskellige formfaktorer og skærmes pixeltætheder.

På den anden side er der stadig en masse manuel kodning involveret, som ikke håndteres af Xcode eller Dreamweaver.

Her kommer cloud-baserede værktøjer som Tiggzi til deres ret. Tiggzi understøtter opbygning af drag-and-drop-grænseflader og leverer en grafisk grænseflade til opsætning af servicekald og mapping af disse kald til brugergrænsefladen, så det er muligt at teste resultaterne.

I PhoneGap gøres alt dette ved at indtaste kode.

Her er dommen over PhoneGab

Selvom PhoneGap allerede er nok så nyttig, så er der altid plads til forbedring.

For eksempel ville jeg foretrække bedre værktøjer til manipulation af data samt dybere understøttelse af Android-standarder som Intent, der giver mulighed for at håndtere hændelser som indkommende opkald, modtagelsen af en e-mail eller færdiggørelsen af en filoverførsel.

I visse tilfælde er der en plugin til rådighed (såsom WebIntent til brug med Intents), men de får problemer med pålidelighed og kompatibilitet, så snart PhoneGap bliver presset lidt.

Frem for anvendelsen af plugins til sådanne native funktioner, burde håndteres af PhoneGap.

Under udvikling

Der udkommer nye versioner af PhoneGap næsten hver måned.

Selvom det er godt nyt for udviklere, der er ude efter nye, hotte funktioner, så vil dette hæsblæsende udgivelsestempo uvægerligt resultere i fejl og kode-omorganisering, som man især som udvikler af plugins må være opmærksom på.

Fra et driftsmæssigt perspektiv ville jeg foretrække færre, men større udgivelser.

Den cloud-baserede service PhoneGap Build er først for nylig udkommet i en produktionsversion. Den tager dine projektfiler og spytter en binær fil ud, som er klar til udrulning.

Min oplevelse er, at Build er lidt langsom, men den kan spare dig for en hel del tid i forhold til nøgler og certifikater - selv hvis du kun udvikler til en enkelt platform.

Men den største fordel ved at anvende Build er dog, at man undgår behovet for at vedligeholde adskillige udviklingsplatforme til kompilering. Man uploader bare den kode, man har udviklet med sine Android-værktøjer, og får serveret binære filer til iOS, BlackBerry og Windows Phone.

Skal du prøve PhoneGab?

Ikke alle mobilprojekter kræver en native applikation eller en stor infrastruktur.

Hvis dit mål er at udvide en web-app til mobile enheder, så tilbyder PhoneGap dig en hurtig, velkendt og omkostningseffektiv metode ved at forbinde til indbyggede funktioner på alle de vigtigste mobilplatforme uden at stille krav til programmeringsfærdigheder inden for hver af disse platforme.

PhoneGap er sandsynligvis den aktuelt hurtigste og letteste måde at bygge datadrevne mobilapps på.

Oversat af Thomas Bøndergaard.

Læs også:

HTML5 eller apps? Sådan vælger du din mobil-løsning

Fuld fart frem: Byg en app på seks uger

Annonceindlæg fra Computerworld

Defence Tech Denmark hjælper virksomheder med at bringe innovation ind i forsvarssektoren

Et nyt nationalt initiativ fra Industriens Fond, EIFO og Innovationsfonden – eksekveret af DTU Science Park og Teknologisk Institut– skal bygge bro mellem startups, SMV’er og Forsvaret.

En kaotisk verden kræver stærk cybersikkerhed, resiliens og digital suverænitet

Mød David Heinemeier, Flemming Splidsboel Hansen, Casper Klynge, Rasmus Knappe, Jens Myrup Pedersen og forfattere som fhv. jægersoldat Thomas Rathsack og adfærdsforsker Henrik Tingleff.

Computerworld afholder d. 4. og 5. november Cyber Security Festival i København - med fokus på sikkerhed, resiliens og digital suverænitet. Det er helt gratis - men reserver din plads allerede nu.

Hele programmet er online lige nu - og du kan reservere din gratis plads lige her - jeg håber vi ses! 

Lars Jacobsen

Chefredaktør på Computerworld

Se alle Lars's artikler her

Navnenyt fra it-Danmark

Adeno K/S har pr. 22. september 2025 ansat Steen Riis-Petersen som ServiceNow Expert. Han kommer fra en stilling som Senior Manager hos Devoteam A/S. Nyt job
Danske Spil har pr. 1. oktober 2025 ansat Jesper Krogh Heitmann som Brand Manager for Oddset. Han skal især beskæftige sig med at udvikle og drive brandets strategi og sikre en rød tråd på tværs af alle platforme og aktiviteter. Han kommer fra en stilling som Marketing & Communications Manager hos Intellishore. Nyt job

Jesper Krogh Heitmann

Danske Spil

Netip A/S har pr. 1. september 2025 ansat Caroline Harkjær Bach som Business Controller ved netIP's kontor i Thisted. Hun er uddannet med en kandidat i erhvervsøkonomi med speciale i organisation, strategi og ledelse. Nyt job