Storyboard Suite 5.3: The latest in embedded GUI development

GUI Software Crank Software Storyboard Suite
Here at Crank, we update and release Storyboard Suite on a regular cadence. We generally have a major feature release followed by a maintenance/refinement release. This release strategy helps us balance the need to deliver new functionality with ensuring we get a chance to refine usability and reduce technical debt as the product evolves.

Storyboard 5.3 was intended to be a maintenance release. Customer feedback (which is very important to us) provided us with a list of small changes that would have a big impact on usability, such as automatically opening up the design report after it has been generated, allowing control alignment to be used outside the editor, and creating a dedicated action to stop timers as well as providing timer selection through a drop-down list.

This release is full of these small, but significant, Storyboard Designer changes for embedded GUI development. They are captured in the release notes, but ideally, you won’t even notice them. Instead, you will just get the sense that using Storyboard 5.3 is an even smoother and easier experience.

Storyboard Suite 5.3: More than a maintenance release

Even though Storyboard 5.3 is a maintenance release, the Storyboard development team couldn’t resist adding in some new functionality. The existing Storyboard Engine performance logging was enhanced with new instrumentation for timers, animations, control cloning, screen transitions, and event communication. Periodic reporting of key metrics such as frame-rate, memory, and CPU usage is now available and can be dynamically controlled while the application is running.

To help digest all this new data, a completely revisited performance log editor was created that provides a number of statistical breakdowns of the data in addition to the hierarchical log file listing.

Embedded GUI Design performance logging

Looking forward, the team is excited about introducing a graphical timeline-based view of this performance data to help match what you are seeing to what you are designing. It isn’t part of this “maintenance release”, but look for it in a future Storyboard release.

There are two other enhancements that you might want to try right away:

Manage text overflow: For text that exceeds its display area, there is an auto-ellipsis option that can be enabled. To better understand what areas of your project this might best apply to you can run the Design Report and look at the Text Translation content.

Embedded GUI design text overflow


Easily locate the center-point: To make the process of selecting the center point for rotated images, such as needles and dials, we’ve added a rotation center-point tell-tale. It’s small and subtle but we feel that it’s just the right amount of hint without getting in the way of your visual design.

Enhanced platform support for embedded GUI development

We now support Raspberry Pi with both an OpenGL based renderer and a software renderer out-of-the-box. We are working on a demo image for the Raspberry Pi and will be posting that to our site, so watch for that in the near future.

Give Storyboard 5.3 a try and let us know what you think. The Crank team is always receptive to feedback and we’ve already started laying out the new features for the next major Storyboard release so it’s a great time to incorporate your feedback.

As always, we provide a full-featured 30-day evaluation for you to try it out first hand.

On Creating a Common Layered Image Format …

An important functionality of Storyboard Designer is our ability to decompose a Photoshop PSD file into its various layer, group, image and text components and allow users to incorporate those elements directly into their embedded user interfaces.

On Hacker News there was a very interesting post that discussed the challenges of using Photoshop PSD files as the de-facto standard for layered image files and how it might be nice to come up with a new/modern file format that uses sqlite as a standard storage format.

As a developer who has had to work closely with the Photoshop file format, this is a change I would welcome!  Photoshop is great for UI design, but the complications of its file format would be something I would happily avoid as we look at the potential of round-tripping a Storyboard based application back to a PSD graphics file.


Prototype FAST … Storyboard is Lean UX

One site that I hit as part of my regular graphics/UI/UX reading is Smashing Magazine.  They are an invaluable resource for all aspects

Looking through some of the archives at older posts that I’ve missed I came across this totally awesome article on the concept and implementation of “Lean UX”.

The reason that this detailed review of Lean UX excites me is that it exactly describes the motivation we had in creating our Storyboard Suite product.  When we demonstrate the use of Storyboard to quickly create working UI prototypes that can be immediately turned into products there is a universal sense by customers that Storyboard is going to significantly improve the way they work.

To customers Storyboard and Lean UX means:

Storyboard shortens the feedback loop from customers back to designers on UI/HMI issues and does it not only in a simulated environment but on the actual embedded target(s) that will be used to build the final product.  

Storyboard Suite’s speed of development and deployment means that discussions can focus on optimizing the UI experience rather than simply delivering content to be built into the product.

If Lean UX and Agile UX methods  then get a Storyboard Free Evaluation and make it work for you!


Simulink Driven Storyboard Input Simulation via Storyboard IO

Last week Crank was at Embedded World in Germany showing off the latest release of Storyboard Suite by showing deployed applications on a wide variety of operating system/hardware platforms:

QNX/i.MX 6, Linux/Atmel, Linux/TI Panda Board, Linux/Fujitsu Jade, SeggeremOS/emWin/SH2A

Storyboard allows this wide deployment by strongly enforcing the Model-View-Controller (MVC) pattern and using Storyboard IO as a generic event interface to drive the user interface.

Just down the hall from the Crank Software booth was the Mathworks booth where they were showing off their Matlab and Simulink tools which are great for building and modelling complex system behaviour and observing expected results.  Since these results are representative of real world data, it seems that it would make an ideal input source for a Storyboard based application.

… a quick chat with one of the Mathworks developers gave me the insight I needed to quickly put together a data binding from the Simulink tool to a Storyboard application:

The key was to use a UDP data stream and then create a small UDP server that could receive the data and then forward it along to a Storyboard application using an event over Storyboard IO.

The complete example along with the UDP server for Storyboard IO redirect has been added to our forums.


LEGO: A Perfect User Experience

I came across this post in UX Magazine on LEGO as a Near-Perfect User Experience, and it totally resonated with me … and not just because I love LEGO.

The concept of building blocks of functionality with consistent and reliable interfaces is what makes LEGO work so well and it is something that software developers are always striving to achieve with libraries and functions we develop as well.  In Storyboard this manifests itself as a consistent design model with re-usable graphical elements that can be shared throughout your application design.  Plug-in new image assets and the UI will automatically adjust to show the updated content in all locations where those assets were previously used

While many UI’s talk about Model-View-Controller (MVC) patterns, Storyboard strongly enforces the decoupling of the UI from the system logic through the use of our cross platform Storyboard IO allowing UI development to proceed in a data driven manner independent of the sources providing that data.  Run the UI you develop in Storyboard on your desktop, your tablet or your deeply embedded target and plug-in the data through simulation, testing frameworks or real hardware interaction … it all just works!