Skip to content

hbpratyusha/MobiquityCodeChallenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Mobiquity - Code Challenge

The goal of this assignment is to evaluate the problem solving skills, UX judgement and code quality of the candidate.

Weather, everybody wants to know how it is going to be during the week. Will it be rainy, windy, or sunny? Luckily for us, in the information age, there are open APIs to retrieve information about it.

For this assignment you will be using the API from: ​http://openweathermap.org/api​. The API key is provided at the end of the statement, or you can request your own by registering on the website for free.

Your app should at least contain the following screens:

● Home screen:

○ Showing a list of locations that the user has bookmarked previously.

○ Show a way to remove locations from the list

○ Add locations by placing a pin on the map.

● City screen: once the user clicks on a bookmarked city this screen will appear. On this screen the user should be able to see:

○ Today’s forecast, including: temperature, humidity, rain chances and wind information

● Help screen: The help screen should be done using a webview, and contain information of how to use the app, gestures available if any, etc.

The following bonus points can be implemented:

● Settings page: where the user can select some preferences like: unit system (metric/imperial), any other user setting you consider relevant, e.g. reset cities bookmarked.

● On the city screen: show the 5-days forecast, including: temperature, humidity, rain chances and wind information.

● On the home screen, implement a list of known locations with search capabilities. How navigation occurs, or how elements are placed on the screen is open for interpretation and creativity. 
 Additionally, the following requirements have to be met:

● Alpha/beta versions of the IDE are forbidden, you must work with the stable version of the IDE

● The API has to be consumed in JSON format

● The UI has to be responsive (landscape and portrait orientations, and tablet resolutions must be supported) ● The code has to be published on Private GitHub or Private Bitbucket Repo. We want to see the progress evolution (Having Private Repo is mandatory)

● For Android:

○ Programming language should be Kotlin.

○ The coordinator layout must be used at least in one of the screens.

○ UI has to be implemented using single activity with multiple fragments.

○ Should be compatible with Android 5.0+ and should also support the latest Android OS version as well. ○ Code should be unit testable, Added advantage if code is unit tested using Junit, Mockito, Power Mockito. ○ Candidates should be able to explain the architecture pattern used and it's explanation of choosing it. ○ Use of the Android Jetpack component will be an added advantage.

● For iOS:

○ Programming language should be Swift version 5.0+

○ UICollectionView or UIStackView must be used at least in one of the screens

○ Compatible with iOS 13.0+

○ Unit tests must be present, and written using the XCTest framework. ○ Don’t use any cocoapods, carthage or any third party libraries. ○ Please use the latest architecture patterns like MVVM, VIPER, VIP, Clean Swift etc. Please Don’t use MVC



 



API information:

API Key: fae7190d7e6433ec3a45285ffcf55c86

Today’s forecast: Information: ​http://openweathermap.org/current

Example of use:

http://api.openweathermap.org/data/2.5/weather?lat=0&lon=0&appid=fae7190d7e6433ec3a45285ffcf55c86

5-days forecast: Information: ​http://openweathermap.org/forecast5

Example of use: http://api.openweathermap.org/data/2.5/forecast?lat=0&lon=0&appid=fae7190d7e6433ec3a45285ffcf55c86&units=metric

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors