Wijmo Widgets – jQuery UI based widgets

I was contacted by Packt Publishing to check out a small reference book on Wijmo Widgets. Since I’ve been playing with different JavaScript libraries and APIs over the last 2 years I decided to give it a try over the holidays. I was specific for the fact that I haven’t tried Wijmo before and I’d gladly throw some hate here if it doesn’t make sense at all to me.

Before I start, as an Open Source advocate I’m obliged to say that the library is free to evaluate, but it’s meant to be used in premium projects – i.e. paid licenses starting from $495 under royalty free conditions (unlimited projects with a single license) and 1 year of updates included as well. I spent several hours to review the book, play with the demos and do some background check.

Few of the advantages of Wijmo Widgets are:

  • large number of available widgets – accordions, different chart types, carousel, editor, calendar, linear gauge, rating widget, progress bar, tree, tabs, video, wizard and many more
  • mobile support – the marketing headlines say that it’s “the only product for creating Mobile and Desktop applications with a single set of controls”
  • decent theming architecture for building themes for the widgets
  • DataSource support – sanity handling of real data
  • automatic axes and stacked bar charts – see the chart list for those two
  • support for ancient browsers (yes, IE6 – that’s what I’m talking about) – HTML5 and CSS3 based
  • mostly (if not entirely) built on the top of jQuery UI

In addition to that the enterprise version has SpreadJS integration – another Wijmo spreadsheet control for building Excel-alike applications in web projects. There is also MVVM support for different libraries with guaranteed support for Knockout (a.k.a. Knockout JS) with a designated widget for that.

Two of the implementations I found in the book I found particularly useful based on what I’ve seen available online. The Knockout samples were indeed handy for dynamic data management and manipulation, but outlined were the following:

  1. Live data streaming – if you take a look at the streaming data sample you will get the idea fairly quickly. If you need to manage some live data from another location such as currency exchange rates, sport game scores, dynamic betting rates or anything like that moving quickly, this might be a decent tool for straight forward and flexible implementation. There are tons of options related to the timing and the visualization and, after all, it’s a plain JavaScript behind, so you can tune up all details behind the curtains.
  2. Pie chart – when I had to find a proper pie chart library for Document Feedback, I was surprised with the quality level of all available pie charts. For some reason all JS libraries providing support for bar charts do pretty much everything, but pie charts were hilarious. They were pretty much broken, incompatible with most standard libraries, or lack what I would call ‘default’ options for pie charts. The library I picked at the end didn’t support labels for pie charts, i.e. different graphs outlined in the pie chart were only colors and no text as it was not supported. Only the side legend was throwing some light to the situation. And Wijmo’s pie charts do what needs to be done and working properly at the end.

To illustrate the use of Wijmo, I set up a quick example listing the browser usage for April 2013. I downloaded the csv stats for April from StatCounter (didn’t find a public API to query remotely) and added it to one of the demos provided on Wijmo’s site. After 15min of tuning, reading csv data and so on, the demo went live.

I was curious if the mobile support is real so naturally I tested that on my Android Samsung Galaxy SIII:

Wijmo Android Demo

The demo is not responsive – when I drag the screen horizontally it’s messed up, but the good news is that when I refresh with any resolution, it appears correctly scaled (many libs work with static widths and it’s annoying). Also, when I turn my phone to landscape or portrait, it’s repainted – all good!

The book was helpful to the fact that one can read it, browse through the code (to get the idea), see the sample, get an overview of different options for the controls. Some widgets come with links to the real site, but most were missing and I consider it a disadvantage – it’s handy to poke it on a real demo as well. Also, there are widgets not outlined specifically in the book – I was left with the impression that Wijmo Widgets are pretty much only for bar charts and a few more things, theme roller was described and Knockout quick demo, but it’s definitely too narrow view from the picture.

Conclusion

The book was less than 100 pages and outlines the important characteristics of the widgets. It’s not the Wijmo Bible which is cool, unless you want to work for them. The comments above still apply though – there are more valuable widgets than the ones in the samples, but the structure is straight forward and easy to go through the book for two hours and get a grip on what’s going on.

I don’t see a real use of Wijmo Widgets in practice unless you want to get hardcore in SpreadJS and decent Knockout integration. They’re handy, and some widgets are better than the open alternatives. Also, Kendo UI for example have enterprise licenses for comparable prices with better architecture of extending and modifying widgets in a component way. They also provide Open Source license. Wijmo seems a good option for larger corporations using the Enterprise license, building spreadsheets and highly decoupled data, with a lot of theming – most of the standard use cases could be built with open alternatives available for free.

 

Your thoughts?