With new smartphone operating systems such as iPhone, Android, Maemo, and Palm WebOS and the legacy ones such as Symbian, Windows Mobile, and Blackberry, Mobile application development is a booming industry.
As someone just starting in Mobile application development, it could be confusing as to where to start. So here is a list of at least 6 things to know for a prospective Mobile apps developer.
1. Understand the underlying Mobile architecture
First and foremost remember that Mobile Phone is an embedded device. Unless you are working for the highest-end smartphones it is unlikely that you would be working on a sophisticated operating system. (Remember Symbian is also an ’embedded’ smartphone os).
Moreover, the processing power of a Mobile device rarely goes beyond 500MHz. To learn how to build an embedded application. Learn all the mobile-specific quirks to optimize the speed, size, and memory requirements of your application!
2. It isn’t Web 2.0 on Mobile
I recently saw some REST XML APIs for a Mobile application and was about to burst out laughing. Please remember that even on most 3G networks the real-life data speed is mediocre .. so you have to optimize your app accordingly. Maximum times you have to invent your own optimized protocols for data traffic and optimize them even further using some compression algorithms.
3. Know thy Standard
The mobile industry is historically about standards. And these differ significantly from the rest of the web or computer world.
For starters please understand what is meant by 2G, 2.5 G, 3G, etc. Do read up on at least the basics of GSM / CDMA/ WCDMA /HSPDA modems.
On top of that, your particular development environment may come with its own standards. For example, to be a J2me developer you may have to read about different JSRs supported for the handsets you plan to work. If you want to work on technologies such as IMS they come with their own standards.
4. Fragmentation you should be aware of
If you read a lot of blogs, you will hear that there are more than 3 billion Mobile handsets. But if you are a down-loadable application developer, it is most likely that your target-able handsets are much lesser. Make sure you are always aware of that when you promise the ‘moon’ to your customer.
Mostly it is beneficial to target only a niche subset of handsets aka iPhone / Blackberry. They themselves represent a decent market size. But, if you are trying to target hundreds of Millions of handsets please be sure of what you are getting into.
5. C++ / Java? It does not really matter
A lot of new engineers I interact with ask me this question about which language to learn to work on Mobile. There are various languages and SDKs to choose from C, C++, Objective C, Symbian C++, Windows C++, .Net, Blackberry Java, J2ME, Mobile Python, Web run time, Palm web os, Flashlite, and Android Java to name a few.
My advice is to just pick one to start with, (preferably an embedded native environment such as Symbian C++, Objective C for iPhone, or Android Java) if you have strong Mobile development skills, learning a new language or SDK will not be tough at all.
6. Mobile development is about integration
I have seen hundreds of Mobile application development life cycles so far and in every project, the bottleneck has been integration. Writing code is far too easy. But on an embedded system such as Mobile, the real art lies in integrating multiple components in time bound manner. It’s more of a process issue but unfortunately, I have not seen a solution so far. So 99 out of 100 times you would see applications taking far too long during the integration and release phase.
System integrators are a very priced community in the Mobile ecosystem so if you learn the debugging and integration skills, you are invaluable as an engineer.
Finally, here is a bonus tip
7. Attitude of a Mobile developer
This is something very hard to learn unless you have it in you. Mobile phone application development can take a lot out of you. The sheer frustration of not being able to release your app for some nasty unknown crash can drive you crazy.
You need a ‘never die’ attitude with a cool mind to be able to subjectively analyze seemingly irritating ‘unknown’ bugs for days to release a successful mobile app. If you are working for a handset manufacturer and need to pass certifications like FTA, you need it more than most…
So if you have just started on this path, welcome to the Mobile developer community .. and all the best for your Mobile app adventures!