Weather
Closed, ResolvedPublic

Description

Utility that allows the users to monitor the current weather in their location and offer them detailed forecasts. We can use the plasma desktop widget for code sharing. However, a standalone application, well integrated with Plasma Mobile is needed.

Knowledge Requirements: Willing to learn Qt/QML, CMake.

System Requirements: You can develop this application on normal Linux system, and test it in native Linux system. If you want to test it on Plasma Mobile system, you can use actual Mobile device or Plasma Mobile x86 ISO in emulated environment.

KWeather(https://invent.kde.org/plasma-mobile/kweather) V0.1 has already been shipped.

What do I need to do if I want to contribute?

Hello and welcome :)

This developer guide will help you get started: https://community.kde.org/Plasma/Mobile/DevGuide
As soon as you set up your environment and get a basic Kirigami project configured, you can start working on this application ๐Ÿ˜‰๐Ÿ‘

Thanks. I will then work on the application. This will be my first time contributing to KDE. Are there some rules/steps I should know about?

Thanks. I'll take a look at it and start working soon.

If you search for a weather provider, I would suggest you OpenWeatherMap. Their weather data is freely licensed under CC BY-SA 4.0, they have a clean and easy to use api and they allow 60 calls per minute in the free plan.

Yep. I was going to use that. I had previously made a kinda weather app for Android, and used OpenWeather. It's neat.

Now this makes me curious on what API/service plasma widget uses? @kossebau can you shed some light on it?

Quick first reply:
The Weather Report widget from kdeplasma-addons makes use of the Plasma weather dataengine from plasma-workspace (whose logic dates from early Plasma times, myself only responsible for porting 1:1 to Plasma5, never touched the concepts even if I have some ideas resp. see some needs for improvements ;) ).

That weather dataengine itself has a plugin system to support adaptors to whatever weather data services. Which means, there is some data model normalization done to map the individual weather data models of the web services into some generic one (see e.g. the summary in the class API dox of the IonInterface

Some related blog post with more details here:
https://frinring.wordpress.com/2016/04/02/plasma-weather-widget-code-template-available-to-add-your-favorite-weather-data-provider/

When it comes to web services, one needs to make sure to comply to the licenses under which they provide their data. Many (private company) services only allow a few calls per hour in total to their service for free. So if plan is for world domination with Plasma Mobile, the service adapters offered need to be ready to scale without getting blocked by the service providers or getting bills sent in :)

In general would not mind if somebody is happy to take over maintaining any weather applets part of the , myself I only invested as much as needed to keep the old one working, but do not have enough time/motivation to do the IMHO needed redesign of the whole architecture.

Though curious about the task description: "However, a standalone application, well integrated with Plasma Mobile is needed."

Why is a standalone application needed with plasma mobile? And what kind of well integration are you thinking of that would not be needed on Plasma Non-Mobile?

This task belongs to a series of tasks we created after a discussion with @bshah trying to offer to Plasma Mobile users the features of the existing mobile platforms. Since mobile users expect such an application, we think that offering a standalone application we will fulfill user needs and make PlaMo ecosystem more complete.

As regards to "well integrated" I just mean an application streamlined for mobile devices, following Kirigami HIG :)

Since the case of weather application is not unique (many other features needed in Plasma Mobile already exist in Plasma Desktop), from my viewpoint, it would be very useful to leverage existing code and -more importantly- the expertise of the maintainers of the Plasma applications.

On the technical field, for example, why not considering the scenario of a single code base upon which a desktop/mobile widget and a mobile standalone application are built? However, this is just an idea, the developers that work (or will work) on the mobile and desktop parts will decide what is really needed.

Let me kindly request for your feedback on this issue. Since @BrokenMutant has expressed his intention to contribute to plasma mobile weather app, it would be nice if we devised an approach either based on the suggestion made above or consider alternatives so as to facilitate the creation of the app :)

@dkardarakos Hi, "your" = "mine"? :) I sadly cannot give valuable feedback other than explaining how the current plasma weather applet & dataengine code works. I have no insight in the application model concepts with Plasma Mobile and where it thus is different from what we have with widgets in the Plasma Desktop shell.

My only advise based on what I read here for now would be:
first design the UX & UI, before thinking about the implementation.
Only after you have some first drafts for what should be seen where in Plasma Mobile UI and interacted with how, it makes sense to turn to think more about the implementation and which technology to use and where code can be reused.

Well, explaining how the weather applet and -in particular- how the data engine code works is more than valuable :)

So, let's start with application design! Design-related resources can be found here:

After having a look at design guidelines we may start creating a set of mockups and follow the process described in T8963

Regarding implementation, it is a perfect opportunity to create an application based on kirigami framework and let the weather app serve as a prototype for similar (in terms of complexity and requirements) plamo apps in the future.

@BrokenMutant are you interested in starting with designing?

@dkardarakos You bet I am. I have been reading the HIG this whole time. I'll check out the other two resources.

I have made a mockup https://phabricator.kde.org/M129
Any feedback is appreciated.

mart added a subscriber: mart.EditedJun 26 2018, 8:55 AM

also check with @kossebau which is the current maintainer of the weather plasmoid

EDIT: eew, sorry, you are already in contact with him i see :)

lnj moved this task from PM 1.0 to Implementation on the Plasma: Mobile board.Feb 6 2020, 8:57 PM
lnj edited projects, added Plasma: Mobile; removed Plasma: Mobile (PM 1.0).
kossebau removed a subscriber: kossebau.Feb 6 2020, 9:22 PM

Is there any progress on the weather app?

We have the ubuntu touch one packaged as flatpak

EspiDev added a subscriber: EspiDev.EditedApr 23 2020, 3:43 AM

A sketch in qml of what the weather app could look like, if we allowed for horizontal scrolling:

EDIT: I've realized what a bad idea it is to have a progress bar for wind speed

hanyoung added a subscriber: hanyoung.EditedApr 24 2020, 12:21 PM

I followed the mockup and made some qml of it.

What do you think?
I'm new to qml but I've designed a desktop weather app before using qt widget.
Source code: https://codeberg.org/HanY/Weather-cmake

EspiDev added a comment.EditedApr 24 2020, 1:44 PM

I followed the mockup and made some qml of it.
What do you think?
I'm new to qml but I've designed a desktop weather app before using qt widget.
Source code: https://codeberg.org/HanY/Weather-cmake

Nice work! I also have done a qml mockup above a bit different from mockup proposed. https://invent.kde.org/devinlin/kweather

Perhaps we could work on this together? Maybe come on to the Plasma Mobile matrix room and we can chat!

A sketch in qml of what the weather app could look like, if we allowed for horizontal scrolling:

EDIT: I've realized what a bad idea it is to have a progress bar for wind speed

I like this concept, but it might be too busy for a home page? Maybe a swipe for detailed of the current forecast like humidity

This comment was removed by seshpenguin.

Regarding data sources, there is also https://api.met.no/, no API keys required, world-wide coverage and CC-licensed data. KDE Itinerary has some code for dealing with their forecast data.

hanyoung claimed this task.Jul 4 2020, 6:23 AM
hanyoung updated the task description. (Show Details)
EspiDev closed this task as Resolved.Aug 20 2020, 6:35 PM