SDK Shoot Out, Android Vs. IPhone
snydeq writes "Fatal Exception's Neil McAllister delves into the Android and iPhone SDKs to help sort out which will be the best bet for developers now that technical details of the first Android smartphone have been announced. Whereas the iPhone requires an Intel-based Mac running OS X 10.5.4 or later, ADC membership, and familiarity with proprietary Mac OS X dev tools, the standard IDE for Android is Eclipse. And because most tasks can be performed with command-line tools, you can expert third parties to develop Android SDK plug-ins for other IDEs. Objective-C, used almost nowhere outside Apple, is required for iPhone UI development, while app-level Android programming is done in Java. 'By just about any measure, Google's Android is more open and developer-friendly than the iPhone,' McAllister writes, noting Apple's gag order restrictions on documentation, proprietary software requirements to view training videos, and right to reject your finished app from the sole distribution channel for iPhone. This openness is, of course, essential to Android's prospects. 'Based on raw market share alone, the iPhone seems likely to remain the smartphone developer's platform of choice — especially when ISVs can translate that market share into application sales,' McAllister writes. 'Sound familiar? In this race, Apple is taking a page from Microsoft's book, while Google looks suspiciously like Linux.'"
That's a good point and probably true, especially for developing for the Simulator. In fact even the helper apps (like converting to iPhone-preferred audio formats) are all command line tools. However, it seems like it would be a huge amount of work for little gain to unhook it from XCode, but I would be surprised if it couldn't be done once you figure out the zillion-and-one configuration issues.
I know we're all under NDA, but I've had very little problems with debugger integration. There's sometimes the frustrating unexplained BAD_ACCESS, but in general I can see threads, allocations, I/O, memory leaks, locks, allocations, SQL reads/writes/locks, OpenGL monitors, etc etc etc. I thought it was pretty impressive myself. Gotta love DTrace.
E pluribus unum
Indeed, let us all be glad that Microsoft won the PC war instead of Apple. Jobs would have been worse.
It's more complicated than that. Although I agree with the general sentiment.
It wasn't so much that Microsoft won. It's more along the lines of IBM losing and Apple losing more. Or rather, IBM winning by losing and Apple losing by winning. IBM lost control of its platform which then became a commodity platform to take over the industry. Apple maintained control of their platform(s) and became marginalized players in a market they were a major part in creating.
Microsoft was, of course, a major part of this history. And their role tends to shift over the years. At first they were a key component in allowing Compaq to start the (legal) "IBM clone" market. They then shift to becoming the (or at least one of the very few) common factor to the new commodity market - gatekeepers who in turn begin to influence the direction of that market.
It should be noted that Microsoft's developer-driven focus is part and parcel of the overall market. Proprietary platforms were the old world (something Sun had to re-learn). Microsoft was operating in a commodity world - or at least, riding the wave of commodity hardware. That mindset was in stark contrast to Apple's.
Not true... It can be made to work on PPC macs with a few minor tweaks and the assistance of Pacifist. What you can't do is sign apps so that they can be run on an external device(the app signer isn't a universal binary). I use the sdk at home on my PPC powerbook, and check the code into my subversion repository, then when on an intel based Mac, sign the apps and test on the iPhone. Not ideal, but its better than nothing.
Which is wholly irrelevant.
Until I can write apps for it that target the Linux environment underneath, or even replace the kernel, the fact that it is based on Linux is pointless. I can name a LOT of other phones that are Linux based. They're not open either.
Ever programmed in Objective C? It's really an elegant design, and most developers seem to have no problem adjusting to it. Rather than thinking that it's unfortunate that Apple chose such an uncommon language for development, I think that it's unfortunate that Objective C hasn't gotten more acceptance outside of Apple.