GithubHelp home page GithubHelp logo

one2sky's Introduction

Logo

One2Sky

⛅ A simple Android app for weather forecasts ⛅
GitHub release License: GPLv3

Description

One2Sky is a simple Android weather & forecasts app made in Compose that uses wttr.in API.

Features

  • Current weather information and forecast
  • View the weather from the location derived from your IP or from your saved locations
  • Search and save the locations you want and mark it as favorite to show it every time you open the app

Architecture overview

This project follows Clean Architecture and is separated into three main layers: presentation, domain and data. To truly achieve this separation, a multi-module approach was used. This way, the data layer and the presentation layer are not visible to each other, and each one only depends on the domain layer, like shown in this diagram:

Source: Mario Sanoguera at Medium

And, of course, this project also follows the MVVM architectural pattern and the SOLID principles when applicable.

Technical details

  • 100% Kotlin, with Coroutines, Flow, and more!
  • Jetpack Compose 🚀
  • Modern MVVM architecture
  • Material 3 & Material You dynamic theming
  • Multi-module project following the Clean Architecture principles
  • Retrofit for API requests
  • Room & Jetpack DataStore for data persistence
  • Dependency injection with Hilt
  • Testing with JUnit 4, MockK & Turbine
  • Use of test fixtures for testing data

Screenshots

Download

Get it on GitHub

Credits

  • Original weather icon by Freepik, modified by me

one2sky's People

Contributors

javdc avatar

Stargazers

 avatar  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.