Skip to content

isaiahcat/AndroidWeather

Repository files navigation

Android Weather: Sample App

Overview

Application shows weather information from OpenWeatherMap

This application has 3 screens

  1. Splash
  • Shows logo for 2 seconds
  • Different splash screen for dev and production
  1. WeatherList (Using Fragment for List portion)
  • List of weather information from London, Prague, and San Francisco
  • Card shows location, weather description, and average temperature
  • Shows shared element transition going to WeatherDetail upon clicking card
  • AnimatedVectorDrawable refresh button on Action Bar starts spinning onClick and stops when refresh is finished
  • Option to add current location to list of information, asks for Location permission onClick
  1. WeatherDetail
  • Detailed weather information for selected location
  • Shows weather icon, weather description, average temperature, temperature range, etc.
  • AnimatedVectorDrawable refresh button on Action Bar starts spinning onClick and stops when refresh is finished
  • Shows shared element transition when pressing back button to go back to WeatherList

Additional Notes

  • Application versionName is 3.3 with versionCode 3333
  • Offline mode using SharedPrefrences and Gson library
  • Third-party libraries listed below
  • Used Git and GitHub for version control
  • Analytics with Fabric.io Crashlytics
  • With some unit testing based on MVP boilerplate
  • Supports both tablet and phone
  • Has three build variants (production, dev, appTest)

Architecture and Boilerplate reference:

Mindorks MVP Boilerplate: https://github.com/MindorksOpenSource/android-mvp-architecture

Library reference resources:

  1. RxJava2: https://github.com/amitshekhariitbhu/RxJava2-Android-Samples
  2. Dagger2: https://github.com/MindorksOpenSource/android-dagger2-example
  3. Gson: https://github.com/google/gson
  4. FastAndroidNetworking: https://github.com/amitshekhariitbhu/Fast-Android-Networking
  5. PlaceHolderView: https://github.com/janishar/PlaceHolderView
  6. Calligraphy: https://github.com/chrisjenx/Calligraphy
  7. ButterKnife: http://jakewharton.github.io/butterknife/
  8. Fabric.io: https://fabric.io/kits/android/crashlytics
  9. Google Play Location: https://github.com/googlesamples/android-play-location
  10. Glide: https://github.com/bumptech/glide
  11. Timber: https://github.com/JakeWharton/timber