Skriva iPhone-appar med öppen källkod

För att skapa en iPhone-app behöver du två saker: en Mac och en kopia av utvecklingsmiljön Apple Xcode. Den senare är gratis att ladda ner, även om du måste betala Apple om du vill bli en registrerad utvecklare som kan skicka in dina applikationer till iTunes Store. Som registrerad utvecklare får du också tidig tillgång till nya versioner av iPhone OS.

Skriva iPhone-appar med öppen källkod

Självklart måste du vara lite försiktig med att rikta in dig på en ny version av operativsystemet, men de flesta iPhone-användare är ganska snabba med att uppdatera sitt operativsystem eftersom de tjatar varje gång de ansluter telefonen till sin dator. Innan jag tittar på några kompletta iPhone-applikationer med öppen källkod kommer jag att nämna några bibliotek som du kan ha nytta av i dina egna applikationer.

Användbara bibliotek
Att skriva applikationer för iPhone är relativt enkelt, och det svåraste är att vänja sig vid syntaxen i Objective C, som är det språk man väljer. Många av användargränssnittsfunktionerna nås lätt via en samling klasser, men det finns ett par områden som stöds mindre bra samtidigt som de är ganska viktiga för de flesta applikationer, och dessa inkluderar nätverk, databehandling och datalagring.

Många iPhone-applikationer behöver nätverksåtkomst för att hämta innehåll från webbservrar – till exempel XML-flöden av nya artiklar eller HTML för själva artiklarna. De underliggande nätverksbiblioteken stöder asynkrona anrop till nätverksservrar, och det finns även trådbibliotek som gör att en applikation kan utföra olika uppgifter i separata trådar.

ASIHTTPRequest-biblioteket kombinerar båda dessa faciliteter till ett enda lättanvänt paket, som kan användas för att skicka data till och hämta data från webbservrar via ett enkelt asynkront gränssnitt. Den stöder synkron åtkomst, men det kan göra att din ansökan hänger sig tills en begäran slutförs.

Den stöder alla huvudoperationer som krävs på webbservrar: både GET- och POST-förfrågningar; autentisering; småkakor; och kompression. Den har också möjlighet att köa ett antal förfrågningar och uppdatera en förloppsindikator när varje förfrågan fullföljs asynkront. Slutligen kan resultat laddas ner från en webbserver till minnet eller filsystemet.
Det är möjligt att begränsa bandbredden som används av applikationen, vilket är särskilt användbart om iPhone använder låga GPRS-datahastigheter För att se hur allt detta kan användas, överväg en iPhone-applikation för en nyhetstjänst. Du använder ASIHTTPRequest-biblioteket för att hämta nyhetsflödet och sedan för att ladda ner enskilda artiklar vars rubriker är valda. Förfrågningar om att ladda ner de medföljande bilderna kan ställas i kö för att laddas ner senare, och med den aktuella versionen av biblioteket är det möjligt att begränsa bandbredden som används av applikationen, vilket är särskilt användbart om iPhone använder låga GPRS-datahastigheter i motsats till snabba 3G eller Wi-Fi.

När du har laddat ner innehållet måste du bearbeta det, och en särskilt bra uppsättning bibliotek för bearbetning av XML finns i TouchXML, som ingår i det större TouchCode-projektet. Återigen bygger dessa bibliotek på XML-bibliotek på lägre nivå som exponerar XML-strukturerna på ett sätt som är enkelt att bearbeta. Till exempel innehåller ett XML-dokument ofta en repeterande struktur, eftersom till exempel ett RSS-flöde har en artikel för varje nyhetsartikel: TouchXML gör om dessa till arrayer som kan itereras över med en enkel loop.

Efter att ha laddat ner en del innehåll och bearbetat det är det mycket användbart att ha ett sätt att organisera det för framtida referens, men medan iPhone innehåller ett filsystem som kan användas för att lagra platta filer, har den också inbyggt stöd för SQLite-databasen. SQLite är ett inbäddat SQL-databassystem som fungerar med vanliga filer och saknar de komplexa faciliteter som finns i kompletta relationsdatabaser som MySQL eller SQL Server.

Lämna en kommentar

Din e-postadress kommer inte publiceras.