Apollo Agriculture Android Take Home Assignment

Writing Apollo Agriculture App using Android Architecture Components, in 100% Kotlin, using Android Jetpack Components, and in Compose
🚀

Requirements

  • Add a second screen to the app with weather data for the current location. Use the following initial wireframe we’ve made:

  • The output from our weather API looks like this:

{
 "today": {
 "lowTemp": 23.36,
 "highTemp": 24.66,
 "icon": "CLEAR_DAY",
 "description": "clear sky"
 },
 "tomorrow": {
 "lowTemp": 23.63,
 "highTemp": 24.9,
 "icon": "SCATTERED_CLOUDS_DAY",
 "description": "scattered clouds"
 },
 "dayAfterTomorrow": {
 "lowTemp": 22.73,
 "highTemp": 25.14,
 "icon": "BROKEN_OVERCAST_CLOUDS_DAY",
 "description": "broken clouds"
 }
}

Feel free to use however you think best in the app, it’s also available at https://apollo-web-public.s3.eu-west-1.amazonaws.com/eng/android-takehomeassignment/weather.json so feel free to add an API client.

  • Documentation for the API is available in API.md in this folder.
  • Use any libraries for Android that you want, but we will need to be able to build your code to evaluate it.

A few hiccups

I noticed the previews are not rendering since I am injecting the viewmodel in the composables. I need to research and find a way to fix the previews. Found the issue here

I am not able to test the Room setup too, so I will ignore the implementation on the app. The reason is, I am using JUnit5 and Roboelectric doesn’t support it.

Prerequisites – Unit Tests

Spek

This allows us to easily define specifications in a clear, understandable, human-readable way. This framework allows you to describe tests and expected behaviors in a more readable way.

To run tests in Android Studio you need to install Spek Framework plugin (search for Spek Framework).

The UI test run normally, either on a device or an emulator, without any special plugin or dependency.

How it’s built

Screenshots

I added some screenshots in the screenshots folder, in the root directory of the project. Added some GIFs to also show end to end test on the app

Light Dark GIF

GitHub

https://github.com/jumaallan/apollo-agriculture