Göm menyn

Laboration 3 - Kommunicera med github

Syfte

De system vi bygger existera sällan enbart på enheten utan hämtar och lagrar information på externa tjänster. I denna laboration ska du träna på att skapa gränssnitt som bygger på information som du hämtar från github. I den här övningen kommer vi arbete med:

  • Asynkrona nätverksanrop och trådar
  • Jobba med GraphQL eller REST
  • Dynamiskt förändra gränssnittet
  • Multipla skrämvyer
Android med dess olika ramverk ger dig möjligheten att använda flera olika sätt att kommunicera med externa tjänster. I denna laboration ska enbart använda ett av ramverken för att skapa en applikation som kommunicerar med github. Traditionellt så används HTTP+REST med json som databärare, för att kommunicera med externa tjänster. På senare tid har även GraphQL blivit vanligare. GraphQL erbjuder GUI-utvecklare ett sätt att välja vilken data den vill ha ut av olika back-end tjänster (det krävs visst arbete på back-end sidan först). För den här uppgiften har Github gjort arbetet åt dig på back-end:en, men du väljer dock själv om du vill använda GraphQL eller mer traditionell REST.

Uppgift

GitHub har en funktion för att visa vilka projekt och utvecklare som det händer och diskuteras mest kring under en given tidsperiod (Trending). Githubs Tredning rankning är baserat på antal stjärnor givet under en given tidsperiod, med en viss anpassning för att stoppa manipulering utifrån. Den github anpassade Trending informationen finns tillgänglig via GitHubs REST-API men inte via deras GraphQL-tjänst. Om du väljer att använda GraphQL så kan du välja ett bara använda antalet stjärnor (eller annat mått istället så som antal commits, utvecklare, pull-requests eller issues). Du ska skapa en applikation som för ett givet språk hämtar ut de projekt från github som det pratas mest om (Trending se ovan), du får själv välja tidsperiod. Presentera projekten för användaren, om användaren väljer att klicka på ett projekt ska mer detaljerad information kring projektet visas i en ny vy.

Användargränssnitt exempel (du väljer själv hur du vill att din applikation ska se ut)


Redovisning

Demonstrera dina gränssnitt för lab assistenten, assistenten kan be dig förklara delar av koden. Assistenten berättar hur hen vill att du lämnar in din kod.

Länkar

GitHub Developer GrpahQL API
GitHub Developer REST API
A GraphQL Client for Android (Java/Kotlin)
A GraphQL client for React Native
A GraphQL driver for flutter

Sidansvarig: Anders Fröberg
Senast uppdaterad: 2021-11-04