GithubHelp home page GithubHelp logo

ardovic / open-source-android-weather-app Goto Github PK

View Code? Open in Web Editor NEW
102.0 13.0 76.0 28.5 MB

☔️ Open source android weather app. See "Issues" tab for current tasks queue. Tasks suitable for beginners are labeled with green "beginner friendly" tags.

Home Page: https://www.ardovic.com

License: MIT License

Java 100.00%
android open-source java beginner-friendly rxjava2 retrofit2 dagger2 sqlite butterknife starter-project

open-source-android-weather-app's Introduction

banner

Open Source Android Weather Application

Beginner friendly open source android application. The main mission of this project is to provide android enthusiast with a platform where they can advance their skills in most popular libraries and design concepts. You may wonder - why we chose a weather app? The answer is simple - it turns out that weather application can cover just about every topic of modern android development.

Future design of Google Play page

(Note: We don't have an app on Google Play yet, this is just a representative picture for your liking..)

If you are looking for an entry-level open source project to contribute to, you came just to the right place! If you never contributed before on GitHub, you might find useful this simple algorithm:

Step 1: Check the "Issues" tab for currently active tasks and pick what suits you best

Step 2: Fork your own copy of this project

Step 3: Clone your forked repository to your computer (not required if you make changes on GitHub)

Step 4: Write your code / add files / make changes

Step 5: Commit and push changes to your fork (not required if you make changes on GitHub)

Step 6: Make a pull request (from your fork to main project) and wait for approval

Feel free to submit a new issue if you find a new bug or you have any suggestion for improvement

Write your task related questions or comments under that specific tasks issue thread

Contributing:

If you're new to open-source, we recommend you to checkout our Contributing Guidelines and Setup Guidelines. Feel free to fork the project and send us a pull request.

FAQ:

Q - I found a bug and I can't (or don’t want to) fix it, how can I add it to the issues list?

A - Check the issues list and see if it already has that bug. If not, submit a new issue with the "bug" label

Q - I found a bug and I want to fix it, is it ok if I just do that and make a pull request?

A - No, it's not ok. Before attempting to do any work it is highly recommended that you check with the current issues list. It might happen, that there is already a similar issue, and even someone already working on it (assigned to it).

Q - There is no issue for the bug that I found and want to fix, what should I do?

A - It is recommended that you submit a new issue, get that issue assigned on you, and then work on it. Just write a comment under the corresponding issue s.a. "..I would like to work on this issue.." However, if the amount of expected work is relatively small (< 1 day), you can simply fix the bug and make a pull request right away.

Q - I want to work on an issue, can I work on it right away?

A - It's recommended that you leave a comment below that issue, and ask the community to assign it to you.

Support:

If you wish to participate, but unsure where to start, feel free to email PO (Serj Ardovic) to [email protected] or message on https://www.facebook.com/ardovic.

open-source-android-weather-app's People

Contributors

aditya3901 avatar ardovic avatar debpedrano avatar djamelali avatar gouri-panda avatar h20190024 avatar jaspreetsidhu3 avatar kapilajayant avatar leila94 avatar loydjayme25 avatar mendezand avatar nsvrohit avatar paanwalaahuja91 avatar polurival avatar santoshhiremani avatar sreelekhab77 avatar unnatii-dev avatar vadimgaltsev avatar yskwon1231 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

open-source-android-weather-app's Issues

Logo Design Proposal

Greetings Project Owner,

I am a graphics designer who contributes on any Open Source projects. I saw your project that is really helpful in the community, I am interested in making a NEW LOGO because the current logo is not properly constructed and it would be an honor to enhance it.

I am asking your permission to do it.

Regards,

Deb

Unable to run the code in default branch

Describe your issue here.
Master branch codes does not run

Steps to reproduce

Clone the default branch of repository. Open it in Android Studio, create an emulator for Pixel 4 (Android 11) and run the code

Expected behavior

The code must have successfully executed, and the emulator must have started the app

Actual behavior

I forked and cloned the master branch. When I try to run the app, I get the following error,

Execution failed for task ':app:processDebugGoogleServices'.
> File google-services.json is missing. The Google Services Plugin cannot function without it. 
   Searched Location: 
  /home/ram/my_codes/github_repos/Open-Source-Android-Weather-App/app/src/debug/google-services.json
  /home/ram/my_codes/github_repos/Open-Source-Android-Weather-App/app/src/google-services.json
  /home/ram/my_codes/github_repos/Open-Source-Android-Weather-App/app/src/Debug/google-services.json
  /home/ram/my_codes/github_repos/Open-Source-Android-Weather-App/app/google-services.json

Would you like to work on the issue?

I'm new to android development, and I'm happy to help, but I might not be able to fix the bug.

Adding important guideline documents

Hi,
May I contribute some interesting documentation for this project, like setup documentation, code of conduct, code contribution and Bug reports guidelines.

Refactor current situation to MVP architecture

Currently, the code is in terrible shape in terms of architecture, everything is mixed up and with every commit it becomes harder and harder to analyse, especially for a newcomer.

Hence, It has been decided that current code (until it gets massive) should be restructured in accordance with MVP (Model-View-Presenter) pattern.

I have forked a good example of MVP implementation, a project from GDG Moscow 2018 StudyJam - https://github.com/ardovic/CurrencyRates, use it as a reference.

Migrating to CursorLoader & LoaderManager for AutoCompleteTextView with SQLiteDatabase

We have an AutoCompleteTextView, which shows dropdown list of suggestions taken from a SQLiteDatabase query. At the moment it uses SimpleCursorAdapter, however there are several problems with it (I have a separate question about the issue here: SimpleCursorAdapter issue - "java.lang.IllegalStateException: trying to requery an already closed cursor").

Nevertheless, I was advised to look in the direction of CursorLoader and LoaderManager, and I've tried it, yet couldn't make it work. I'd be grateful if someone would guide/recommend/show the right way of migrating my code below to CursorLoader/LoaderManager concept. Any kind of help very appreciated!

About us in Navigation Menu Crash (If not connected to Internet)

Navigation Menu About us Crash (If not connected to network)

Steps to reproduce

  • Turn off your internet
  • Click on About us in Navigation view
  • Gets a crash

Expected behaviour

  • If an application not connected to internet, do not start async task and show a toast stating no internet connection

Actual behaviour

  • App crashes

Would you like to work on the issue?

Yes

Create Landscape Variation

Description

Allow only portrait mode in phones, landscape and portrait mode
in tablets.

Steps to reproduce

Create all the layouts required in landscape mode, and test in the code to see if you have to accept the change of screen orientation or not (depending on the screen dimensions).

Expected behavior

  • Allow only portrait mode in phones, landscape and portrait mode
    in tablets. (force portrait mode for phones, portrait and landscape mode for tablets (for screens greater than 600 dp)).

  • Ensure that when the tablet changes orientation, the application does not lose data already entered in portrait mode, and vice versa.

  • Note : if you don't have tablets, you can test with the virtual tablets provided by android studio (in avd - android virtual device).

Actual behavior

Only the portrait mode works as expected.

Who's working on this ?

I can do that if you want.
(If you give me to work on issue #17, I'll do it later).

Splash/Loading screen for the first launch

As you know, our app is loading city/country data from file to SQLite database on first launch. This takes few seconds and currently it appears to the user as a white screen.

I suggest we add another content view before this long process (a splash screen) which will tell the user that (1) this loading is only for a single time, (2) our applications name: "Open Weather Android", (3) some weather related background, and (4) Android OSC (Open Source Community) logo with text.

Logo for Android OSC is below:
android-osc-logo

Logo Proposal

Hi sir
can i propose a logo design for your project ?

Manage internationalization

Description

Each contributor can translate the GUI into his/her mother tongue (or any other language of his/her choice, but "that he/she masters" ).

Steps to reproduce

The strings.xml file is made for example to facilitate the internationalization task, so most (maybe all) of the translation (i.e. I18N) will be done in this file.

Expected behavior

After choosing a language in the application settings, the entire GUI will be loaded in this language.

Actual behavior

The GUI is currently only in English.

Who will work on this issue ?

If there's no one to translate it into French or Kabyle (Tamazight), I could do that.
Each contributor who would like to work on this issue, just create one issue per language and/or culture.
You can mention this issue in your Commit Message (if all of you agree), by adding #52 in the form written by @ardovic (owner) in the readme file of this project.

Want to add user's current location feature

Description

In MainActivity.java, Using GPS provider and Network provider we can get the user's current location. When the user opens the app we can display weather details for that location. Anyway, the user can also search for other locations like currently they are doing.

Steps to reproduce

If the user has given permission for the location, we can get the user's location by different providers like GPS provider, Network provider. We can use the background service to get the user's current location geographic coordinates(Latitude and Longitude). Then using the openweathermap API we can get weather details for that coordinates.
E.g. api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}

Expected behaviour

We can utilize location in different ways like when the user opens an app, the app will display details for the user's current location.

Actual behaviour

The app is displaying weather details of the last searched location.

Would you like to work on the issue?

I would like to work on this If you want.

Credits "Activity" required

We need a nice easy-to-update Activity with credits list, where everyone who had contributed to the project will be listed.

This activity will be accessed from navigation menu.

At first, the list will be manually edited. Later we should connect it to projects github API (it should be possible), this way the list will be updated each time a new contributor appears.

Rewrite networking with retrofit

Currently we have HttpURLConnection implementation for networking and api calls. Plan is to rewrite the existing code with the use of retrofit library.

Deprecated Dependency

I just fork your project and And while understanding the workflow of your project I see deprecated dependency in build.gradle file.
I can update this dependency to newer onces.

Would you like to work on the issue?

Yes, I beginner in contributing So, I love to solve this issue .

Waiting for owner/contributor response to work on this issue.

Not appropriate logo.

Not appropriate logo.The consumer who search about the weather app or web ,they firstly seem your logo which attracts them ..so i think your logo has less attraction.....

Icon Proposal

Hi.
I have created an icon for the project.
image


You can place BG and FG in Adapticon to test it.

FG
artboard 1xxxhdpi

BG
artboard 2xxxhdpi


You can ask for any modification. If everything is fine, I will proceed to send the editable and final files.

Want to add features

In activity_main.xml

  • There is no hint in AutoCompleteTextView

In NavigationView menu items on click its showing toast "Not implemented yet"
The items where I can work

  • Setting
  • About us
  • Share
  • Privacy Policy

Expected behaviour

  • In autocompletetextview I can add hint as "Add Location" or whatever you suggest
  • NavigationView items onClick I want your suggestion So that I can work according to it

Would you like to work on the issue?

Yeah, why not😇

Add Sign-in via Google

Describe your issue here.
I would like to add the login and logout feature via google

Steps that will be taken

Will integrate this app with Google sign-in and can get information about user which will help in further enhancement of app

Would you like to work on the issue?

Tell us if you would like to work on this issue
Yes I would like to work on this

Add navigation drawer

A simple navigation drawer for future functionality. Currently, we plan to add authentication, profile (name-email-avatar) for preferences saving, forecast types, credits, notification options and general customization settings buttons.

P.S.: The list of functionality is not the part this issue.

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.