Mobila applikationer med Android: Hemtentamen 2017-12-02

Det här är hemtentan som går lördag 2 december 2017 i kursen Mobila applikationer med Android. Ansvarig lärare är Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), telefon 070-73 47 013.

Instruktioner

  1. Skriv och provkör programmet som beskrivs i uppgiften, och skicka sen in det färdiga programmet till mig (thomas.padron-mccarthy@oru.se) inom 24 timmar, dvs senast klockan 08:00 på söndagen.
  2. Obs! Det har varit mycket problem med mailen på sistone. Om du inte vet att det fungerar att skicka arkivbilagor från ditt e-postkonto, kan det vara bättre att skicka in bilagan via Blackboard eller någon lagringstjänst som Google Drive. Skicka ett kort vanligt e-brev också och berätta var svaret finns.
  3. Uppgiften ska lösas enskilt, dvs inga grupper av två eller flera studenter.
  4. Du får använda dator, böcker och vilka andra hjälpmedel som helst, men du får inte samarbeta eller fråga någon (utom mig). Exempelvis är det tillåtet att söka och läsa på webbplatser som Stack Overflow, men inte att ställa egna frågor.
  5. Om du behöver fråga något, så kontakta gärna mig. Det är nog bäst att ringa eller SMS:a, för jag kommer kanske inte att sitta vid datorn.
  6. Packa ihop hela katalogen med applikationen i en Zip-fil, och skicka den som en bilaga. (Även rar- och tar-filer fungerar.) APK-filen (Androids kompilerade installationsfil) ska vara med.
  7. Om du inte senast under måndagen får e-post från mig med en bekräftelse på att du skickat in uppgiften, bör du kontakta mig, enklast genom att ringa eller SMS:a mig (ifall det är e-posten som inte fungerar). Tänk på att en del mailtjänster (särskilt Hotmail.com, Outlook.com, Live.com) ibland kastar bort brev med bilagor, utan att meddela det.
  8. Godkänt resultat på den här hemtentan ger betyget G på teoridelen av kursen. För att få hela kursen godkänd krävs dessutom godkända inlämningsuppgifter.

Uppgiften

Carl Larsson: Julaftonen

Bilden ovan föreställer Carl Larssons akvarell "Julaftonen" från 1904, och den visar ett julbord. Wikipedia skriver att ett julbord är en buffé med julmat, som serveras företrädesvis i Sverige och Finland kring jul. Julbordet har sina rötter i vikingarnas midvinterblot, och även om många av rätterna (som julskinkan!) tillkommit under 1900-talet, så tror man att en del av rätterna (som dopp i grytan) har funnits med ända sen vikingatiden.

Många restauranger serverar julbord under veckorna före jul, och många företag och andra organisationer brukar bjuda sina anställda och medlemmar på de julborden. Är man med i flera organisationer, till exempel idrottsklubbar, finns chansen att man blir bjuden på flera olika julbord. Det kan till och med bli en sorts tävling om hur många julbord man varit på: "Hur många julbord är du uppe i? Jaså, fyra. Det här är mitt sjunde."

Nu ska vi göra en Android-app för att hålla reda på julborden, så vi kan utse en vinnare i tävlingen om antal julbord. På basen.oru.se finns en server som lyssnar med en socket på port 2003, och appen ska koppla upp sig mot den. Man ska skriva in sitt namn, intyga att man varit på ett julbord, och som svar från servern får man en topplista, som då ska visas av appen.

Det som ska skickas till servern är bara en rad med namnet. Servern hållar reda på hur många julbord som ätits av olika personer (identifierade med namnen), och svarar med en topplista med de tre ledande julbordsätarna. Om appen till exempel skickar den här raden till servern:

Julius K. Orvarsson
kanske servern svarar med:
1. Johannes T. Jockeberg: 5
2. Sven Svensson: 3
3. Anna Andersson: 1
(Om det var Julius K. Orvarssons första julbord, så han nu har antalet 1, och det finns flera som har samma antal, är det inte säkert att han kommer med på topplistan.)

Om Julius äter ett julbord till, så appen än en gång skickar hans namn till servern:

Julius K. Orvarsson
kanske servern nu svarar med:
1. Johannes T. Jockeberg: 5
2. Sven Svensson: 3
3. Julius K. Orvarsson: 2
Julius har kommit med på topplistan, men Johannes drar ifrån!

Här finns servern, som ett Eclipse-projekt skrivet i Java, så man kan ladda ner den och köra den på sin egen dator: Julbordsservern.zip

Provkör gärna mot en egen server, men den inskickade lösningen ska koppla upp sig mot basen.oru.se.

Så här skulle appen kunna se ut:

Appen

Krav


Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), 2 december 2017