Applikationsprogrammering i Java, HT-08 logotype

Uppgift 2 - RSS

Introduktion

RSS, Really Simple Syndication, är ett filformat tänkt att användas för att sammanfatta material som uppdateras ofta för lättare bevakning. Några exempel är nyhetssidor, trådar i forum, buggrapportering, osv.

En RSS-fil består av en kanal. I denna kanalen finns det ett antal poster. Dessa har i sig ett antal underelement.

Ett exempel: http://expressen.se/rss/nyheter

På Expressens RSS-feed finns en kanal(channel). Kanalen har en del attribut, som ex. title, link och description.

Under kanalen finns några poster(item). Även dessa har attribut, ex. title, link och description.

I Expressens fall är channel en kanal med de senaste nyheterna. Varje item är en nyhet. Denna nyhet har sedan tre viktiga fält, nämligen title som innehåller artikelns titel, link som innehåller en länk till hela artikeln, samt description som är en beskrivning av hela artikeln.

Vad är då nyttan med detta?

För det första:

http://expressen.se/ är 120.92 KB stor utan bilder, jämfört med http://expressen.se/rss/nyheter som är 7.5 KB stor. Det innebär att utan RSS måste datorn ladda ner mer data.

För det andra:

Ett öppet format innebär möjlighet till att göra egna applikationer med olika funktioner. En webbsida kan visa de senaste nyheterna, ett program kan spela upp ljud om något händer i världen, ett mail kan skickas med senaste nytt, osv. Allt oberoende av datakälla.

Syfte

Syftet med laborationen är att:

  • Få insikt i hur RSS- och XML-stöd kan implementeras och användas
  • Träna på att skapa egna GUIn
  • Träna på att följa ett givet dataformat
  • Träna på att följa en kodkonvention
  • Öva er färdighet i rapportskrivning

JeedReader

Ni ska skriva ett program som heter JeedReader. Utseendet är till stor del upp till er, men det finns en del krav på programmet.

Utseende:
  • Programmet ska använda menyer
Funktioner:
  • Det ska gå att lägga till flera feeds
  • Ett item är som standard markerad som oläst
  • När ett item markeras ska det visas och markeras som läst
  • Intervallet mellan uppdateringarna ska gå att ställa in
  • Uppdateringarna ska ske automatiskt i bakgrunden
  • Det ska gå att välja mellan vilka av de tillagda feeds som ska visas
  • Vid val av ny feed ska listan med items för denna uppdateras
  • Det ska gå att uppdatera varje feed manuellt
  • Alla inställningar ska sparas mellan körningar
  • Listan med alla feeds ska sparas mellan körningar
Saker ni inte behöver ta hand om:
  • Ni kan utgå från att datan är korrekt (men programmet bör inte kracha helt och hållet om något skulle vara galet)
  • Ni behöver inte visa formateringen i description (inte ta hand om HTML-taggarna)
  • Er version behöver bara klara av version 2.0, men bör säga till vid fel version

Uppgift

Ni ska implementera programmet enligt beskrivningen ovan. Koden ska så klart följa Suns kodkonvention för java och alla exceptions och fel ska hanteras på lämpligt sätt.

Programmet ska byggas i god OO- och MDI-stil.

Rapport och källkod

Laborationen ska redovisas med en rapport som beskriver programmets funktionalitet för användare, och någon som ska vidareutveckla systemet. Det är upp till er att utifrån det ni lärt er om vad som kan behöva beskrivas utforma rapporten så att dessa mål uppnås på bästa sätt.

Källkod - Källkoden ska finnas tillgänglig i er hemkatalog. Bifoga även utskriven källkod. Rekommenderat är att ni skriver ut den ex. med kommandot

a2ps -Ejava -T8 -A fill -2 *.java | lpr

Källkoden ska ligga i katalogen: ~/edu/apjava/lab2/src/

En komplierad version ska ligga i katalogen: ~/edu/apjava/lab2/bin/

Rapporten ska ligga i katalogen: ~/edu/apjava/lab2/report/, samt lämnas in på papper.

Laborationen skall lösas enskilt och vara inlämnad senast måndag 1/12 kl 13:15

Länktips

Om laborationen

Laborationen är påhittad och delvis strukturerad av Dennis Olsson, Emanuel Dohi samt Erik Schlyter. Specifikationen ändrad 2006-11-01 av Johan Westerlund Ändrad av Johan Eliasson 2008-11-05


Senast uppdaterad 2008-12-14 21:43
/kurser/5DV085/HT08/labbar/lab2.html