Weather Android

Example how to use dagger2
Alternatives To Weather Android
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
2 years ago1mitKotlin
5 Day Forecast app that works on Android and uses latest tools (Kotlin, Navigation, Room, LiveData, Databinding, Dagger 2)
Open Source Android Weather App81
2 years ago6mitJava
☔️ Open source android weather app. See "Issues" tab for current tasks queue. Tasks suitable for beginners are labeled with green "beginner friendly" tags.
Just Weather65
6 years ago1Java
Real world sample of code architecture MVP with RxJava2, Dagger2, Retrofit2 and Realm. Offline first approach.
Weather Android21
8 years agoJava
Example how to use dagger2
4 years ago1mitKotlin
:cloud: 一个基于Jetpack构建的MVVM天气预报APP。你值得拥有的MVVM快速开发框架:
4 years agoKotlin
Android App trying to apply TDD and using MVVM, Kotlin Coroutines
Weather Guru Mvp15
6 years agomitJava
Sample Material-design Android weather application build with MVP architectural approach using Dagger2, RxJava2, Retrofit2, Event-Bus, GreenDao, Butterknife, Lottie etc.
Android Forecast15
9 months agoKotlin
forecast mvp dagger2 retrofit
Weather App Android Mvvm Dagger7
a year agomitKotlin
2 years agomitKotlin
This App was built to practice on MVP architecture, RxJava and Retrofit.
Alternatives To Weather Android
Select To Compare

Alternative Project Comparisons

What is this repository for?

  • This is weather android app which uses as data provider
  • v1.0.0

How do I get set up?

  • ./gradlew clean build
  • and don't forget to setup your sdk.dir (via or direct specification)

Design concepts

The whole design of my app is based on Dependency Injections and EventBus concepts. I wanted to split all classes out from each other onto independent components.

Interaction with weather web-service is based on fetching forecast by latitude and longitude. I use shared preferences as a cache for forecast responses and update this cache in two cases:

  1. user refreshed the list manually by pull-to-refresh action on the list of data
  2. time of response is expired (it's 24 hours) and in the next scrolling action - application will try to fetch new data for this location


I used a lot of 3rd libraries and the main reason why I did it, just to speed up development process.

  • rxjava - don't like to hassle with AsyncTask
  • retrofit - quick bootstrap of any http webservice stub
  • ormlite - quick bootstrap for database
  • otto - eventbus
  • dagger2 - DI
  • - Staggered GridView for weather dashboard
  • timber - very customizable logger for android

Which design patterns I used

DI, EventBus, Observer, Builder

Applications consists of two screens:

  1. main screen with weather dashboard
  2. settings activity where the user can specify Temperature Units (Celcius or Fahrenheit)
  3. and Debug activity to show how to override eventbus

Small clarification: To refresh weathers list - just pull down (I used SwipeRefreshLayout from support library)


To run & debug unit-tests in IDE you need to use Android Studio 1.4

Popular Dagger2 Projects
Popular Weather Projects
Popular Libraries Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Dependency Injection
Event Bus