PlanRadar Android developer assessment
this app utilize the open weather map API http://openweathermap.org/API to show current weather for the added cities
This project needs Android Studio 4.0.0 or above with Android Gradle plugin 7.0+
It's recommended to open it using Android Studio Artic Fox.
To add a new city to the cities list press on add city button and write the city name then press the "enter" key on the softkeyboard.
Clean architecture based on MVVM (Model-View-ViewModel) The following diagram shows all the layers and how each layer interact with each other. This architecture using a layered software architecture.
- Kotlin - official programming language for Android development.
- Coroutines - for asynchronous or non-blocking programming.
- Android Architecture Components - Part of Jetpack it's a set of libraries that help you design robust, testable, and maintainable apps.
- LiveData - an observable data holder class.
- ViewModel - store and manage UI-related data in a lifecycle conscious way.
- Room - persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
- Navigation - Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app.
- Dagger2 - Dependency Injection Framework.
- Retrofit - A type-safe HTTP client for Android.
- Gson A Java serialization/deserialization library to convert Java Objects into JSON and back.
- sdp - size unit scales with the screen size.
- Material Design are interactive building blocks for creating a friendly user interface.
- Glide An image loading and caching library.
- Timber A logger API.