Update 3. 6th January 2018 - jump straight to the end.
Update 2. 28th September 2018
The first alpha/beta of the RainWidget engine has just been released. What is RainWidgets? - I hear you ask. Well, RainWidgets is the spiritual successor to Xwidgets - though before
you rush out to try to download and install it - hold on! RainWidgets is NOT Xwidget 2.0. Firstly, there is no upgrade path from Xwidgets, second, there is no IDE and finally, there is no simple and easy way to create widgets using a few cores and some .js glue.
Rainwidgets is a pure widget engine and that's it, no IDE, no prettiness, no padding, just an engine for HTML based widgets. So, before you get upset and feel depressed and annoyed that Xwidgets has taken the wrong direction be placated by the fact I am fairly sure that RainWidgets has actually taken the correct direction. So far it has the feeling that it might just be the tool that a lot of desktop customisers and web developers have been looking for. A really rather good tool for putting HTML based widgets on the desktop.
Fig. 01 RainWidget Alpha Release with some yet-unreleased widgets.
Tony(?) and his team (I think there was once another chap that worked with him called qiancang) have become quite used to me pouring scorn on their offerings, the bugs in Xwidgets, the failure to fix them, the failing infrastructure, the lack of documentation &c &c but this time they really ought to take a pat on the back. RainWidgets as the spiritual successor to Xwidgets is really spot-on and they should be congratulated.
Only a few measures have been implemented so far: weather, datetime, shortcuts &c. We see very few operating system APIs to the filesystem or other useful operating system functions (the drive API was the first to be created) but after all, this is only an Alpha grade release so we ought to lower our expectations and await new measures in the fullness of time. The developer was originally drip-feeding new measures weekly, probably as soon as he had cut the code, so keep an eye out for new functionality.
(Battery, CPU, RAM measures added in 1.22 and 1.3)
An image or element is bound to a measure using the vue.js framework's v-bind directive. The usual events should be supported, eg. the onClick event (v-bind : onclick = "shortcut1.run") as well as all the other usual events (untested). Some events are currently implemented differently, for example: onkeydown/onkeypress - some drag/drop functions are not working as expected, perhaps he hasn't implemented them properly yet, "doKeyDown" being some sort of a workaround for a non-working keypress - more on this soon.
The set of widgets that are currently bundled with the engine are a little unimaginative graphically but they demonstrate that the engine works and they do show the rather impressive capabilities of the engine itself. I have yet to fully build or migrate any one of my steampunk widgets but work is at hand testing and creating. Watch this space!
Some other features:
When you add a new widget, instead of displaying a gallery that points to the software's main site (as did Xwidget), it does basically the same thing but takes its feed directly from a specific Deviantart gallery - which is quite a sensible choice. It also has an option to open any local widgets on the appdata/widgets folder. For me, the gallery is a little intrusive on my desktop being so large on my 15" screen that it fills the screen, it can also seem a little unresponsive, especially when attempting to install a widget. I feel it needs more feedback to the user in order to tell him what is actually going on - I would prefer a more positive install button on each widget image and a progress bar during download and installation. Note that the Xwidget dock functionality has not been carried over to the new engine, in fact the new gallery acts as both a download location and a replacement for the dock.
The widget's settings pages are a significant improvement over Xwidgets (in that they exist at all - a good copy of Yahoo widgets prefs functionality) and each settings page is automatically generated according to the contents of the widget's .JSON file. Very useful indeed.
A negative point is that the settings screens are very large, in fact far too large and clunky being based on Microsoft's preferred 'modern'-type themes. The resulting configuration windows are significantly over-sized for a windows desktop. It would be very useful if there was a RainWidget configuration option, a simple switch to reduce the settings font sizes and resulting window size so it suits the desktop. It is great having a settings screen optimised for those tablet-style systems out there but we also need an option which also provides a useful size for desktops. At the moment the settings screens are big and quite ugly. Experience from other engines proves that the widget configuration screens need to be compact and not overly-large especially when we take into account migration of existing widgets from other systems with complex configuration and plenty of options.
Fig. 02 A typical large text, bloated RainWidget settings page compared to a similar but compact one from another engine where a lot of configuration options can be located on one page due to small font size.
The current RainWidget right-click menus are quite good, anyone familiar with Xwidgets will notice how similar they are in layout and operation. Unlike their settings counterparts they are easy on the eye taking their layout from Windows default theme. I'd recommend leaving the menus to adopt their size from the current windows theme rather than forcing a particular look-and-feel such as that encountered in the menus of the sister product RainWallpaper.
Fig. 03 The RainWidget Menus conforming to the Windows theme as set by the user...the centurion font used in this case.
Each RainWidget exists within its own process context, this is a good feature as it means one crashing widget will not bring down the whole engine and all the other widgets with it. This is the same safe method used by the old Yahoo widgets engine but not by Xwidget. In Xwidget one nasty bug could have an adverse impact on all the running Xwidgets and made Xwidget a rather unstable product. RainWidgets is a much better designed product from the outset. This is probably more due to the way that Chrome implements each page/widget as a separate process rather than a feature of the RainWidget engine itself. Nevertheless, it is a significant improvement over the Xwidget way of doing things.
With regard to the missing IDE. If this is a product from the Xwidget stable then any existing users wishing to migrate will expect an IDE. I think those people will be quite disappointed. I don't think the developers will create an IDE at all, focussing instead all their energies on the engine itself. Why do I say this? Well, the IDE is a massive task on its own, imagine creating a completely new widget engine, then a graphical compositor and in addition developing and maintaining a decent code editor? That is huge amount of work and in any case, the engine needs a lot of time to complete, probably six months work or more. Having said that, I have seen the prototype of Tony's next generation IDE and I'll drop a picture here when I get time (see below) so it is possible that the graphical compositor may yet see the light of day - one morning perhaps - but for now, consign the idea of a fully-fledged IDE to the dustbin. Personally I don't want the dev to create an IDE, if he takes on this mammoth task he will fail us on the engine APIs and it is the engine he needs to focus on as it is nowhere near complete.
Fig. 04 Tony's XWidget 2.0 prototype IDE that has NOT been shipped with RainWidgets
Note that the above IDE was shipped with the precursor to RainWallpaper - the prototype XDesktop which was originally designed to be a combination of RainWallpaper and RainWidgets. The two eventually split into separate tools but the XDesigner shows what the developers had in mind for their next generation IDE.
To everyone else, the serious web-coders, I'd say download the alpha version and give it a go. Some proper coding will be required especially as there is no IDE and no coding environment provided at all. You just need to use the tools you are already familiar with for web development. If you are a frustrated Xwidgeteer and you need some help from another long-suffering widgeteer regarding the cross-over tools that might be required, just ask and I''ll be pleased to help or make some recommendations.
You can obtain RainWidgets here at Rainysoft: rainysoft.cc/
With regard to support, the product is in alpha so don't depend upon it and don't ask the developer any questions, just leave him to get on with the coding. In any case there is currently nowhere to ask him any questions as there still is no forum. You can now submit your new widgets to the new group on DA, as it has just opened to normal members.
That's my initial review with two updates to reflect reality, if I've made any mistakes please feel free to correct me. I had only been experimenting for a few hours when I wrote the article so forgive any typos and other technical mistakes.
Congratulations to the Xwidget team, sorry, the RainWidget team for creating such an amazing (alpha) tool! I have high hopes for this product.
January 2018 Addendum:
It is a few months later and time to note any changes to RainWidgets. Firstly, I can confirm that the developer is definitely our old friend Tony. We can tell that by the same lack of communication that always comes from the Xwidget stable. Some other hints that the developer team is the same - the new site is hosted on the exact same server as the old Xwidget site. Also, the right click menus on Tony's products and the new Rain products are identical. The RainWallpaper IDE/Xwidget 2.0 IDE are also the same. Most importantly, just as with Rainwidgets, we have just the minimum of communication but no more, sounds familiar?. I see the deviantart group is no longer being updated but there is some well-hidden but terse information to be found on the product's website:
- RainWidget now on Steam
- Change Settings window size
- Improve Widget Animation Performance
- Change Application style to Dark stye
- Improve the widget options window
There are no new measures (APIs) but I suppose it has only been five months so that can be forgiven but I am hoping for some new ones at some point. No engine can be taken seriously without some basic APIs so I am hoping these will eventually arrive before a full year of release is out?
This list represents the absolute basic APIs required to start coding some serious widgets. Without these it makes no sense to start converting your widgets to RainWidgets as they can do very little real work. As time passes it will become clear as to whether the developer wants to create a real widget engine. In another six months if we see nothing then we'll now that Rainwidgets is going the same way as Xwidgets with bursts of activity followed by months/years of nothing at all. I am pessimistic as I have experience of being an active member of the Xwidget community.
One important promise missing was the ability to create our own APIs. It was suggested a while back that Xwidget 2.0 (RainWidgets) would receive the capability of supporting user-written APIs (data-sources/measures). That particular promise seems to have fallen by the wayside which is a great pity as it could have helped Rainwidgets make better progress.
Rainwidgets is taking some stick for purloining the 'Rain' name. As expected the Rainmeter community is not impressed with the attempt to jump on the Rainmeter bandwagon. There's not much they can do about it but it is more likely to alienate a community than draw it in. A silly decision.
Let's hope that the RainWidgets alpha release is just a precursor to a major beta release where Tony will be a bit more forthcoming in all respects.