Skip to content

Instantly share code, notes, and snippets.

@thonydam
Last active August 5, 2021 19:43
Show Gist options
  • Save thonydam/28b97e5e154f353dbca55dc77f40e500 to your computer and use it in GitHub Desktop.
Save thonydam/28b97e5e154f353dbca55dc77f40e500 to your computer and use it in GitHub Desktop.
The Peek iOS Coding Challenge

The Peek iOS Coding Challenge

Goal

Build a small iPhone application that queries Github to get repositories that mention GraphQL. The results are to be displayed in a list view with pagination support. Remember it’s a demo and not a fully featured app! However, we would like to see code that you are proud of and that would you merge into the mainline of your project. Please explain in a README file the choices you made to complete the code challenge and list the things you would have added if you had more time to spend on it.

Services

The application will interface with the Github V4 API

Requirements

Initial launch: fetch the initial set of repos that contain the string graphql Infinite scrolling: Fetch the next set of repository. Error handling Each table cell should contain:

  • The name of the repo
  • The owner login name
  • The owner avatar
  • The number of stars

We are using MVVM at Peek to build iOS apps and we would like you to use it to build this demo app.

Setup

In order to pull data from Github API, please generate an access token.

Libraries

You are allowed to used third party libraries when appropriate. Use your good judgement and please justify the use (when necessary) of any third party library.

Specifications

Language: Swift 5.4 or later Development environment: Xcode 12 or later Target: iOS 13 or later

Submission

When finished, create a public Github repository with your solution. We want your code to represent the best of your abilities. Please also include any documentation or ramblings to help us better understand your submission and the coding choices you made.

Finally, there are plenty of details that are purposefully vague here, because we want to give you leeway to be creative and show us your way of doing things.

Question?

If you have any questions, do not hesitate at all to ask (tony@peek.com).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment