Mobila applikationer med Android: Hemtentamen 2019-01-19

Det här är hemtentan som går lördag 19 januari 2019 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. Obs! Blackboard kommer att vara nere under stora delar av lördagen. Den ska komma igång igen klockan 19:30 på kvällen.
  4. Uppgiften ska lösas enskilt, dvs inga grupper av två eller flera studenter.
  5. 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.
  6. Om du behöver fråga något, så kontakta gärna mig. Det är nog bäst att skicka ett SMS, för jag kommer inte att sitta vid datorn hela tiden, och jag kanske inte alltid kan svara i telefon.
  7. Exportera Android Studio-projektet (eller motsvarande) som en Zip-fil (eller motsvarande) och skicka den till läraren. Under menyvalet File kan man välja Export to Zip File.
  8. Skicka också med APK-filen (Androids kompilerade installationsfil). Den finns normalt i underkatalogen app/build/outputs/apk.
  9. Om du inte senast på måndagen fått 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.
  10. 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

Åh nej! Fiket är stängt!

Fiket i T-huset är stängt

Om jag bara vetat om att det var stängt kunde jag gått direkt till Pressbyrån i stället:

Pressbyrån har öppet

Därför ska vi göra en app för att kolla öppettider. Tanken är att en server ska hålla reda på öppettiderna, och appen ska kunna koppla upp sig mot den servern och fråga om en viss butik är öppen. Dessutom ska man kunna använda appen för att meddela servern om butiken är öppen.

Så här skulle appen kunna se ut (om man är lika dålig som jag på att göra en snygg design):

Appen bild 1

Om man vill kontrollera om Pressbyrån är öppen, skriver man in "Pressbyrån" som affärens namn, och klickar på knappen ÄR DEN ÖPPEN?. Appen kopplar upp sig mot servern, frågar servern om Pressbyrån är öppen, och skriver ut svaret den får:

Appen bild 2

Dessutom kan man själv rapportera om ifall affären är öppen eller inte. Man skriver in namnet, och klickar antingen på DEN ÄR ÖPPEN! eller DEN ÄR STÄNGD!. Appen kontaktar servern och meddelar detta, och så får man svaret OK från servern:

Appen bild 3

Protokollet för kommunikationen med servern är enkelt. Man kopplar upp sig mot port 2003, och då väntar servern på ett kommando från klienten.

Konstruera denna app!

Servern kommer att köras på port 2003basen.oru.se, och det är också den som den färdiga appen ska koppla upp sig mot, men man kan också ladda ner servern här för att provköra mot hemma: OpenOrClosedServer.zip

Krav

Tips


Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), 18 januari 2019