https://github.com/manununhez/android_open_weather_app
Open Weather App with Android Architecture Components
https://github.com/manununhez/android_open_weather_app
android android-architecture livedata room-persistence-library volley
Last synced: 7 months ago
JSON representation
Open Weather App with Android Architecture Components
- Host: GitHub
- URL: https://github.com/manununhez/android_open_weather_app
- Owner: manununhez
- Created: 2018-08-21T09:44:07.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-08-30T19:36:57.000Z (about 7 years ago)
- Last Synced: 2025-01-26T14:48:45.047Z (9 months ago)
- Topics: android, android-architecture, livedata, room-persistence-library, volley
- Language: Java
- Homepage:
- Size: 6.56 MB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Open Weather App with Android Architecture Components
This app written in Java uses the new [Android Architecture Components](https://developer.android.com/topic/libraries/architecture/)
: Livedata, ViewModel, and Room.Retrieves **current weather** using [OpenWeatherMap current API](https://openweathermap.org/current) free account.
## Introduction### The final architecture
The following diagram shows all the modules in our recommended architecture and how they interact with one another:
### Functionalities
The app is composed of 3 main screens.
#### ShowWeatherFragment
Presents a viewpager with the description of the weather of every city the user had selected.
A job scheduled allows this fragment reflects the current weather data through synchronization with OpenWeatherMap servers every 1 hour.
#### ManageCitiesFragment
This fragment displays all the weathers of the cities the user had selected.
#### AddCityFragment
Allows the user to add a new city of interest to know details of the weather. To add a new city the user has two options:
1) Add his current location
using FusedLocationProvider, making a request to get the current weather by city coordinates;
2) Search by the name of the city of interest, making a request to get the current weather by city name.### Building
You can open the project in Android studio and press run.### Libraries
* [Android Support Library](https://developer.android.com/topic/libraries/support-library/index.html)
* [Android Architecture Components](https://developer.android.com/arch)
* [Android Data Binding](https://developer.android.com/topic/libraries/data-binding/index.html)
* [Volley](https://github.com/google/volley) for REST api communication
* [Firebase JobDispatcher](https://github.com/firebase/firebase-jobdispatcher-android) for scheduling background jobs
* [Gson](https://github.com/google/gson) to convert Java Objects into JSON and back
* [Google play services location](https://developers.google.com/location-context/fused-location-provider/) fused location provider
* [Material ViewPager Dots indicator](https://github.com/tommybuonomo/dotsindicator) for ViewPager animation and design