The app is fully written in Kotlin programming language and contains 2 main screens:
- Screen with list of current weather for several cities.
- Screen that shows weather for chosen city for 10 days.
Second screen opens by clicking on some city from the first screen. Data is taken from OpenWeather API.
Technologies and libs utilized:
- ViewModel class for saving data during Activity Lifecycle events, such as screen rotations.
- Retrofit2 + Okhttp3 for sending and processing queries. RxJava3 makes it asynchronically.
- Network logic is delegated to separate repository in order to make the code clean. Custom Kotlin extension are also used for processing data.
- ConstraintLayout, CardView, RecyclerView, RelativeLayout, LinearLayout...etc are used in .XML markup.
Clone the repository and install weather.apk in order to launch the app. You can also download the .apk by this link.