Well, I know this title is really weird (like the title of a low budget movie) but bear with me; it will become clearer in a minute. This is my personal story with mobile development, from “cave digging” in Symbian OS to getting spoiled with HTML5 in IBM Worklight.
- Little or no documentation. We often needed to open C++ header files to know which classes and operations we needed.
- A bizarre OS application programming interface (API) architecture (in C++). Most of the user interface (UI) controles implemented a rigid Model-View-Controller pattern which means you had to implement three different classes to make a UI element show on the screen.
- Weird class names, on top of everything else. CEikEdwin (as in the title) is the name of the text box in Symbian. "C" is to indicate it is a class, "Eik" to indicate it is a part of the Eikon architectyre, which was the UI architecture Symbian used at that time, and "Edwin" is short for "Edit window." Combining all that gives you the mysterious CEikEdwin.
To get the task done, we had to implement a font rasterizer plug-in to draw Arabic glyphs from Arabic-supported fonts. We had to port an implementation of an Arabic character-shaping algorithm to Symbian, and we had to implement the blowfish encryption algorithm to secure the activation of the product and to prevent crackers from breaking it (which eventually happened anyway).
The effort we put into this application combined with the marketing skills of the guys in the company made this a huge success. Hundreds of thousands of copies of the application were sold in Egypt and in several Arabic-speaking countries. Given that this was a time before app stores were very popular, this was a huge success.
So why exactly I am writing about this after almost 10 years, given that all of the technical challenges we faced back then are now obsolete? I am writing about this now for two reasons:
1. The first reason is that this is a tribute to Symbian. Nokia was the last company in the world that created devices running Symbian, and they announced this June that they shipped the last handset running Symbian, which means Symbian is now officially dead. Although Symbian gave me and other developers nightmares during its time, we can't ignore the important role it played in shaping the mobile industry as we now know it. When Symbian started, mobile phones were merely a device to make phone calls, and if you wanted to have a handheld device that could organize your work and assist you in your daily life, you'd have to get a personal digital assistant (PDA). Symbian helped close the gap between the two devices and introduced the world to the concept of smartphones. It dominated the smartphone for a long time until Apple released its first iPhone, followed by the release of the Android device.
2. The second reason for this topic is that going through this experience made me appreciate how much mobile platforms have evolved in the past 10 years, and specifically the capabilities that IBM Worklight has, like:
· Code reuse across multiple platforms: When we were doing the Arabic solution, we were targeting a single device. When we wanted to move the same code to a different device with the same OS, we had to almost rewrite it from scratch. Luckily, in IBM Worklight you write your code once, and it will work across multiple platforms regardless of what OS it is running.
Maybe you can relate to my experience with Symbian or another old OS. Connect with me on Follow Hisham Abdel-Hafez on Twitter to have a deeper discussion about Symbian and mobile enterprise.