Skrivning af iPhone-apps ved hjælp af open source-software

Da iPhone først blev lanceret, var der ingen tredjepartsapplikationer til den, hvilket næppe var overraskende – Apple havde brug for tid til at skabe og dokumentere infrastrukturen for udviklere. I stedet var der "webapps": websteder målrettet mod iPhone-versionen af ​​Safari, skræddersyet til dens lille skærmstørrelse og roterbare skærm.

Skrivning af iPhone-apps ved hjælp af open source-software

Da Apple åbnede iPhonen for native applikationer fra tredjeparter, var der en appeksplosion, med mere end 50.000 tilgængelige knap et år efter, at iTunes App Store åbnede. Nogle af disse er virkelig innovative og udnytter platformen bedst muligt, mens andre knap nok er båndbredden værd at downloade dem.

Fra de tidligste webapps til de nuværende native applikationer har der været open source-software tilgængelig til at hjælpe med at bygge dem. Der er komplette webapp-rammer, native applikationsbiblioteker og endda komplette iPhone-applikationer. Jeg vil tage et kig på, hvordan du kan bruge nogle til at skrive en iPhone-app.

Til en vis grad er disse tidlige webapps - specialbyggede websteder målrettet mod Safari - blevet afløst af rigtige native applikationer, men der er i øjeblikket en genopblussen af ​​interesse af to årsager. For det første er mulighederne i Safari-web nu tilgængelige for andre telefoner, især Android-baserede håndsæt, der deler WebKit-browserplatformen. For det andet er der nu pakker, der giver en udvikler mulighed for at indlejre en sådan web-app i en "rigtig" applikation.


Så hvordan bygger du en webapp? Hvis du virkelig er ivrig, bliver du en Apple-registreret udvikler og ser på dets eksempler Så hvordan bygger du en webapp? Hvis du virkelig er ivrig, bliver du en Apple-registreret udvikler og ser på eksemplerne - hvis du er mindre ivrig, ser du på de tilgængelige værktøjssæt. Alle de værktøjssæt, jeg vil nævne her, ligner hinanden ved, at de kræver, at du opretter et websted ved hjælp af deres JavaScript- og CSS-biblioteker. Typisk opretter du et websted som en samling af HTML DIV'er, der indeholder uordnede lister som navigationselementer. Du behøver ikke tænke meget over appens udseende, da det meste af det er afledt af værktøjskassen.

Disse værktøjssæt kræver JavaScript, så du kan udvide webstedets navigation ved at lave en indledende side, der viser ti blogindlæg, med den 11. post et link, der indlæser yderligere ti, og så videre. Webappen skal kun vise, hvad der kræves for at få en bruger i gang, med ekstra indhold på efterspørgsel.

En af de bedste og længstvarende er iUI-ramme, et JavaScript-bibliotek plus CSS og billeder til udvikling af iPhone-webapps. Dette er blevet brugt i bøger og en række iPhone-websteder. For nylig er pakken blevet forbedret ved at inkorporere nogle iPhone-afhængige effekter.

iPhone-versionen af ​​Safari har visse specielle funktioner designet til at drage fordel af platformen - især forskellige former for animation implementeret via stylesheets. For eksempel er en vigtig brugergrænsefladefunktion, at hver gang du vælger et element i en tabel, glider den tabel til venstre, og den næste side glider ind fra højre.

Den originale version af iUI implementerede dette på en platformagnostisk måde ved hjælp af en JavaScript-animation til at flytte positionerne på de to sider. Mens processen fungerede, var den langsom og ikke som den ægte vare, så den seneste version af iUI implementerer effekten ved hjælp af Mobile Safari CSS stylesheet-udvidelser, hvilket resulterer i en hurtigere, glattere effekt.

Et andet lignende bibliotek er iWebkit, som har et lidt rigere sæt navigationsmuligheder, men er lidt mindre udviklet. To andre webapp-rammer, jeg gerne vil nævne, er Magic Framework og Jaipho. Ved første øjekast Magisk ramme ligner iUI og iWebkit, men det har et trick i ærmet: det har en indbygget database.