This application is an Android counterpart for our Ukraine Weather Map Website. The website lets you see a weather forecast for the next five days in Ukraine as well as the weather for the last five days. Considering that Android users usually prefer mobile apps rather than web services, we developed a mobile client, Ukraine Weather Map for Android, that uses the same backend as the website.

This application was created with the new architecture components recommended by Google on Google I/O 2018. For high performance and graceful UI we used Android Jetpack being a collection of Android software components such as AndroidX, Lifecycles, LiveData, Room, ViewModel, WorkManager, Preferences and much more.

Our backend service collects weather data from external services. It uses the main (OpenWeatherMap) or the alternate (Weather Underground) weather data providers depending on their health. The application retrieves information via REST API using the most popular third party libraries such as Retrofit, OkHttp and Gson.

The Android application stores weather forecast data in a local SQLite database using Room for more comfortable usage experience. Even if user loses internet access, they can review the weather information stored in advance.

After installing the application, you need to give a permission to access the device location. Next you will see a welcome screen and then will be redirected to the main screen. The interface language is chosen automatically based on the system settings of the device.

The application supports Light and Dark theme. User can choose one in the settings.

Main Screen (Day) Main Screen (Night)

Our Android app uses MapFragment to show weather in different cities. The map screen supports both Roadmap and Satellite modes.

Map Screen(Map) Map Screen(Satellite)

On the settings screen, you can choose whether to use the current location or a fixed city. One can select the preferred measuring units for temperature, wind speed and pressure. Also, one can switch between 12-hour and 24-hour time notations.

Settings Screen (Day) Settings Screen (Dialog)

The application is provided with a widget that can be pinned to your home screen. Once you tap the widget, the app main screen is opened.


Languages: Kotlin


“Beware of bugs in the above code; I have only proved it correct, not tried it.”

Donald E. Knuth