Building Rich Internet Apps

author-image
PCQ Bureau
New Update

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

Stay connected with us through our social media channels for the latest updates and news!

Follow us: