Giter Club home page Giter Club logo

weatherapp2's Introduction

Weather Application

An android Weather Application that uses android MVVM clean architecture using Kotlin

How to enable the API https://api.openweathermap.org/ to your application

  • Since we cannot expose the api token to our github repo, I implemented a apikey.properties file which will hold the api key and this copy is only available to your local machine.
  • Create a file from the root project named apikey.properties
  • After creating apikey.properties, please put variable and value of your openweathermap api and name the variable this OPEN_WEATHER_API_KEY = """
  • Clean project and build. If you encounter compilation error, it means that you didn't created the property file or variable name is incorrect.
  • How did I load the property file can be seen in app/build.gradle
  • You can access the api key by accessing BuildConfig.OPEN_WEATHER_API_KEY

Check screenshot

Features:

  • Tab for current weather
  • Tab for weather history fetched
  • Unit test

Technologies Used:

  • SOLID Principle (Clean architecture: Domain-Data-Presentation layer)
  • Kotlin as programming language
  • MVVM Architecure (Model-View-ViewModel)
  • Coroutines: for async task
  • Retrofit: HTTP Client request

Jetpack Components:

  • Room: a database for storing history of weather.
  • Compose pager: for Horizontal pager of tab
  • Jetpack compose: a declarative way of writing UI instead of XML.
  • Dagger Hilt: a dependency injection library
  • Koil: a library for image loader

Unit test:

  • JUnit 4
  • Mockk: a library for mocking and stubbing data to your unit test

Example Screen:

weatherapp2's People

Contributors

clarosmarkjoseph avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.