Skip to content

The Weather logger application used to can log and save your current Weather data based on location.

Notifications You must be signed in to change notification settings

naveedahmad99/WeatherLogger

Repository files navigation

Weather Logger

The Weather logger application used to can log and save your current Weather data based on your location.

The Following screen shoots for app

Screen


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:

MVVM architecture

Support libraries: appcompat / recyclerview / constraintlayout

Square Retrofit / Okhttp / Logging-Interceptor

A fast dependency injector for Android Kotlin Koin

RxAndroid Reactive Extensions for Android

Room DataBase used to do local storage in the appliction

Unit test using .

Ui Testing using Espresso

Android Home Widget

Mockito

Hamcrest

Clean Architecture

https://fernandocejas.com/2018/05/07/architecting-android-reloaded/

----------------------------------------------------------------------------------------------

Android 3 Layers Architecture

https://fernandocejas.com/2018/05/07/architecting-android-reloaded/

----------------------------------------------------------------------------------------------

UI Layer: MVVM

https://fernandocejas.com/2018/05/07/architecting-android-reloaded/

----------------------------------------------------------------------------------------------

Data Layer: Repository

https://fernandocejas.com/2018/05/07/architecting-android-reloaded/

----------------------------------------------------------------------------------------------

Local Development

Here are some useful Gradle/adb commands for executing this example:

  • ./gradlew deployDebug - Builds and install the debug apk on the current connected device.
  • ./gradlew runUnitTests - Execute all unit tests (both unit and integration).

Discussions

Refer to the issues section: https://github.com/android10/Android-CleanArchitecture-Kotlin/issues

Code style

Here you can download and install the java codestyle. https://github.com/android10/java-code-styles

License

Copyright 2020 

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

The Weather logger application used to can log and save your current Weather data based on location.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages