Tuesday, November 27, 2007

Smart or Rich Clients

Continuing from the earlier post, we shall discuss the features of Smart or Rich Client. The major problem the smart client solves is the "always on" requirement of the thin clients. Practically it is not possible to assure of connectivity available and to enrich the user experience, its obvious to develop a smart client application with disconnected approach and syncs when connectivity is available. Smart Clients also leverage the use of native PDA/Phone functionality to access low-level device details and also ensuring faster performance compared to thin clients.

Now lets talk about the smart client development environments depending on OS/Platform which runs on the device,
1. Pocket PC or Windows Mobile Smart Phone
Embedded Visual C++ for performance critical applications. .NET Compact Framework for
rapid prototyping and development. Device specific SDKs are available from Microsoft such as Windows Mobile 5.0 SDK provides access to use native device features.
2. Series60 smartphones
Nokia Series60 SDK with Symbian/C++ . These typically are non-stylus based phones. E.g Nokia N and E series
3. UIQ smartPhones
UIQ SDK with Symbian/C++. These typically are stylus based phones. E.g Motorola Z8, Sony Ericsson M600i
4. BREW enabled phones
BREW SDK from Qualcomm used to develop on BREW enabled. E.g. Kyocera
5. JAVA enabled phones
Almost all the phones have light weight JVM (KVM) on top of the OS. These binary run-time helps to develop portable J2ME applications on most of the phones supporting it. Sun Wireless Toolkit along with eclipse or NetBeans IDE provide a good environment for developers.

Following are the characteristics of a typical device which all developers should be aware of,
1. Form factor
Processing power. CPU, Floating point
2. Screen Size
No of lines which can displayed/Resolution
3. Memory
ROM and RAM with extended storage
4. Connectivity Options
Bluetooth, USB, WiFi

For user experience there are several considerations which I shall discuss in my next post.

Wednesday, October 24, 2007

Mobile Application Architectures

Typically, we have 2 types of mobile application architectures,
  1. Thin Client or Wireless internet
  2. Smart Client or Rich Client

Thin Client typically uses a web browser on Handheld or Mobile. It directly access the server resources and renders in the browser. The pages have to be designed to support the limited layout/content in the browser. Earlier to days of mobile browser, WAP was prevalent using WML and WAP application protocol and communicating with WAP enabled Web server. The main advantage of thin client is no client side deployment required. Most of the time, browsers are available or can be installed on the handhelds. Typical examples are s60 browser on Nokia phones, openwave browser on Sony-Ericsson or Mini-Opera browser. These browsers are compliant to HTML 4.01 specification and support javascript. Another interesting proposition which makes thin client useful is using controls which are downloaded from the server such as activeX in case of windows CE/Mobile based phones or AJAX controls also known as widgets. Web2.0 specification talks about mobileAJAX which is interesting proposition to use thin clients.

The major disadvantage of thin client is that the handheld/mobile needs to be connected to internet or wireless network to access the information. This is the biggest drawback as connectivity cannot be guaranteed in the life span of the application usage.