The new Google Android HTC G1 smartphone promises to cover the middle-ground, between the Apple iPhone and Windows Mobile smartphones.
Windows Mobile smartphones fully support SMS and MMS messaging, and enterprise applications may be easily built with Microsoft Visual Studio, but some functions are not suitable for finger-touch access (e.g. configuring the HTC Touch Pro to connect to a protected WiFi network). Google Android promises to fix all these problems with touch-friendly, enterprise-friendly smartphones like the HTC G1.
Here are the steps for building an application for Android smartphones:
-- You can use a Windows, Mac or Linux PC to build Android applications. You can download the Android Software Development Kit (SDK) here. I recommend installing the Eclipse development environment and the Android plugin for Eclipse.
-- You'll program Android applications using the Java programming language, and test your application against the Android Emulator. It's very similar to using Microsoft Visual Studio to compile and test your Windows Mobile applications. I used this tutorial to create my first Android application.
-- Note that Android does not support the class libraries from Java ME or SE; Android provides its own Java class library that's specially designed for smartphone applications. The compiled code is executed by the Dalvik Virtual Machine, which was created for smartphones with limited CPU and memory. Check the Android documentation for more details.
-- The Android SDK gives you programmatic access to a rich set of functions (similar to the iPhone SDK) like camera, accelerometer, 3D rendering with OpenGL ES, embedded SQLite database, GPS, compass (not available in iPhone), etc.
-- To install your application on an actual Android phone, you need to digitally sign your application with your own digital certificate; no need to enrol for a certificate from Google or commercial certificate authorities like VeriSign.
-- To publish your application for public use, you may upload your application to the Android Market, which is similar to the iPhone App Store. You'll need to register for an Android developer account and pay a one-time US$25 application fee. Upon registration, your Android application can be made available to users without further validation or approval from Google--unlike the iPhone App Store, which requires Apple to review your application.
I found the Android SDK with Eclipse easy to program, very similar to Microsoft Visual Studio. The Android documentation provided by Google was very helpful. Deploying applications is much simpler for Android smartphones than for the iPhone, so I find the Android platform more suitable for in-house mobile applications.