MyWeather
App displays real-time weather updates for user's location and for other locations set by user. App uses MVVM with Repository pattern, dagger dependency injection, NetworkBoundResource, Navigation component, App widget, Alarm manager, and other Android JetPack components (Room, Viewmodel, Livedata)
Install / Use
/learn @Ezike/MyWeatherREADME
MyWeather
App shows real-time weather updates for your location and any custom location you set. Weather forecast data is gotten from Apixu Api
Final project for Udacity Nanodegree
<h4 align="center"> <img src="https://res.cloudinary.com/diixxqjcx/image/upload/v1554216525/Nexus_5x-Screenshot1.png" vspace="5" align= "center" width=275 >Features
- Local persistence using Room database
- MVVM architecture
- Material design
- Databinding for binding data to views
- Navigation component
- App uses
NetworkBoundResourcefor data operations - Homescreen Widget that shows weather information
- Dependency injection with Dagger 2
- Crash reporting with Firebase Crashlytics
- Displays test ads
Installing
Follow these steps if you want to get a local copy of the project.
Prerequisites
- Android Studio IDE 3.0+
- Android SDK v28
- Android Build Tools v28.0.3
- Gradle 4.10.1
1. Clone or fork the repository (Master Branch) by running the command below
on your git terminal
git clone https://github.com/Ezike/MyWeather.git
2. Import the project in AndroidStudio, and add API Key
- In Android Studio, go to File -> New -> Import project
- Follow the dialog for set up instructions
- Get your api key from Apixu website
- Create a local
gradle.propertiesfile and store the api key there
ApiXuKey="Your API Key here"
Libraries
- AndroidX
- Navigation component
- Retrofit 2
- LiveData
- ViewModel
- Room
- Glide
- DataBinding
- Dagger2
- Firebase Crashlytics
- Timber
- WeatherIconView
- Moshi
- ThreeTenABP
- OkHttp3
- Google Admob
Author
Ezike Tobenna
License
This project is licensed under the Apache License 2.0 - See: http://www.apache.org/licenses/LICENSE-2.0.txt
