Coder Social home page Coder Social logo

sunnysideapp's Introduction

Project Bio

This project serves as a sandbox for exploring various Android development concepts. It's a collection of code snippets, methods, classes, and packages that can be reused and adapted for future projects.

Cover Story

This project is built as a Weather App that demonstrates the use of the layered architecture while experimenting with data access and processing techniques. The app retrieves temperature data from multiple sources and calculates the average to provide a more comprehensive picture of the current conditions.

ToDo list

  • Migrate to Koin DI
  • Convert project into Kotlin Multiplatform (Android + iOS)
  • Share logic between platforms
  • Cover UseCases with unit tests (1/3)
  • Implement native iOS app UI
  • Implement navigation between screens for Android and iOS
  • Add preference screen to configure weather sources (for android and iOS)
  • Add offline support

Project Structure

I'm gonna try to use following hierarchy as a project structure template.

- app
- data
  - repository // data access logic, interacts with remote/local sources
  - service
    - local
      - location
        - LocationService.class
        - FusedLocationService.class
      - database
    - remote
      - openmeteo
        - request // optional
        - response // optional
        - OpenMeteoRemoteService.class
        - OpenMeteoHttpRemoteService.class
- domain
  - usecase
  - model
- presentation
  - navigation
  - composable
  - screens
    - feature1
      - Feature1ViewModel.class
      - Feature1Screen.class
  - widgets
  - theme
- utils
- di
- service  // services directly tied to app functionality
  - MyBackgroundService.kt

Setup

Before building the project, obtain your API keys and save it in the apikeys.properties file using the following template.

# https://home.openweathermap.org/api_keys  
openweathermap.apikey=API_KEY_HERE

# https://www.weatherbit.io/account/dashboard
weatherbit.apikey=API_KEY_HERE

# https://www.meteosource.com/client
meteosource.apikey=API_KEY_HERE

sunnysideapp's People

Contributors

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