Giter VIP home page Giter VIP logo

apollo-agriculture's Introduction

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

apollo-agriculture's People

Contributors

joelhaasnoot avatar jumaallan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.