Sunshine is a work-in-progress weather app based on Udacity's course project.
The main purpose of this project is to master clean architecture approaches and testing. It is still in its really EARLY stages of development and currently contains only one piece of UI.
- Kotlin
- Room
- Android Architecture Components
- AndroidX Support Libraries
- Material Components for Android
- RxJava2
- Dagger2
- Glide
- Retrofit
- OkHttp
- Gson
- Timber
- KtLint
- Detekt
- Mockito
- Espresso
- Robolectric
- JDK 1.8
- Android SDK
- Android O (API 26)
- Latest Android SDK Tools and build tools.
The architecture of Sunshine
project follows the principles of Clean Architecture. Here's how the sample project implements it:
The sample app when run will show you a simple list of all the forecasts (check ForecastView
for implementation details).
The diagram below presents how each of the architecture layers play their roles in this project:
This project wouldn't be created if some repositories weren't created before
-
https://github.com/googlesamples/android-architecture (Encyclopedia of architecture patterns and battle-tested techniques on Android)
-
https://github.com/android10/Android-CleanArchitecture (the simplest way to implement clean architecture on Android)
-
https://github.com/bufferapp/android-clean-architecture-boilerplate (this project is based on it)