Never confuse education with intelligence, you can have a PhD and still be an idiot.
- Richard Feynman -



Difference between revisions of "Systemintegration-Yrgo-2020"

From Juneday education
Jump to: navigation, search
(Vecka 13, tisdag 24/3 - JDBC, SQLite3, Skiktad arkitektur)
Line 156: Line 156:
 
** Titta igen på Exemplet från SubstituteScheduleServlet:en från tidigare i kursen
 
** Titta igen på Exemplet från SubstituteScheduleServlet:en från tidigare i kursen
  
=Vecka 13, onsdag 25/3 JDBC i skiktad arkitektur, skapa JSON, Skapa XML=
+
=Vecka 13, onsdag 25/3 skiktad arkitektur, JDBC i skiktad arkitektur=
  
 
==Mål för dagen==
 
==Mål för dagen==
Line 162: Line 162:
 
* Servlet reading from DB
 
* Servlet reading from DB
 
* Alla kan använda JDBC från servlet med skiktad arkitektur,
 
* Alla kan använda JDBC från servlet med skiktad arkitektur,
* alla kan skapa JSON med org.json
 
* alla kan skapa XML från Java
 
 
==Tema==
 
==Tema==
 
''Skapa en servlet som använder skiktad arkitektur och jdbc, svarar med HTML, Skapa JSON, Skapa XML från Java''
 
''Skapa en servlet som använder skiktad arkitektur och jdbc, svarar med HTML, Skapa JSON, Skapa XML från Java''
Line 175: Line 173:
 
** Wikisida för workshopen: [[Workshop Lab3 - Servlet with JDBC]]
 
** Wikisida för workshopen: [[Workshop Lab3 - Servlet with JDBC]]
 
*** Part-1 kan vi hoppa över, det är en Hello world-servlet!
 
*** Part-1 kan vi hoppa över, det är en Hello world-servlet!
* Lektion: Creating JSON from Java
 
** Slide: [[:Media:Org.json_-_creating.pdf|Org.json_-_creating.pdf]] - Wiki-page: [[Java-Web:Creating_JSON_from_Java|Creating_JSON_from_Java]]
 
** Source code: [https://github.com/progund/java-web/tree/master/java-json/org.json/creating github.com/progund/java-web/tree/master/java-json/org.json/creating]
 
** Om tid finns: även slide: [[:Media:Small_json_create_example.pdf|Small_json_create_example.pdf]]
 
** [[Java-Web:Exercise_-_Creating_JSON_from_Java|Exercise_-_Creating_JSON_from_Java]] OBS! Fokus på org.json - skit i javax.json.
 
* Lektion: Creating XML from Java:
 
** Slide: [[:Media:Generating_XML_from_Java.pdf|Generating_XML_from_Java.pdf]]
 
** [[Java-Web:Exercises_-_Creating_XML_from_Java|Exercises_-_Creating_XML_from_Java]]
 
  
  
Line 195: Line 185:
 
** [https://vimeo.com/channels/1190785  Java - Generera XML (Swedish)] (fler filmer i en kanal)  
 
** [https://vimeo.com/channels/1190785  Java - Generera XML (Swedish)] (fler filmer i en kanal)  
 
* Repetera filmen [https://vimeo.com/channels/1193540 Servlet serving XML or CSV or JSON] (OBS! Ni kommer använda annan JSON-syntax än i filmen!)
 
* Repetera filmen [https://vimeo.com/channels/1193540 Servlet serving XML or CSV or JSON] (OBS! Ni kommer använda annan JSON-syntax än i filmen!)
 +
 +
 +
=Vecka 14, onsdag 1/4 skapa JSON, Skapa XML=
 +
 +
==Mål för dagen==
 +
* alla kan skapa JSON med org.json
 +
* alla kan skapa XML från Java
 +
 +
==Tema==
 +
* Lektion: Creating JSON from Java
 +
** Slide: [[:Media:Org.json_-_creating.pdf|Org.json_-_creating.pdf]] - Wiki-page: [[Java-Web:Creating_JSON_from_Java|Creating_JSON_from_Java]]
 +
** Source code: [https://github.com/progund/java-web/tree/master/java-json/org.json/creating github.com/progund/java-web/tree/master/java-json/org.json/creating]
 +
** Om tid finns: även slide: [[:Media:Small_json_create_example.pdf|Small_json_create_example.pdf]]
 +
** [[Java-Web:Exercise_-_Creating_JSON_from_Java|Exercise_-_Creating_JSON_from_Java]] OBS! Fokus på org.json - skit i javax.json.
 +
* Lektion: Creating XML from Java:
 +
** Slide: [[:Media:Generating_XML_from_Java.pdf|Generating_XML_from_Java.pdf]]
 +
** [[Java-Web:Exercises_-_Creating_XML_from_Java|Exercises_-_Creating_XML_from_Java]]
 +
 +
==Läxa==
 
* Se till att ni är ikapp med tidigare läxor och övningsuppgifter '''viktigt!'''
 
* Se till att ni är ikapp med tidigare läxor och övningsuppgifter '''viktigt!'''
 
* Se till att ni gjort särskilt alla övningar om "creating JSON" och "creating XML" då ni ska lägga till sådan funktionalitet i er labb i nästa vecka om ni inte hann under dagen!
 
* Se till att ni gjort särskilt alla övningar om "creating JSON" och "creating XML" då ni ska lägga till sådan funktionalitet i er labb i nästa vecka om ni inte hann under dagen!
 
** [[Java-Web:Exercise_-_Creating_JSON_from_Java|Exercise_-_Creating_JSON_from_Java]] OBS! Fokus på org.json - skit i javax.json.
 
** [[Java-Web:Exercise_-_Creating_JSON_from_Java|Exercise_-_Creating_JSON_from_Java]] OBS! Fokus på org.json - skit i javax.json.
 
** [[Java-Web:Exercises_-_Creating_XML_from_Java|Exercises_-_Creating_XML_from_Java]]  
 
** [[Java-Web:Exercises_-_Creating_XML_from_Java|Exercises_-_Creating_XML_from_Java]]  
* Läs kapitlen:
 
** [[Assignment:SubstituteTeacherScheduler|Labbsidan om SubstituteTeacherScheduler]]
 
** Skriv ned frågor om det är något i labbsidan ni inte förstår, så ni är förberedda inför nästa lektion då vi går igenom labben
 
  
=Vecka 14, onsdag 1/4 Labben - Databasen och Servleten=
+
 
 +
=Vecka 14, onsdag 1/4, 13-16 Labben - Databasen och Servleten==
 
==Mål för dagen==
 
==Mål för dagen==
 
* Alla har förstått vad labben går ut på
 
* Alla har förstått vad labben går ut på
 
* Ni ska vara ett steg närmare att ha löst [[Assignment:SubstituteTeacherScheduler|labben]].
 
* Ni ska vara ett steg närmare att ha löst [[Assignment:SubstituteTeacherScheduler|labben]].
  
==Tema==
+
==Tema==
 +
Gör om servleten så den läser data från databasen och skapar XML, svarar med application/xml. Till detta kan vi använda en så kallad Factory.
 +
 
 +
==Tider för dagen==
 
Gör om LABB-servleten så den
 
Gör om LABB-servleten så den
 
* läser data från databasen och
 
* läser data från databasen och
Line 250: Line 260:
 
Se labbsidan för instruktioner för hur ni ska lösa task 1 - 4! Hinner ni inte under dagen, är det läxa att hinna med task 1-4!
 
Se labbsidan för instruktioner för hur ni ska lösa task 1 - 4! Hinner ni inte under dagen, är det läxa att hinna med task 1-4!
  
==Läxa==
 
* Ni ska ha en fungerade Databas-JSON-kedja i er Servlet till nästa gång
 
* Repetera Creating XML (wiki, slide och filmerna från tidigare i schemat)
 
==Om API:et och de anrop/queries som er servlet skall svara på==
 
* Inga parametrar - Alla Assignments skall ges som svar
 
* <code>format</code> - värdet skall kunna vara <code>json</code> eller <code>xml</code> (bara json skall funka än så länge)
 
* <code>day</code> - om endast denna parameter anges, skall alla lärares assignments den dagen listas
 
* <code>substitute_id</code> - om endast denna parameter anges, skall denna vikaries assignments listas
 
* <code>substitute_id</code> i kombination med <code>day</code> - denna vikaries assignment denna dag listas
 
 
=Vecka 14, onsdag 1/4, 13-16=
 
==Mål för dagen==
 
* Alla har stöd för XML och JDBC (databas) i sin labb-servlet
 
* Alla vet vad en Factory är och vad den är till för
 
==Tema==
 
Gör om servleten så den läser data från databasen och skapar XML, svarar med application/xml. Till detta kan vi använda en så kallad Factory.
 
 
==Tider för dagen==
 
 
* Föreläsning  Slide: [[:Media:Choosing output format.pdf|Dynamically choosing output format.pdf]] (OBS: 32 sidor - lång lektion)
 
* Föreläsning  Slide: [[:Media:Choosing output format.pdf|Dynamically choosing output format.pdf]] (OBS: 32 sidor - lång lektion)
 
** Wikisida: [[Java-Web:Using_a_factory_for_creating_XML_or_JSON]]
 
** Wikisida: [[Java-Web:Using_a_factory_for_creating_XML_or_JSON]]
Line 327: Line 319:
  
 
==Läxa==
 
==Läxa==
 +
* Läs kapitlen:
 +
** [[Assignment:SubstituteTeacherScheduler|Labbsidan om SubstituteTeacherScheduler]]
 +
** Skriv ned frågor om det är något i labbsidan ni inte förstår, så ni är förberedda inför nästa lektion då vi går igenom labben
 +
 +
* Ni ska ha en fungerade Databas-JSON-kedja i er Servlet till nästa gång
 +
* Repetera Creating XML (wiki, slide och filmerna från tidigare i schemat)
 +
==Om API:et och de anrop/queries som er servlet skall svara på==
 +
* Inga parametrar - Alla Assignments skall ges som svar
 +
* <code>format</code> - värdet skall kunna vara <code>json</code> eller <code>xml</code> (bara json skall funka än så länge)
 +
* <code>day</code> - om endast denna parameter anges, skall alla lärares assignments den dagen listas
 +
* <code>substitute_id</code> - om endast denna parameter anges, skall denna vikaries assignments listas
 +
* <code>substitute_id</code> i kombination med <code>day</code> - denna vikaries assignment denna dag listas
 
Inför nästa lektion ska ni förbereda er på att "parse:a" (JSON)
 
Inför nästa lektion ska ni förbereda er på att "parse:a" (JSON)
 
Läs:
 
Läs:
Line 335: Line 339:
 
=Vecka 15, onsdag 8/4=
 
=Vecka 15, onsdag 8/4=
 
==Mål för dagen==
 
==Mål för dagen==
 +
* Alla har stöd för XML och JDBC (databas) i sin labb-servlet
 +
* Alla vet vad en Factory är och vad den är till för
 
Alla kan använda org.json för att parsea JSON från ett Java-program
 
Alla kan använda org.json för att parsea JSON från ett Java-program
 
==Tema==
 
==Tema==

Revision as of 15:14, 2 March 2020

Contents

Systemintegration för klassen Java 19, vårterminen 2020

Välkomna till kurssidan för Systemintegration!

Nedan kommer ett schema. Det är viktigt att ni tittar i schemat och förbereder er inför lektionerna.

Kursen har ingen tenta, utan en laboration som skall lämnas in. Ni får lektioner som hjälper er att klara laborationen men detta bygger också på att ni gör "läxor" enligt vad som anges i schemat. Laborationen är ett system med databas och Java-servlet som publicerar JSON och slutligen en Android-app som kopplar upp sig mot er Java-servlet och hämtar JSON. Vi bygger systemet stegvis, så det är viktigt att ni har varje steg klart då stegen bygger vidare på varandra.

I slutet av kursen tar vi fram Android-appen. Det är ingen Android-kurs, utan en workshop/tutorial i två dagar (två tillfällen), så en lärare visar er alla steg för att ta fram appen (men ni skriver själva av det läraren visar).


Vecka 11, tisdag 10/3 - Repetition Interface

Mål för dagen

Alla har fräschat upp interface.

Tema

Repetition Interface

Tider för dagen

Vecka 11 onsdag 11/3 Repetition Exceptions

Mål för dagen

Alla har fräschat upp exceptions.

Tema

Repetition exceptions

Tider för dagen

Vecka 12, tisdag 17/3 - Intro HTTP, Servlets, Response codes

Mål för dagen

  • Alla vet vad HTTP är
  • alla har skapat en enkel servlet i workshopen och anslutit till den via browser etc(lwp-request)
  • Alla vet vad Response codes (200, 404, 500 osv) är
  • Alla har i förväg sett:
  • Om ni vill kan ni utgå från servleten ni skapar i workshopen för er laboration och bygga vidare på den

Tema

  • Vad är HTTP och Servlets

Tider för dagen


Vanliga problem och dessas lösningar

  • Problem att ladda ned winstone med wget (på MacOS) - Se: Bash_FAQ#Certicate_errors_with_wget
  • Verifiera att du fått ned rätt fil: Kör kommandot file och ge JAR-filen som argument. Om file svarar "empty" eller "HTML" så gick det fel. Verifiera att länken till JAR-filen verkligen går till JAR-filen och inte till en HTML-sida med en länk till JAR-filen - korrekt svar från file ska vara winstone.jar: Zip archive data, at least v1.0 to extract
  • Kompilerings fel
    • Class not found javax.http... Du måste ha med JAR-filen i classpath (javac -cp winstone.jar .....)
  • Kör-fel
    • Kontrollera package-deklarationen och verifiera att filen ligger i en katalogstruktur som överensstämmer med paketnamnet (under www/WEB-INF/classes/

Vecka 12, onsdag 18/3 - Introduktion XML, JSON

Mål för dagen

  • Alla vet vad XML/JSON är
  • Alla har en servlet för sin labb som kan servera XML eller JSON (genom att titta på GET-parametrarna)

Tema

XML och JSON - introduktion.

Tider för dagen

Tider är ungefärliga. Räkna med att det tar hela eftermiddagen.

Läxa

  • Jobba med servleten som ni skapade i första workshopen (introduction to servlets) så att den kan svara på format=xml respektive format=json
    • Låt doGet() läsa parametern format och kolla om det är xml eller json. Om det är något annat eller om parametern saknas (getParameter returnerar då null), så ska servleten skriva ett felmeddelande "Format missing" eller "Format not supported"
    • Ni kan hårdkoda en låtsas xml som svar repsektive en låstas JSON som svar och skriva det som response
    • Titta på labb-sidan för ett exempel på hur JSON kan se ut - vi går igenom JSON och XML senare i kursen!
    • Sätt rätt content-type på response: application/xml respektive application/json - titta i exemplet ovan för hur man sätter content-type (Ni kan googla content-type för json, xml och html eller få tips av läraren)
    • Testa att er servlet gör rätt genom att använda en browser - nästa gång kan vi visa hur man testar från bash!
  • Läs på JDBC: Introduction_to_JDBC (inklusive eventuella övningar och filmer) och se filmerna:
  • Läs wiki-sida: Introduction_to_layered_architectures och se filmerna:
  • Läs wiki-sida: Getting started with SQLite och se filmerna:
    • Kom igång med SQLite3 (Swe)
    • Kom igång med SQLite3 Live-kodning (Swe)

Checklista för hur ni ligger till i labben

Efter idag ska ni ha tillräckliga kunskaper för att lösa task 1 och 2 i labben. Se labbsidan för instruktioner:

  • Ni ska ha skapat en förenklad variant av en klass som kan formatera Assignment till JSON genom att ändra lite i en klass från exemplet idag (ändra HtmlFormatter till en JsonFormatter som skapar Json lite hårdkodat) (task 1)
  • Er servlet ska bry sig om GET-parametern format och om värdet är json, så ska doGet() anropa formattern och få lite fusk-JSON tillbaka som skrivs till response. Ni kan göra samma sak för XML om ni vill, skapa en fake-formatter för XML och låta doGet anropa den om format=xml... (task 2)

Denna checklista är för er som vill arbeta med labben redan nu och inte bli stressade i slutet av kursen men det kommer finnas gott om tid att bli klar ändå. Vi rekommenderar dock att ni följer våra checklistor eftersom vi hänvisar till task:ar som handlar om sådant vi precis gått igenom!

Vecka 13, tisdag 24/3 - JDBC, SQLite3

Mål för dagen

  • Alla har i förväg sett filmerna om JDBC mm
  • Alla vet vad JDBC är och kan använda SQLite3 från Java
  • Alla kan skapa databas från dump-fil SQLite3

Tema

  • JDBC

Tider för dagen

Läxa

  • Skapa en enkel databas i SQLite3 och få er servlet att läsa från den och skriva resultat som text eller html
    • Titta igen på Exemplet från SubstituteScheduleServlet:en från tidigare i kursen

Vecka 13, onsdag 25/3 skiktad arkitektur, JDBC i skiktad arkitektur

Mål för dagen

  • Tiered architecture (no JDBC in servlet, use Java interfaces)
  • Servlet reading from DB
  • Alla kan använda JDBC från servlet med skiktad arkitektur,

Tema

Skapa en servlet som använder skiktad arkitektur och jdbc, svarar med HTML, Skapa JSON, Skapa XML från Java

Tider för dagen


Om ni inte hinner klart övningarna - gör dem i läxa och skriv upp eventuella frågor!

Läxa


Vecka 14, onsdag 1/4 skapa JSON, Skapa XML

Mål för dagen

  • alla kan skapa JSON med org.json
  • alla kan skapa XML från Java

Tema

Läxa

  • Se till att ni är ikapp med tidigare läxor och övningsuppgifter viktigt!
  • Se till att ni gjort särskilt alla övningar om "creating JSON" och "creating XML" då ni ska lägga till sådan funktionalitet i er labb i nästa vecka om ni inte hann under dagen!


Vecka 14, onsdag 1/4, 13-16 Labben - Databasen och Servleten=

Mål för dagen

  • Alla har förstått vad labben går ut på
  • Ni ska vara ett steg närmare att ha löst labben.

Tema

Gör om servleten så den läser data från databasen och skapar XML, svarar med application/xml. Till detta kan vi använda en så kallad Factory.

Tider för dagen

Gör om LABB-servleten så den

  • läser data från databasen och
  • skapar JSON (samt svarar med application/json) som content-type

Tider för dagen

OBS! Exemplelt använder en enkel klass Assignment som har tre String: teacher, date, school, men ni ska använda modellen från Creating JSON with org.json-exemplet med flera klasser: Schedule, School och Substitute! Se labbsidan, task 3, för instruktioner!

Om ni har gjort task 1 och 2 i labben, så har ni skrivit den enklare klassen Assignment, precis som i exemplet vi gått igenom. Men nu ska ni alltså ändra till att skriva tre klasser i stället enligt ovan! Detta gör ni i task 3. I task 4 skriver ni metoder för att hämta data från databasen - de fyra metoderna. Se nedan i checklist!

Checklista för hur ni ligger till med labben!

Efter idag, ska ni vara klara med tasks 1-4. Det betyder att ert system nu har:

  • Koll på format-parametern och bryr sig om JSON-formatet
  • Pratar med databasen och kan skapa en lista av Assignment som ni skrivit om (refactored)
    • En Assignment i nya versionen innehåller en Substitute-referens, en String med datum och en School-referens
  • Databasklassen Assignments är ansvarig för fyra metoder:
    • all() - returnerar en List<Assignment> med alla Assignment för alla lärare
    • forTeacher() - returnerar en List<Assignment> med alla Assignment för en viss lärare
    • at() - returnerar en List<Assignment> med alla Assignment för alla lärare, ett visst datum
    • forTeacherAt() - returnerar en List<Assignment> med alla Assignment för en viss lärare, ett visst datum

Se labbsidan för instruktioner för hur ni ska lösa task 1 - 4! Hinner ni inte under dagen, är det läxa att hinna med task 1-4!

Tips för er Servlet i labben

Om ni tycker det är för krångligt att göra som i föreläsningen, är det helt OK om er Factory är lite "dummare" och har en switch - case eller till och med IF-sats i factoryn och "hårdkodar" vilken klass som skall returneras. Pseudo-kod:

// format factory...
public static Formatter getFormatter(String format) {
  // if format is "xml" 
  //   return new XmlFormatter()
  // else if format is "json"
  //   return new JsonFormatter()
  // end if
}

Men om ni vill använda dynamisk laddning, så är det också cool. Ni kan initialisera laddningen från servletens init()-metod och ni kan läsa från web.xml där (web.xml kan ha element som sätter namn på klasserna för XmlFormatter och JsonFormatter. Se denna servlet för ett liknande exempel:

// init() i servleten läser värde från web.xml första gången servleten körs och sätter värdet i System.properties:

  @Override
  public void init() throws ServletException {
    System.setProperty("ProductLine", getServletContext().getInitParameter("ProductLine"));
  }

I web.xml för servleten exemplet kommer från står följande:

  <context-param>
    <param-name>ProductLine</param-name>
    <param-value>Fake</param-value>
    <!-- <param-value>DB</param-value> -->
  </context-param>
  <servlet>
    <servlet-name>api</servlet-name>
    <servlet-class>servlets.SystemetWebAPI</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>api</servlet-name>
    <url-pattern>/search/*</url-pattern>
  </servlet-mapping>

Så en servlet kan läsa en "context-param" från web.xml och lagra i system.properties. Factoryn kan sedan läsa med System.getProperty("namn-på-property")

Men det är lite överkurs och som sagt är en if-sats eller switch-case helt OK!

Checklista för hur ni ligger till med labben

Ni borde nu kunna börja med

Läxa

  • Ni ska ha en fungerade Databas-JSON-kedja i er Servlet till nästa gång
  • Repetera Creating XML (wiki, slide och filmerna från tidigare i schemat)

Om API:et och de anrop/queries som er servlet skall svara på

  • Inga parametrar - Alla Assignments skall ges som svar
  • format - värdet skall kunna vara json eller xml (bara json skall funka än så länge)
  • day - om endast denna parameter anges, skall alla lärares assignments den dagen listas
  • substitute_id - om endast denna parameter anges, skall denna vikaries assignments listas
  • substitute_id i kombination med day - denna vikaries assignment denna dag listas

Inför nästa lektion ska ni förbereda er på att "parse:a" (JSON) Läs:

Se filmerna, särskilt de om org.json-versionen av parsning:

Vecka 15, onsdag 8/4

Mål för dagen

  • Alla har stöd för XML och JDBC (databas) i sin labb-servlet
  • Alla vet vad en Factory är och vad den är till för

Alla kan använda org.json för att parsea JSON från ett Java-program

Tema

Att från Java konsumera JSON (parse JSON to Java-objects)

Tider för dagen

Övrigt material

Om tid finns, här är en föreläsning om parsning med enbart org.json:

Källkod:

Org.json JAR-file:

Läxa

Vecka 15, onsdag 8/4 , 13-16 - Fetching JSON from Java

Mål för dagen

Alla har skrivit en klient som pratar med deras servlet

Tema

Skapa kommandorads- (text-based)Java-applikation som konsumerar JSON över HTTP

Tider för dagen

Checklista för labben

Den klient ni skriver idag ska hämta JSON från er labb-servlet. Det gör att ni kan testa och felsöka er labb med hjälp av det ni skriver idag. Ni får också förståelse för vad er labb-servlet är till för, dvs att erbjuda ett sätt att hämta ut viss data och skicka det i JSON.

Om någon vecka så ska vi göra samma sak med XML, dvs skriva en klient som hämtar XML från er servlet. När den är klar, så kan ni verifiera att er Servlet fungerar som den ska.

En annan fördel med att ni skriver applikationen idag som hämtar JSON, är att ni ska med Henrik i slutet av kursen skriva en Android-app som gör samma sak - pratar med er Servlet och hämtar data som JSON. Detta blir alltså en bra förberedelse för Android-workshoparna.

Läxa

  • Om ni inte han klart att skriva en egen applikation som pratar med er labb-serlvet, så blir det läxa att skriva en sådan till nästa vecka

Nästa vecka ska vi lära oss att "parsea" XML, så läs:

Se följande filmer (särskilt filmerna om att parsea XML i Java):

Vecka 16, onsdag 15/4

Mål för dagen

Tema

Tider för dagen

Läxa

Skriv en lista på saker ni behöver repetition på eller hjälp med för att klara labben. Nästa vecka kör vi repetition och handledning eller eventuellt om ni har något önskemål på annat.

Vecka 16, onsdag 15/4, 13-16

Mål för dagen

Alla har skrivit en kommandoradsapplikation som hämtar XML från labb-serlveten och skriver ut schemainformation på Standard Out.

Alla har installerat Android Studio inför nästa vecka.

Tema

Vi skriver en applikation som hämtar XML från er labbservlet och presenterar informationen som text på standard out.

De som är klara i tid kan förbereda nästa vecka genom att installera Android Studio.

Tider för dagen

installera Android Studio och kolla att det fungerar inför nästa vecka

Tips om ni väljer Web-Frontend:SubstituteTeacherScheduler

Lägg HTML-filen i er Servlets webroot-katalog och besök sidan i er browser på http://localhost:8080 - annars är risken stor att er browser klagar på cross-site-scripting och säkerhetsproblem. En webbsida som kommer från samma server som JSON-anropet ligger på anses däremot säkert.

Läxa

  • Alla ska ha installerat och testat att Android Studio fungerar till nästa vecka då Henrik kommer och kör lite Android

Vecka 17, onsdag 22/4

The coming two sessions we will be focusing on the workshop: Substitute Teacher Scheduler Android.

Förberedelser

Installera Android Studio. Nu!!!!

We're going to use the following Design Patterns in this workshop. To be prepared get familiar with them by reading the linked pages:

The following (non newbie) concepts will be used, so get prepared by reading the pages below:

The following pages are a good read to get prepared:

The following Android pages are a good read to get prepared:

Mål för dagen

  • förstått grunderna i Android
  • skrivit en första app

Tema

Introduktion till Android

Tider för dagen

  • 13:00 Android basics, Looking at the server's data using various clients
  • 14:00 Design the UI of the app, faking server data, present the faked data
  • 15:00 -""-

Läxa

Vecka 21, onsdag 22/5

Förberedelser

Mål för dagen

  • Lägga till kod för att häma data över nätverk
  • Tolka JSON

Tema

  • Ha förstått och använt nätverksprogrammering i Android med hjälp av Volley

Tider för dagen

  • 13:00 Fetch assignments for real
  • 14:00 -""-
  • 15:00 -""-

Läxa

Läxa: "Skicka in er kod: Servlet med JDBC som svarar med XML eller JSON Klient (kommandoradsbaserad) som läser XML och en som läser JSON (eller samma som kan båda) Dokumentation över projektet" Planera in tid för rättning!

2019 iteration of this course