GithubHelp home page GithubHelp logo

mayokunadeniyi / instant-weather Goto Github PK

View Code? Open in Web Editor NEW
752.0 752.0 162.0 1.92 MB

An Android weather application implemented using the MVVM pattern, Retrofit2, Dagger Hilt, LiveData, ViewModel, Coroutines, Room, Navigation Components, Data Binding and some other libraries from the Android Jetpack.

License: MIT License

Kotlin 99.48% Ruby 0.52%
algolia-instantsearch coroutines-android dagger-hilt databinding dependency-injection livedata material-design mvvm-pattern navigation-architecture-component paging-library retrofit2 room-persistence-library timber

instant-weather's People

Contributors

abhishekjagushte avatar dependabot[bot] avatar georgcantor avatar haydar-android avatar mayokunadeniyi avatar murattuzel avatar shantanu1k avatar steve1rm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

instant-weather's Issues

fade through pattern for transitions between destinations

Hi, @mayokunthefirst I have PR suggestion to add this pattern between Tapping destinations in a bottom navigation bar. In addition, I will provide a screen recording before and after the usage of this pattern inside the app. If it's okay, please assign me for this issue.

Filtered list not showing after changing date

Hi,
I'm learning how mvvm structure works so I forked this repository and tested it.
Just one thing that I think it could be better is, the recyclerView in ForecastFragment doesn't show any items after I did the following steps:

  • Show today's forecast list
  • Scroll to the end
  • Select another date from calendar

It's not a critical issue because the items shown again after I refreshed the list, but still wanted the filtered list to be displayed immediately after filtering.

I think the index of current position after scrolling went out of bound of the filtered list’s length might be the reason, but failed to fix it.
If you have any idea for how to optimize this please contact me.

Could not clone, Hilt Error

Hey, I just cloned the latest project from the main branch but couldn't run it. As soon as the Gradle sync ends, the following error pops up. I tried many things but couldn't get it up and running.

Can you please help me with it?

ERROR MESSAGE: The Hilt Android Gradle plugin is applied but no com.google.dagger:hilt-android dependency was found.\

I am running it on MacBook M1

Weather temperature preference

This project only allows for the use of °C (celcius) unit of temperature. A feature to allow users select their preferred unit either °C or °F would be way better.

  • Implement feature to toggle between °C and °F

com.mayokunadeniyi.instantweather, PID: 2897java.lang.NullPointerException at com.mayokunadeniyi.instantweather.data.source.local

class WeatherLocalDataSourceImpl
is thrown a null pointer exception

so returning an empty DBWeather if it's null fixing the issue

override suspend fun getWeather(): DBWeather? = withContext(ioDispatcher) {
if (weatherDao.getWeather() == null) {
return@withContext DBWeather(
cityId = 0,
cityName = "None",
wind = Wind(
speed = 0.0,
deg = 0
),
networkWeatherDescription = listOf(),
networkWeatherCondition = NetworkWeatherCondition(
temp = 0.0,
pressure = 0.0,
humidity = 0.0
)
)
} else {
return@withContext weatherDao.getWeather()
}
}

share Weather information

I have a PR suggestion to make an icon in the toolbar of the home screen to share weather information across apps using sharesheet. If it's okay, please assign me for this issue.@mayokunthefirst
Thanks in advance.

Test Coverage

Write more unit and integration tests

TODO:

  • Write Unit Tests
  • Write Integration Tests

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.