The two most important factors that will drive next generation products are:
intuitiveness with which a user is allowed to access content present on the web,
and the ability to develop applications which can run on multiple platforms.
This trend holds true for most industry verticals, including consumer
electronics and automobiles. Since most products are embedded in nature, they
present a different set of challenges to the developer community.
In this article, we will analyze a few of the leading technologies and
frameworks with respect to the following criteria:
Direct Hit! |
Applies To: RIA Developers Price: Free (Beta) USP: A Feature comparison of latest RIA platforms Primary Link: NASearch Engine Keyword: Qt, Flashlite and Android |
- Ability to develop applications that run across platforms and devices.
- Support for building blocks like built-in widgets that will help in
developing applications faster with less development effort. - Last but not the least, the availability of technical support, including
developer community
Qt framework
Qt is a C++ framework for high performance cross-platform software development.
Qt port (Qt 4.6) is available on Embedded Linux, Windows, WinCE, and Symbian.
This means, any application that is developed on Qt for Linux will run on Qt for
WinCE.
The Qt framework consists of the Qt core module which forms the foundation of
all Qt based applications. This module has basic functionalities such as APIs
for File I/O, event and object handling, multithreading and concurrency, IPC
mechanism, etc. This forms the backbone of the framework that will help in
developing a portable code.
The Qt GUI module supports features needed to develop advanced graphical user
interface applications. This includes ready-to-use widgets like buttons, scroll
bar, progress bar, tree view, etc. There is a powerful 2D-graphics canvas for
implementing features like zooming, rotating, and drag and drop. There is also a
font and layout engine to tightly couple widgets used in a screen. This will
help in building user interfaces in less code with a complete set of building
blocks.
Qt architecture |
The Qt graphics engine supports platforms for a wide range of architectures
like devices with unified memory architecture and devices with dedicated memory
architecture. The graphics engine is designed to work on devices with no
acceleration, Alpha-blending capability, 2D vector graphics and 3D graphics.
This way, optimal performance is ensured by off-loading graphics operations to
the underneath hardware. Apart from this, it has various tools like Qt Creator
IDE, Qt Designer, which is used to design user interfaces quickly, and Qt
Linguist Internationalization tool for supporting multiple languages.
Qt 4.6, which is the latest version, includes a webkit based browser with
HTML 5 support.
Flash lite
Flash lite is the optimized version of the flash player for embedded devices
such as mobile phones, car dashboards, etc. Flash lite provides the necessary
infrastructure to create rich user experience applications.
The core of the Flash lite system is the rendering engine. The rendering
engine provides OS and hardware abstraction for displaying graphics and video
and also helps in supporting different screen resolutions. Flash lite can be
used with DirectFB to provide windowing system and also optimize performance
significantly on various hardware types.
It is important to note that Action script (scripting language) is used for
developing applications. It takes some learning effort to understand Action
script before application development can be started..
Android
Android is a mobile platform based on the Linux operating system. Android is a
very comprehensive platform that is good enough to build a product with support
for multimedia, graphics and connectivity. The Android Libraries layer, which
consists of middleware components, interacts with Linux kernel using Linux
system calls. The application framework is part of the Android SDK which is
aimed at providing a definite framework for application developers. For example,
an application developer developing point of interest applications has to use
the same interface as used for developing a map application.
Application Framework modules interact with modules in Android Libraries
layer using Java Native interfaces (JNI).
The Applications layer is a set of applications developed using Java. It has
built in support for webkit based browser which supports HTML5.
The technologies that we examined so far have strengths of their own. Each
one of these technologies suit different types of products being developed. The
table on the next page provides a comparison between the three technologies.
Ravi Kumar B S, Project Manager — R&D Services, MindTree