Göm menyn

Laboratory experiment 3 - Communicating with GitHub


The systems we build rarely exists exclusively on the device without retrieving and storing information on external services. In this laboration you practise to create interfaces based on information you download from GitHub. In this exercise we will work with:

  • Asynchronous network calls and threads
  • Work with Graphql or residue
  • Dynamically alter the interface
  • Multiple screen views
Android with its various framework gives you the opportunity to use several different ways to communicate with external services.In this laboratory work should only use one of the framework for creating an application that communicates with GitHub.Traditionally, HTTP + REST is used togheter with JSON as a data carrier, to communicate with external services.Recently, Graphql has also become more common. Graphql offers GUI developers a way to choose which data it wants out of different back-end services (some work on the back-end first). For this task, GitHub has done the work for you on the back-end, but you choose yourself if you want to use Graphql or more traditional REST.


GitHub has a feature to show which projects and developers that are most activly discussed during a given time period ( Trending ). Github's Trending ranking is based on the number of stars given during a given period of time, with a certain adaptation to stop manipulation from outside. The GitHub custom trending information is available through GitHubs Rest-API but not via their GraphQL service. If you choose to use GraphQL, you can choose a just used number of stars (or other factors instead such as the number of Commits, Developers, Pull-Requests or Issues). You should create an application that for a given language collects the projects from GitHub that are Trending for a time period of your choosing. Present the projects for the user, if the user chooses to click on a project, more detailed information about the project will appear in a new view.

User interface example (you choose how you want your application to look)

Presenting your work

Demonstrate your interface for the lab assistant, the assistant may ask you to explain parts of the code.The assistant tells you how they want you to submit your code.


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