Android weather app using Hilt, Coroutines, Retrofit, Jetpack (Compose, Room, ViewModel) based on MVVM architecture

Overview

Atmostate

A weather app written with Jetpack Compose using OpenWeatherMap

Get it on Google Play

Get the APK


Features

  • offline caching
  • fetching data for current user location
  • follows Google's recommended MVVM architecure

Screenshots

Building

Add the following line to local.properties:

OWM_API_KEY=XXX

where XXX is your OpenWeatherMap API key.

License

GNU GPLv3 Image

Atmostate - Copyright (C) 2021 Ramzan Sheikh

This program is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The icons used in this app are either derived or taken from the following:

Free for commercial use:

Used under the MIT License:

Used under CC BY 3.0:

You might also like...
A demo app using Jetpack Compose and Hilt based on modern Android tech stacks

Rick & Morty APP RickAndMorty is a small demo application based on modern Androi

ToDo-Task-App - An Android App built to demonstrate the use of Jetpack Compose, Material You, Room Database, and MVVM

ToDo Task App ToDo Task App is a sample Android app built with Jetpack Compose.

A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose
A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose

Authentication A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose Scree

A Simple Blog App using Jetpack Compose, Flow, Navigation Compose, Room and Firebase
A Simple Blog App using Jetpack Compose, Flow, Navigation Compose, Room and Firebase

BlogCompose A Simple Blog App using Jetpack Compose, Flow, Navigation Compose, Room and Firebase Instructions Download your Firebase configuration fil

Android -MVVM-Jetpack Compose-Kotlin Flows-Dagger Hilt-Retrofilt2-Coil
Android -MVVM-Jetpack Compose-Kotlin Flows-Dagger Hilt-Retrofilt2-Coil

android-mvvm-jetpack-compose-kotlin-flows Android -MVVM-Jetpack Compose-Kotlin Flows-Dagger Hilt-Retrofilt2-Coil A sample project that presents a mode

Kotlin, MVVM, Navigation Component, Hilt, Jetpack Compose, Retrofit2

What is this project? This course will replace my old java mvvm introduction: https://codingwithmitch.com/courses/rest-api-mvvm-retrofit2/. Watch the

Weather Forecast App with Jetpack Compose

Weather Forecast App Features: GetCurrentLocation for weather forecast 16 days of forecast any city you can search current weather details of any city

Clouddy - Weather App Built with Jetpack Compose
Clouddy - Weather App Built with Jetpack Compose

Clouddy - Weather App Daily Weather Forecast App built with Jetpack Compose View

Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle events. ViewModel, UI and Screenshot tests included :)
Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle events. ViewModel, UI and Screenshot tests included :)

AndroidMVIExample Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle e

Comments
  • Potential improvements on CitySelectViewModel?

    Potential improvements on CitySelectViewModel?

    https://github.com/ramzan/Atmostate/blob/21daa5760799256f0a706c6462a690f7fcc54509/app/src/main/java/ca/ramzan/atmostate/ui/city_select/CitySelectViewModel.kt#L34-L40

    Two coroutines are launched in this case, by having a launch inside a launch. Wouldn't this be equivalent? If not, what am I missing, I would love to know.

    init { 
        viewModelScope.launch { 
            withContext(Dispatchers.IO) {
                _countries.value = repo.getAllCountries()
            } 
        } 
    } 
    

    And with that said, since we're dealing with a StateFlow here and not a SharedFlow, the interface of MutableStateFlow gives us access to public override var value: T. This means we can do this

    _countries.value = repo.getAllCountries()
    

    instead of this

    _countries.emit(repo.getAllCountries())
    

    wouldn't that be preferable?

    opened by StylianosGakis 1
Releases(v1.0.0)
Owner
Ramzan Sheikh
Ramzan Sheikh
Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Yogi Dewansyah 13 Aug 31, 2022
Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cached data by Room

Mobile Banking Android App made by Jetpack Compose Components with Kotlin, MVVM Pattern, Multi Module, Navigation, Hilt, Coroutines, Retrofit and cach

Yogi Dewansyah 13 Aug 31, 2022
A sample project in Kotlin to demonstrate Jetpack Compose, MVVM, Coroutines, Hilt, Room, Coil, Retrofit, Moshi, Leak Canary and Repository pattern

Jetpack-Compose-Boilerplate This repository contains a sample project in Kotlin to demonstrate Jetpack Compose, MVVM, Coroutines, Hilt, Room, Coil, Re

Areg Petrosyan 14 Dec 12, 2022
Android Sample Kotlin+ MVI + Jetpack compose + Coroutines + Retrofit + Hilt + Room + Navigation component

MVIComposeSample Android Sample app to show user latest movies implementing MVI + Clean Architecture using kotlin & Jetpack compose following solid an

Ahmed Atwa 10 Dec 28, 2022
Flux is a dynamic weather that communicates the weather throughout a landscape whose details vary according to the time and the weather at that particular time.

Flux ?? Description Flux is a dynamic weather that communicates the weather throughout a landscape whose details vary according to the time and the we

null 415 Jan 4, 2023
Kotlin-MVVM-RxJava-Hilt-Retrofit-Room

IMovie IMovie is a is a sample project that presents a modern approach to Android application development. The goal of the project is to combine popul

Reza Mahmoudi 6 Dec 12, 2022
Navigation-Compose - A sample to showcase Kotlin, MVVM, Hilt, Coroutines, StateFlow, Jetpack compose

Navigation-Compose A sample to showcase Kotlin, MVVM, Hilt, Coroutines, StateFlo

Mohammadali Rezaei 6 Jul 13, 2022
Simple app to consumer api movies with retrofit and save result in database with room using android jetpack

MoviesCompose Simple app to consumer api movies with retrofit and save result in database with room using android jetpack Instruccions Log Up in https

Ricardo Pajaro Coatl 3 Oct 10, 2022
A Weather Mobile or Android Native App, in Kotlin built to see the current weather of suggested countries of Europe and in my current position. In this case, Maputo/Mozambique #WitChallenge #Asked #Option1

Witweather_android This is a challenge assigned by Wit, which aimed to build an Android App to visualize the temperature in my current location, in th

Kelton M. Cumbe 1 Nov 22, 2021
🎞 A demo movie app using Jetpack Compose and Hilt based on modern Android tech stacks.

MovieCompose is a small demo application based on modern Android tech-stacks especially focus on Jetpack Compose UI using The Movie DB API.

Jaewoong Eum 399 Jan 3, 2023