Well, I know the 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 story with Mobile development, from cave digging in Symbian OS native development to getting spoiled with HTML5 and CSS3 in IBM Worklight.
The story starts in the summer vacation between my 3rd and 4th years of college (2003). I was recruited by a startup company along with 3 of my most talented friends to work as a part-time mobile application developers. Our first mission was the hardest, make the all new (back then!) Nokia 7650 display and write Arabic. When we started we did not even know what operating system it was running! Which we soon discovered to be Symbian! And you do not know what Symbian was like back in 2003: little or no documentation, bizarre OS API architecture (in C++), overcomplicated controls (most of UI controls implemented a rigid Model-View-Controller pattern, which means you had to implement 3 different classes to make a UI element show on the screen! ) and on top of everything, weird class names. CEikEdwin (as in the blog title) is the name of the TextBox in Symbian. The 'C' is to indicate it is a class, 'Eik" to indicate it is a part of the Eikon architecture which was the UI architecture Symbian used at that time. And "EdWin" is short for "Edit Window" combining all that gives you the lovely mysterious CEikEdwin.
To get the task done we had to implement a font rasterizer plugin 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 a complex encryption algorithm (that I can't remember right now) to secure the activation of the product and prevent crackers from breaking it (which eventually happened anyway).
The effort we put into this application combined with the marketing skills the guys in the company had, made this a huge success. Thousands of copies of the application were sold steadily in Egypt and in several Arabic-speaking countries. We continued to port the application to more Nokia devices like Nokia 6600. We also implemented multiple other applications like an Arabic-English dictionary, Azhan and other stuff.
This was all done during college, so when we came to our final year and we had to choose a unique graduation project -surprise surprise- we chose to do something on Symbian. We created a full featured Maps application on Nokia smartphones from scratch. It had the following features:
- Panning, zooming in and out (of course)
- Offline maps. We created our own file format for maps, and created a converter to convert ESRI maps to our format.
- Integration with a Bluetooth GPS to get current location. Back then (2005) there was almost no phones with built-in GPS, so we had to integrate with an external device.
- Maps download from an application server through GPRS (that was the wireless internet connection back then!)
This is all I can remember from its features. It was almost 15k lines of code that we wrote in 3 weeks.
BlackBerry (very briefly)
I worked in a project where they had a small working BlackBerry application that needed maintenance. I was always curious about BlackBerry development so I stepped forward. It was a very nice experience. Unlike Symbian, BlackBerry OS was neat, all system APIs and development are in Java. The SDK had a nice integration with NetBeans so everything was really smooth.
To be continued. :)