K–NFB Reading Technology, a joint venture between Kurzweil Technologies and the National Federation of the Blind, has propelled reading technology forward for the last 30 years with the invention of omnifont OCR, flatbed scanners, text-to-speech technology, and reading machines for the blind. Now K-NFB is redefining the boundaries of the printed word via Blio – a new generation in eReading software. This free application works across platforms and presents books as they are intended: in full color and as laid out by the publisher.
The goal for the Blio project was to create a smart, intelligent e-reader that provides the same layout, fonts, and full-color images that you enjoy in the print version of your favorite titles. Blio also provides the ability to read aloud to the user, highlighting each word as it goes, so you can follow along. This and much more was accomplished by a combined Wintellect and K-NFB team using Microsoft’s latest client technologies.
Blio is a showcase e-reader both in the application space as well on the technical platforms it is built upon. Because of its importance to Kurzwiel and the National Federation of the Blind, Blio needed to look, feel, and perform better than anything else on the market. Wintellect used proven patterns and best practices during the development of Blio, implementing an engaging look and feel that also performs wonderfully. Blio has been successfully released in several different variations including a WPF application available for free download and a specialized version customized to run specifically on Toshiba laptops.
K-NFB needed a partner that was highly skilled in both the Silverlight and WPF platforms. K-NFB had a critical business need to get Blio developed on a timely schedule and done right the first time. Wintellect has a proven track record of delivering best of breed solutions on both platforms, and we have have been involved in and delivering solutions for Silverlight and WPF since their inception.
The Blio project represented a challenging technical application for WPF and even more so for the Silverlight platform. An e-reader has a surprisingly large degree of complexity around user interaction, input, and rendering.
Rendering was one of the primary focuses for implementing the e-reader. Microsoft’s XPS (XML Paper Specification) was selected as the e-book input format. XPS was chosen for its ubiquity and portable nature. While the format is in fact portable, there were some hurdles to overcome with regard the format. For example, fonts had to be dynamically handled using in-memory assemblies to avoid loss of font formatting. Additional challenges also existed with regard to hit-testing, pagination, and memory management.
Even with these technical challenges to overcome, not only could both platforms perform, but they performed well. In fact, at one point the Silverlight implementation was out-performing the WPF application. Much care was put into using virtualizing technologies, parallel processing, and intelligent memory management, allowing Blio to deliver a very rich interactive experience without sacrificing performance. These practices are showcased by the ability to search and download, process, and play aloud books at the same time without sacrificing any performance for experience.
Much of the development success can be attributed to best practices such as a clear separation of concerns using the MVVM (Model-View-ViewModel) pattern and UI virtualization. Specifically, usage of the MVVM pattern allowed for faster time to market due to cleaner source that was more conducive to the team development environment. Additional successes came in the form of increased productivity via best practices for localization, accessibility, and general user interface construction guidelines for visuals in an accessible application.