Smartphone Application Programming

smartphonesSince about 2001, I’ve been developing applications for the Microsoft Pocket PC and now Windows Mobile devices. It’s been a part-time effort, where I spend evenings and weekends creating the Windows-based applications. Since the Pocket PC/Windows Mobile OS is basically a slimmed down version of Windows, all the programming structure, function calls, etc. are the same. So, if you know how to develop executables for the Desktop Windows machines, it’s nearly the same thing for the Windows Mobile devices.

Originally, writing Windows programs meant you needed to use a C++ or Pascal Compiler to create binary executables. After a few years, Microsoft introduced their .NET product which was suppose to make it easier for developers to create applications that will run on both the Desktop Windows systems and Windows Mobile systems. I never got into the whole .NET thing, since it required certain libraries, DLLs, and modules to be installed on systems to run the .NET applications. I liked the executable method, since you can compile everything into a single, compact application executable. The only problem with that approach, is that the binary executable you create will only work for a specific CPU processor, but fortunately Microsoft standardized on the ARM processor after 2003 for the Pocket PC/Windows Mobile devices.

Moving forward to 2009, you don’t see many people using Pocket PC devices. Instead, they use their cell phones (or, smartphones) for tracking appointment, emails, and reminders. Although some smartphones run the Microsoft Windows Mobile OS, there are plenty of other devices running the Blackberry OS, Nokia OS, Apple iPhone OS, and Android OS.

Last year, Apple released the iPhone developer SDK so that programmers could create and sell iPhone applications (much like I did for the Pocket PC devices). I briefly looked into this, but it seem that the development startup costs would be somewhat high. First, I would need to buy an Apple Mac system to do the development work (Apple provides the compilers and SDK at no charge). But I would also need to buy an iPhone to test my application with actual hardware (there is a software emulator, but you can’t always rely on emulators). So, I abandoned the thought of developing for the iPhone due to the high startup costs.

When T-Mobile first came out with the G-Phone running Google’s Android OS, I investigated writing applications for that new platform. What was interesting, is that Android applications were written in Java and relied on a “Java Machine” running on the G-Phone to execute the Java coding. So, experienced Java coders could quickly pickup and begin programming for the Android OS. I decided to give it a try, and began looking into Android OS programming. After teaching myself Java and reading up on Android programming, I concluded that developing applications for the G-Phone was harder than advertised. Primarily, there wasn’t much available in good examples and documentation for the Android SDK. In addition, I found Java programming quite difficult, especially when hunting down what Java classes to include in a project to have certain Android system capability. So, I also decided to not pursue developing applications for the G-phone.

Palm was one of the original creators of the Palm Treo Smartphone device, but they have been quiet for that last few years with no new development. Just recently, Palm announced the Palm Pre smartphone device which appears to be in the league of the Apple iPhone and T-Mobile G-Phone (touch screen with finger gesture controls). I really like what I’ve seen so far with the Palm Pre, and am looking forward to its eventual release in the first half of this year. As such, I began to investigate the Palm Pre SDK for developing applications.

As it turns out, the Palm Pre operating system (called WebOS) uses web-based tools for application development. Applications are constructed using HTML, Javascript and CSS (Cascade Style Sheets) which is a well know programming environment for web page developers. If you check out this YouTube video, you’ll see a recorded WebCast presentation by Palm that shows how to create a simple WebOS application for the Palm Pre using just a text editor and standard web browser. Of course, the actual WebOS SDK hasn’t been released by Palm, so developers will have to wait until it finally arrives. I’m hoping that along with the SDK Palm releases lots of tutorials and examples for developing WebOS applications, as well as the release of development books to the general public.

From all of this, it is quite apparent that technology is moving towards web-based applications. Google and others have online applications for word processing and spreadsheets using AJAX web technology, and now smartphones are using similar tools for running web-based applications locally on a device. Hopefully, this will make developing applications easier and faster for the newer handheld devices and I can get back on track developing useful apps for the general public!

One Response to Smartphone Application Programming

  1. sshwepps says:

    yup you are right, web-based applications are the future of mobile applications. I am an amateur developer myself (and not a very good one, i just dabble around for some amusement and learning, thinking of going full throttle 2 years down the line)and I mostly work on Symbian platform taking a lot of help from Forum Nokia. You have not covered Symbian. What’s your thoughts on it? It sure will help me.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: