# Lab 2 - 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
- Jobba med REST
- Dynamiskt förändra gränssnittet
- Multipla skrämvyer
Flutter ger dig möjligheten att kommunicera med externa tjänster över nätverk. I denna laboration ska du skapa en applikation som kommunicerar med Github. Ni kommer använda HTTP+REST med json som databärare för att kommunicera med Github. För den här uppgiften har Github gjort arbetet åt dig på back-end:en, så du ska enbart fouksera på klienten.
## 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](https://github.com/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. 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)
![Example](https://www.ida.liu.se/~TDDC73/labs/Lab3_language.png)
![Example](https://www.ida.liu.se/~TDDC73/labs/Lab3.png)
![Example of details](https://www.ida.liu.se/~TDDC73/labs/Lab3_details.png)
## 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 REST API](https://docs.github.com/en/rest?apiVersion=2022-11-28)
- [Flutter Nätverksanrop](https://docs.flutter.dev/cookbook/networking/fetch-data)
Sidansvarig: Eva Blomqvist
Senast uppdaterad: 2024-10-02