Giter VIP home page Giter VIP logo

weather2's Introduction

Weather2

This Android application fetches weather prediction data using the 2-day API at http://www.myweather2.com. By default, the app displays a forecast for the 97206 postal code, shown in metric units. There are two tabs which bring the user to either the current weather page or the 2-day future forecast.

The minimum SDK version is 11 and it was built with Android Studio 1.0.1. (I don't have 1.0.2 installed, but it should work with 1.0.2 tools).

Some Notable Features

  • Multi-screen layouts using multiple resource qualifications such as layout "land" and "w600dp".
  • A settings page in which users can change the postal code and units of measurement (metric or imperial).
  • No new service calls are required when changing units of measurement.
  • Error handling for network issues (no mobile data coverage, broken proxies) and for server errors (unrecognized postal codes).
  • Saved instance state to keep track of the current page, even with the "Don't keep activities" developer option.
  • Positive and negative unit tests (not enough, but some).
  • Service calls are throttled to once every thirty minutes, and only when the app is in the foreground.
  • Postman REST tool configuration to test the weather2 service, posted here: https://www.getpostman.com/collections/51ac37efb2a8856622fa.

Next Steps

This effort was intentionally time-boxed at two days. As such, there was not time for everything. The next steps I would take on this application if I were to continue development are:

  • Custom tabs and animations. Tabs currently are implemented with the support action bar. This works and was quick, but a custom control with press-state effects and an animating underbar would look better.
  • Better unit test coverage. There is one test for a full success and one test for an utter failure, but there are middle cases that could use attention. The service could return data that is well formed JSON but missing key elements of data. I have coded some defense, and I have observed this to work in the cases where wind speed is sometimes unavailable. But I have not seen a natural example of required data which is missing. And automated test would help here.
  • Test hooks for decreasing the half-hour service timeout would help test this feature.
  • This needs testing on a wider sample of intended OS versions and targeted devices. I have access to 4.3+ Genymotion emulators and 4.4+ devices, so my testing has not been complete.

weather2's People

Contributors

btdrucke avatar

Watchers

 avatar James Cloos 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.