Hi there! This is the interview test instruction for Android Developer position at Oozou. Please read the guidance carefully. Best of luck!
- Use Android studio to build the Android application according to the detail described in the application description section.
- Use
git
to track your work history. - Write the unit tests and UI tests where you think it is necessary.
Note
- Please write the code in a way that demonstrates your current set of skills.
- Please use design pattern and libraries that you think are the best.
- You are free to do anything to the project to achieve the application described in the application description section.
This section describes the detail of the application that you will have to build.
This application displays the list of Pokemons. The user can click on each item of the list to see the detail of each pokemon.
This section describes the behavior and detail of each screen. We will discuss about data and api in detail in the next section.
Display paginated list from Pokemon List API(https://pokeapi.co/api/v2/pokemon). When clicking on each item in the list, the Pokemon detail dialog will be shown. Please noted that the URL for fetching pokemon detail will be passed to Pokemon detail dialog from Pokemon List Screen.
This is a dialog for displaying pokemon detail. This dailog show when the item in Pokemon List screen is clicked. There are only 4 field display in this page base_experience
, height
, name
, weight
.
The data in this application is fetch from PokéAPI(https://pokeapi.co) There are only two endpoints called in this application.
https://pokeapi.co/api/v2/pokemon
Paginated list of Pokemon
Sample response
"count":964,
"next":"https://pokeapi.co/api/v2/pokemon?offset=20&limit=20",
"previous":null,
"results":[
{
"name":"bulbasaur",
"url":"https://pokeapi.co/api/v2/pokemon/1/"
},
{
"name":"ivysaur",
"url":"https://pokeapi.co/api/v2/pokemon/2/"
},
{
"name":"venusaur",
"url":"https://pokeapi.co/api/v2/pokemon/3/"
},
{
"name":"charmander",
"url":"https://pokeapi.co/api/v2/pokemon/4/"
},
{
"name":"charmeleon",
"url":"https://pokeapi.co/api/v2/pokemon/5/"
}
]
}
Use url
field from item in results
to get pokemon detail api url.
Please refer to one of the item in results
of response from the pokemon list endpoint.
{
"name":"bulbasaur",
"url":"https://pokeapi.co/api/v2/pokemon/1/"
}
Call https://pokeapi.co/api/v2/pokemon/1/ to get pokemon detail
Sample response: You only need to map these 4 fields to the model: base_experience
, height
, name
, weight
{
"abilities":[...],
"base_experience":64,
"forms":[...],
"game_indices":[...],
"height":7,
"held_items":[...],
"id":1,
"is_default":true,
"location_area_encounters":"https://pokeapi.co/api/v2/pokemon/1/encounters",
"moves":[...],
"name":"bulbasaur",
"order":1,
"species":{...},
"sprites":{...},
"stats":[...],
"types":[...],
"weight":69
}
- The following are the color code using in the project.
<color name="colorPrimary">#F4B400</color>
<color name="colorPrimaryDark">#E19720</color>
<color name="colorAccent">#F62D14</color>
- The layout doesn't have to be the same as the screenshots. You can decide the dimension of the layouts based on your judgment.
Please zip the project and send it to this email pure@oozou.com
Do not upload this project to the version control system such as GitHub, GitLab, or others.