Accenture Latvia Android Task
The Weather logger application used to can log and save your current Weather data based on your location.
Description: Create an Android application to save weather conditions for your current location.
Main functionality:
The weather information should be retrieved from Weather API website select > CurrentWeatherData API. By default service returns a lot of data, but it’s mandatory to save and display only temperature. Usage of other data is optional but creativity is welcome here.
After ‘Save’ is pressed the application should retrieve the weather data from the API, store it locally together with the date of the event (request time) and then display it on screen.
Display the data in a list or graphical chart.
Data model is completely up to you, feel free to use custom frameworks and libraries
what might help you with application development. For Weather API service usage you need to register in the portal and receive an APP KEY. Use it in network requests to fetch data.
Non-functional requirements:
● Compatibility with Android 4.1 and onwards
● Code quality, readability and consistent code style
● Best UI practices (Material design)
● Local data storage
● Unit test (JUnit/Robolectric)
Optional Requirements:
Completion of Optional requirements will grant additional bonus points
● UI layout optimized for both Phone and Tablets screens
● Implement ‘More details’ screen (with ability to view more detailed information about weather data returned from API)
● Fetching and processing weather data for more locations
● Refresh the weather data periodically
● Ability to access application weather data from 3rd party apps via shared content provider or other solutions
● Custom animations, transitions between screens
● Create Widget for Home Screen
● All CRUD operations
● UI tests using Espresso
● Use Kotlin instead of Java for MainActivity
Architecture & Libraries & Dependencies used to do that task:
MVP architecture
Support libraries: appcompat / recyclerview / constraintlayout
Square Retrofit / Okhttp / Logging-Interceptor
A fast dependency injector for Android Dagger2
RxAndroid Reactive Extensions for Android
Room DataBase used to do local storage in the appliction
Lottie-Android: Render After Effects animations natively on Android
ButterKnife: Bind Android views and callbacks to fields and methods.
Unit test using .
Ui Testing using Espresso
google play services location to get current location
The Following screen shoots for app