Google's IPhone Killer
Now that we early reviewers are free to talk about our T-Mobile G1, you should expect to see G1 referred to as the "iPhone killer." G1 is a killer, all right, but imitating iPhone was the farthest thing from the minds of the Google and open source developers that pulled Android, G1's unique operating system and GUI, together. G1 was a consumer-oriented product from the word go.
Still, a shell prompt from a cell phone can reduce a geek to giggles, and T-Mobile G1, coupled with the Android SDK, signals early Christmas for all of nerd-dom, as evidenced by the fact that the first run of 1.5 million units sold out before the device hit the streets. It turns out that there is a very good reason that T-Mobile G1 is so well received. It is an exceptional, extensible phone with enough consumer and professional appeal to take it past entry-level BlackBerry, and at a starting, subsidized price that's nearly $120 less than iPhone, T-Mobile G1 will give iPhone 3G a serious run for its money. It cannot be said that T-Mobile G1 is all that iPhone is; G1 carves out its niche by being most of what iPhone isn't.
[ Howdoes G1 stack up against iPhone? See Tom Yager's review of iPhone 3G. See also " Why iPhone won't yet rule the roost in the enterprise" and " How to make the new iPhone work at work." ]
When the swivel-out QWERTY keyboard is tucked away, T-Mobile G1 feels great in your hand, like a proper phone rather than a PDA. A grippy plastic keeps the device from sliding around, and a sloping "shelf" near the bottom puts the mic where your mouth is.
The touch-sensitive display (but not stylus-sensitive, one of my gripes) is generous, sharp, and unlike iPhone, consistently put to use in portrait and landscape modes. Swinging out the concealed QWERTY tray reveals a spacious keyboard, and flips the display's orientation from portrait to landscape. The keys are widely-spaced and there's even a row of numeric keys. Swinging the keyboard back to its concealed position, which uses a nice stiff spring rather than a clumsy latch, flips the display from tall to wide, along with the currently visible application. With iPhone, the orientation switch relies on the position-sensing accelerometer, and the effect is primarily limited to the Safari browser. All of Google's standard apps flip to landscape when the keyboard comes out, lending a welcome consistency to the UI.
Like Windows Mobile devices made by handset manufacturer HTC, T-Mobile G1's build quality is strictly middle of the road. After a little less than a week of use, the display sinks on moderate finger pressure, giving out a barely perceptible creak that is also present when the device is squeezed, but squeezing or mashing on the phone is rarely necessary in normal use. It's the kind of thing a reviewer would do.
Users will notice T-Mobile G1's greatest hardware flaw, the hard to read keyboard. Gray keycap legends on silver keys force those of us without perfect vision to find the brightest spot in the room. The keyboard is backlit, but very dimly and only for a few seconds at a time. The display, on the other hand, is of uncommonly high quality for a phone: crisp and bright, with excellent contrast.
The dedicated navigation and action controls on the chin shelf (they're flush with the surface so you can't press them by accident) are few in number and well lit. A trackball, nearly identical in size and feel to the one Apple uses in Mighty Mouse, is the star of the show on the shelf. It is not a pointing device per se; there is no mouse cursor. It is akin to the five-way nav buttons (four directions plus click) on traditional phones. This, too, sets T-Mobile G1 apart from iPhone, which uses display touch for all navigation.
Finally, T-Mobile G1 features a removable battery, SIM card and microSD flash memory card. Oddly, it is missing a headphone/headset jack, a common and bizarre design trait common to HTC devices. The USB port, which is also used for charging, has extra pins for audio output. Included earbuds double as stereo earphones and a telephone headset with a lanyard microphone. The earbuds' quality is better than the throwaways typically shipped with phones. HTC sells an accessory pigtail that allows the use of regular phono plugs. This is included with HTC's lower-end Windows Mobile-based Touch Diamond and should be in T-Mobile G1's box as well.
The Android GUI
For most operations, I prefer the Android GUI, which makes its commercial debut in T-Mobile G1, to the GUIs in BlackBerry, Windows Mobile, Symbian, and iPhone. iPhone's inspiration is evident only in G1's flick-to-scroll and long press gestures, both of which are well integrated.
Dedicated menu buttons below the display and on the keyboard pop up unobtrusive, connect-sensitive menu icons in a strip across the bottom of the display. Tapping one of the icons either performs an immediate action specific to the application, such as showing your present GPS location in Maps or pulling up a settings panel that you exit with the back button. The back button also either closes the foreground app or returns to the previously displayed screen, one of Android's few GUI ambiguities.
As you have probably seen by now, program icons are on a slide-out tray rather than cluttering up the home pages. You flick the app tray out and scroll through your apps in a non-hierarchical icon grid. Clicking an icon takes you to that app, or you can flick the tray back in to reveal one of several home screens. You can selectively drag app icons onto the background of any home screen to gather applications by purpose or any criteria you choose.
Android's standard PIM applications (e.g. calendar, contacts) are adequate but uninspiring. However, Android's Java 2 Micro Edition API is well appointed with device-specific features like multiple fonts and rendering styles that make rich application development a breeze, so much so that Android's standard PIM apps can be seen as placeholders. What's more, a built-in Apache Web server, Google Gears, permits the on-device use of client/server Web applications with server-side scripting, making HTML and CGI the quickest route to custom apps.
As unimpressive as Android's PIM software is, its browser, which is also built into Android's mail apps, is absolutely stunning in appearance, operation, and functionality. Android's browser is nothing short of a work of technical and GUI art, Android's killer app, a natural hybrid of a mobile and desktop browser. It is sublimely tunable through a wealth of options, but not so many as to cause confusion. The top feature is scalable text, which automatically rewraps as you zoom or change display orientation. Unlike iPhone, every page loads at a readable resolution and skips straight to the text in any page where a textual layout is present.
You can select a single-column mode that turns a page of HTML into a view that need only be scrolled vertically. You can navigate freely around the page and return to the formatted text column by tapping on a paragraph. Through settings, you can also switch to a desktop view that permits free navigation, aided by a whole-page view that allows you to select any screen-sized portion of the page. The browser takes advantage of the navigation trackball to highlight selectable fields, buttons, and links sequentially. The highlight is drawn as an easily-seen box. When a text field is selected, there's no pop-up, on-screen keyboard to obscure the display as there is on iPhone and other keyboard-less handsets. You swing out the real keyboard and continue viewing the whole screen.
To speed rendering over slow connections, you can disable images on the page. Because the browser is used to present HTML-formatted e-mail as well, the safety and privacy of optional image display is extended to the mail client, an option that iPhone lacks. The e-mail clients, one each for Gmail and generic POP/IMAP mail, are exceedingly well done. Gmail, Google Talk IM (which integrates with other IM servers and protocols), and over-the-air sync of contacts and calendar utilize Google's free services. On your first use of the device, you create a Google account or configure an existing one. Did I mention that it's free?
This may not be the best venue for launching into a detailed run-through of Android software development. Suffice it to say that even though the tools are a bit of a pain to install, they work well and easily for Java applications. Android uses a special Java virtual machine called Dalvik, but this detail is hidden by the tools.
Where Android's Java APIs are concerned, even the more esoteric APIs unique to the device, Google's documentation is detailed and well cross-referenced. The Eclipse-based integrated development environment includes command line tools, leveraged by the IDE, native to the PC used for development. The toolset is available for Windows, OS X, and Linux, and installs alongside a standard Eclipse distribution.
[ Formore on Android development, see " SDK shoot-out: Android vs. iPhone" and " Test Center preview: Inside Google's mobile future." ]
Tethered debugging of code operating on physical T-Mobile G1 handsets is standard, rather than a paid option as is the case with iPhone and Symbian platforms. The debugger, loader, and file explorer use a USB interface presented to the host as a TCP/IP link. T-Mobile G1 presents as a USB Storage Profile device as well, but in this mode only music and pictures are visible. Through the debugger, the entire file system with the exception of protected user data can be read and altered.
Java is the de facto path to custom Android software. It provides garbage collection and true app isolation, and supports multi-threaded 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, like 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 run-time.
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 non-disclosure, 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 that 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 like 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.