Applikationsutveckling med ios 1DV448 Laborationshandledning Laboration 02 Författare John Häggerud Termin S12 Kurskod 1DV448 John Häggerud, 2012 1 (5)
Inledning I denna andra laboration är det tänkt att du ska skriva en enkel Twitter-klient. Inte för att världen behöver fler twitter-klienter utan för att det blir en bra övning där flera vanliga moment inom utveckling för ios kommer testas på. Twitter är ju som de flesta av er säkert redan vet en så kallad microbloggstjänst där användare kan twittra korta meddelanden till sin omvärld. Mer information på http://twitter.com Twitter har också ett publikt webb-api som det är tänkt vi ska använda. Vi ska nämligen skriva en klient som söker efter tweets med av användaren inskrivna sökord. Målet med laborationen är att dels ska du fördjupa dina kunskaper och bygga på din erfarenhet kring utvecklingen av appar samt att du ska bekanta dig med följande delar: Hur man laddar in data via publika webbtjänster i sin applikation Hur man arbetar med UITableView Hur man arbetar med en TabBarController Hur man arbetar med olika typer av UIViews Hur man arbetar med någon form av Data Storage (textfil, SQLite 3 eller Core Data) Om applikationen Applikationen har flera olika delar som ska implementeras. När applikationen startar presenteras användaren av en startskärm med en sökruta och en tom tabell. När användaren skriver sin sökfras och trycker på sökknappen ska ett uppslag mot Twitters webb-api göras. När resultatet kommer tillbaka ska det presenteras liknande skärmdumpen (användarens profilbild ej nödvändig för godkänd-nivån) nedan i en UITableView. Sökfrågan till Twitter kan du hitta information om på adressen: http://search.twitter.com/api/. Där finns också information om i vilket dataformat resultatet kommer tillbaka. Ett exempel som söker på frasen kalmar och som vill ha xml-format (ATOM) tillbaka kan se ut som såhär: http://search.twitter.com/search.atom?q=kalmar Testa och skriv in URL:en i en webbläsare så ser du vad du får tillbaka.
Skärmdump av en utförd sökning där tweets presenteras i en TableView När du väljer en rad/en tweet ska en detaljvy presenteras om just detta tweetet där informationen presenteras tydligare för användaren enligt skärmdumpen nedan. Här ska det också finnas en knapp där man kan spara tweeten som en favorit. Detaljvy som visas efter att man valt en speciell tweet.
I TabBar-kontrollen kan du välja mellan att söka och att titta på dina favoriter som du på lämpligt sätt sparat ner. Väljer du att titta på favoriter kommer en ny UITableView presenteras där dessa läses in från din datakälla på liknande vis som vid sökresultaten: Här kan du också välja en speciell tweet och få fram liknande detaljvy som för sökresultaten. Dock ska du ha möjlighet att i denna detaljvy ta bort tweetet från dina favoriter. För mer information om hur applikationen fungerar se den medföljande demonstrationsfilmen där jag visar mitt exempel. Krav för godkänt på laborationen Din applikation ska fungera utan några programkrasher Din applikation ska inte ha några minnesläckor Din applikation ska ha liknande funktioner som mitt exempel. Du är naturligtvis fri att implementera funktionera på eget sätt d.v.s. att det inte behöver se precis likadant ut så länge som det finns samma funktioner. Du ska kunna söka efter tweets via en sökruta Sökresultatet ska presenteras med dels meddelandet, namnet på den som skrivit tweetet. Du ska kunna spara dina favorit-tweets. Dessa ska sparas över applikationens session så att du får upp dem även om du startar om applikationen. Här får du helt välja sätt som du vill göra detta. Du behöver inte spara mer information om tweeten mer än meddelande, namnet på den som skrev.
Du väljer själv i vilket format du vill ta emot data från twitter och parsa den i din applikation. Det är OK att använda tredjeparts-bibliotek till detta om du vill. Extrafunktioner som kan implementeras för eventuellt högre betyg Sökresultatet ska presenteras med dels meddelandet, namnet på den som skrivit tweetet och denne användares profilbild (se skärmdumpar). Utöka applikationen med någon egen funktion som du tycker höjer applikationen och svårighetsnivån på utvecklingen. Tips för de som behöver Vill du använda StoryBoard är du fri att göra det. Det är dock inget krav. Kolla upp klassen UIActivityIndicatorView för att tala om för användaren att applikationen arbetar. För sökrutan används med fördel en UISearchBar, studera dokumentationen. NSNotification kan lösa vissa problem med kommunikation mellan klasser. Det kan underlätta att skapa en klass Tweet som definierar informationen som ska sparas om en tweet och sedan arbeta med objekt av denna klass när du sparar och läser ur din data storage. Sist men inte minst: Använd dokumentationen flitigt! Frågor Ytterligare frågor sker enligt informationen på kurshemsidan