T-Mobile G1: Google's iPhone killer
The Google Android-based T-Mobile G1, though missing some key business features, is a phone that professionals, consumers, and developers will love
Java is the de facto path to custom Android software. It provides garbage collection and true app isolation, and supports multithreaded and server (background) applications. Android uses a broadcast/listen model in which running instances of Java classes are called Activities and are controlled by user or application-generated messages. Remote procedure calls (RPC) with marshaled data provide interprocess communication.
Each Android app is protected by running in a separate Linux user ID assigned when the application is installed. Self-issued certificates can be used to sign code, or the user can opt to install unsigned applications. A unique and innovative feature of Android lists privileged actions, such as the use of the network or access to the contacts database, at installation time, setting up a sort of informed consent that bypasses disruptive, "Mother, may I?" prompts at runtime.
I have written, debugged, and installed Java software for T-Mobile G1, and I can attest that once the tools are installed, it is remarkably easy. I have not attempted native code development, for which Google does not supply tools. However, native app necessities like the C standard library and other linkable libraries are present.
Unlike iPhone, the Android SDK is not bound by nondisclosure, an idiotic restriction that Apple needs to abandon. And unlike any other platform, Android uses published source code. The NDA on the iPhone SDK precludes me from comparing it to Android, which is a pity and Apple's loss. At present, sources for Android's Linux kernel are freely downloadable. Google has committed to releasing the source code for "most of Android" in the near future. This is a little vague, but it's good to know that Google's heart is in the right place.
Lacking features like VPN and Exchange Server connectivity, T-Mobile G1 does not pass muster as an enterprise device, but that's a limitation I expect will be overcome by Google and open source developers much sooner than the year it took Apple to turn iPhone into the enterprise-friendly iPhone 2.0.
T-Mobile G1's run of the mill build quality is offset by a 12-month parts and labor warranty managed directly by the manufacturer, HTC. Shipping in both directions is covered under the warranty. While the G1 is not yet as well suited to corporate fleet deployment as BlackBerry or iPhone, it is a solid handset for professionals, highly demanding consumers, and developers.
Uptake among buyers and coders alike is already strong, with T-Mobile's initial run of 1.5 million devices wiped out by pre-orders. I expect T-Mobile G1 to compete in unit sales, if not exceed iPhone. G1 is cheaper by about $120, and since T-Mobile controls the pricing of both the phone and coverage plans, there's a lot of wiggle room on that price. I predict a price war between Apple/AT&T and Google/T-Mobile that will bring the price of both handsets down in a few months.
Even at its full initial price of $179 with a two-year 3G contract, T-Mobile G1 shines as the best available handset for consumer and individual professionals this side of Windows Mobile, and G1 is immeasurably easier to use and write code for. I'm confident that currently missing features such as Office and PDF document viewing will appear in Google's Android Market soon enough to make early purchase of T-Mobile G1 a low-risk exercise. If you don't need VPN or Exchange e-mail, and you can get a T-Mobile G1, get one.