Artikel top billede

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.

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




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
KEYBALANCE A/S
Udvikling og salg af økonomisystemer samt CRM og MPS. Systemer til blandt andet maskinhandlere, vvs-branchen, vognmænd, låsesmede,handelsvirksomheder

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
IAM - din genvej til højere sikkerhed uden uautoriseret adgang og datatab

På denne dag udforsker vi de nyeste strategier, værktøjer og bedste praksis inden for IAM, med det formål at styrke virksomheders sikkerhedsposition og effektiviteten af deres adgangsstyringssystemer og dermed minimere risikoen for uautoriseret adgang og datatab. Og hvordan man kommer fra at overbevise ledelsen til rent faktisk at implementere IAM?

18. april 2024 | Læs mere


EA Excellence Day

Hvad er det, der gør it-arkitektens rolle så vigtig? Og hvad er det for udfordringer inden for områder som cloud, netværk og datacentre, som fylder hos nogle af landets bedste it-arkitekter lige nu? Det kan du her høre mere om og blive inspireret af på denne konference, hvor du også får lejlighed til at drøfte dette med ligesindede.

23. april 2024 | Læs mere


AI Business Excellence Day – sådan folder du mulighederne ud

Mange danske virksomheder har eksperimenteret med AI-projekter af begrænset omfang, men kun de færreste har for alvor udforsket mulighederne i storskala. Det gør vi her! Du vil blandt andet få mulighed for at se eksempler på, hvordan AI kan anvendes som accelerator i storskala og skubber til grænserne for, hvordan det er muligt at integrere teknologien, så potentialet for alvor foldes ud.

24. april 2024 | Læs mere