Skip to content

iOS Mobile coding challenge [email protected] #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
Compiled source

###################
*.com
*.class
*.dll
*.exe
*.o
*.so

Packages

############

it's better to unpack these files and commit the raw source

git has its own built in compression methods

*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

Logs and databases

######################
*.log
*.sql
*.sqlite

OS generated files

######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
xcschememanagement.plist

### Xcode Patch ###
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
!*.xcodeproj/xcshareddata/
!*.xcworkspace/contents.xcworkspacedata
/*.gcno
*.xcuserstate
project.xcworkspace/
xcuserdata/

## Build generated
build/
DerivedData/
UserInterfaceState.xcuserstate
/mobile-coding-challenge.xcodeproj/project.xcworkspace/xcuserdata/Talha.xcuserdatad/UserInterfaceState.xcuserstate

# Carthage

Carthage/Checkouts
Carthage/Build

# Fastlane Generated Reports

fastlane/test_output/report.html

# Ruby Mine Workspace

features/.idea/workspace.xml

6 changes: 6 additions & 0 deletions Cartfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#networking
github "Alamofire/Alamofire"
github "Alamofire/AlamofireImage" ~> 3.5

#json mapping
github "bignerdranch/Freddy" ~> 3.0
3 changes: 3 additions & 0 deletions Cartfile.resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
github "Alamofire/Alamofire" "4.8.2"
github "Alamofire/AlamofireImage" "3.5.2"
github "bignerdranch/Freddy" "3.0.3"
53 changes: 8 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,16 @@
# Mobile Coding Challenge

## Idea of the App
The task is to implement a small app that will list the most starred Github repos that were created in the last 30 days.
You'll be fetching the sorted JSON data directly from the Github API (Github API explained down below).
In Order to Run the Project

## Features
* As a User I should be able to list the most starred Github repos that were created in the last 30 days.
* As a User I should see the results as a list. One repository per row.
* As a User I should be able to see for each repo/row the following details :
* Repository name
* Repository description
* Numbers of stars for the repo.
* Username and avatar of the owner.
* [BONUS] As a User I should be able to keep scrolling and new results should appear (pagination).
1. Install Carthage via [Homebrew][]
```bash
$ brew update
$ brew install carthage

## Things to keep in mind 🚨
* Features are less important than code quality. Put more focus on code quality and less on speed and number of features implemented.
* Your code will be evaluated based on: code structure, programming best practices, legibility (and not number of features implemented or speed).
* The git commit history (and git commit messages) will be also evaluated.
* Do not forget to include few details about the project in the README (e.g explain choice of libraries, how to run it ...)
2. Run `carthage update --platform iOS --no-use-binaries`.

## How to get the data from Github
To get the most starred Github repos created in the last 30 days (relative to 2017-11-22), you'll need to call the following endpoint :

`https://api.github.com/search/repositories?q=created:>2017-10-22&sort=stars&order=desc`

The JSON data from Github will be paginated (you'll receive around 100 repos per JSON page).

To get the 2nd page, you add `&page=2` to the end of your API request :

`https://api.github.com/search/repositories?q=created:>2017-10-22&sort=stars&order=desc&page=2`

To get the 3rd page, you add `&page=3` ... etc

You can read more about the Github API over [here](https://developer.github.com/v3/search/#search-repositories
).

## Mockups
![alt text](https://raw.githubusercontent.com/hiddenfounders/mobile-coding-challenge/master/mockup.png)

Here's what each element represents :

![alt text](https://raw.githubusercontent.com/hiddenfounders/mobile-coding-challenge/master/row-explained.png)


## Technologies to use
Choose whatever mobile platform you're most familiar with.

* For iOS, feel free to use Swift or Objective-C.
* For Android, feel free to use Kotlin or Java.
## Technology used

* iOS, Swift.

Loading