Since 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.
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!