Sauven Marking’s industrial printers are built on a dedicated ARM platform and are used in 63 countries across the globe. Like many embedded device and software exporters, Sauven faced a multi-language, multi-platform development challenge with its new products. When the company needed to develop the latest version of its printer management software, it turned to ByteSnap Design to help deliver software that could not only be deployed on desktop and embedded devices, but tailored for international markets using different character sets and translations.
Traditionally, Sauven has developed the desktop software that controls its printers using C++. Localising the software for each market, and testing new versions as features were added, was becoming a burden (Sauven offers its software in sixteen languages). Sauven’s new 500 series of ink jet printers offer high resolution printing and Sauven’s desktop software needed to be updated to take advantage of the new printing features. Sauven wanted to provide users with a highly usable, attractive and functional WYSIWYG editor, the software had to be localised for international customers and Sauven wanted the option to roll out future versions of the software onto the printers themselves, so ease of porting to the embedded platform was also important.
Faster multi-language development
Sauven chose ByteSnap Design’s SnapUI user interface development framework for its new generation of software. SnapUI’s data-driven framework for UI development allowed Sauven to separate the presentation layer of the application from the underlying logic and operating system-specific code. The underlying application code in a SnapUI application is written in C++ and the key difference between SnapUI application development and traditional methods is how the UI elements are managed.
The architecture of SnapUI has much in common with modern games development; the application is built upon a core engine, which can then be compiled to target different operating systems. The structure of the UI, text and graphical resources displayed are defined in (XML) configuration files. Language-specific translations, images and UI element positioning can be amended without updating the core of the application.
In some of Sauven’s target markets local languages have a much more complex written structure than English, for example, in some languages, a single letter might be represented four different ways depending upon where it appears in a word. For Sauven, SnapUI’s separation of the language-specific elements helped realise significant efficiencies in development, particularly where for the more complex languages. Sauven found that using SnapUI helped reduce the time taken to add a new language from several weeks to a matter of days – the application was launched with support for sixteen languages from day one.
The separation of presentation and business logic within the SnapUI framework also allows graphic/UI design and product development to occur in parallel so designers can work on the UI elements while engineers write the core application code.
Multi-platform development and deployment
Separating the presentation from the core application also has benefits for multi-platform deployment and development. SnapUI applications developed for the desktop can be ported to run on an embedded OS simply by recompiling the code and amending the UI configuration files to allow for the smaller screen. Similarly, software developed for an embedded platform can be recompiled and run on a desktop.
This cross-platform support means that engineers can work on the UI and software aspects of an embedded device even before the hardware development is complete. For Sauven, the ease of porting code to different platforms opens up the possibility of new embedded products that run the WYSIWYG editor directly on the printing device. Further, since the embedded and desktop versions of the software share common code, defect-fixing and configuration management is simplified.