This app is built using kotlin, depending on MVVM design pattern.
** This app includes layout for portrait and Landscape screens specially when screen width is bigger than 600dp.
- lifecycle libraries for viewmodel, livedata, and savedstate.
- Retrofit2.
- OkHttp for logging interceptor purpose.
- gson library for parsing JSON format.
- Picasso and Glide are used for displaying images.
- App support data binding.
- MainActivity.kt displaying weather data.
- There are 2 layouts, portrait and landscape to support devices with screen sizes +600dp.
- AppBarFragment.kt
- SearchViewFragment.kt
- WeatherViewModel.kt and WeatherViewModelFactory.kt files.
- WeatherRepository.kt
- There are 3 Interface files: OnArrowPressed, OnSearchPressed, and OnSearchResultSelected.
- There are 9 files considered as data classes inside the model package.
- RetrofitServiceInterface exists to help communicate to our webservice.
- Util file help to utilize some resources in the device.
- xml files: provides support for both portrait and landscape orientations.
- fragment_search.xml is enhnaced and developed for appearing on both portrait and landscape with different behaviors.