SDK smackdown: Apple’s iPhone SDK vs. Google’s Android SDK

“In this corner: the current champion of the mobile phone market, the iPhone. In the other corner: a scrappy open source challenger, Android,” Brad Reed reports for Network World.

“Now that Apple and Google are both openly courting third-party developers to write applications for their platforms, the question becomes just what those platforms offer developers in terms of ease of use, support and distribution models,” Reed reports.

“Jason Cline, a senior software engineer at Web application developer Sitepen, says that the broad differences between the iPhone and Android SDKs are related to trade-offs between greater freedom and greater accessibility. Thus, for instance, while Apple may control which applications it will allow onto the iPhone, it compensates by having an AppStore that makes distributing and selling the applications a relative snap, says Cline. Additionally, Cline says that the iPhone operating system and presentation is so accessible and user-friendly that it has set the standard for other mobile operating systems,” Reed reports.

“The programming language used for each platform is one of the key differences between the iPhone and Android SDKs. Android is a Linux platform that uses Java as its programming language, whereas the iPhone employs a mobile variation of the Mac OS X that uses the Apple-developed Objective-C as its programming language,” Reed reports. “Hal Steger, vice president of marketing for open source software company Funambol, thinks that Android has the upper hand in this particular matchup since Java is a more widely known programming language.”

“Sitepen CEO Dylan Schiemann agrees that the iPhone SDK would do better if it used a more common programming language than Objective-C, but says that any experienced programmer who really wants to develop applications for the platform won’t have any trouble learning it,” Reed reports.

“But while the iPhone may use a less-common programming language, say some programmers, it also has the advantage of already being widely deployed and uniform on every iPhone device. Android, on the other hand, is expected to be used on a broad array of devices that have different types of keyboards, different screen sizes and different customized features,” Reed reports.

There’s more in the full article here.

27 Comments

  1. If I’m understanding this, hardware manufacturers will have to standardize some of their hardware so an Android application will run on any Android phone.

    Or will they have to have different versions like Palm apps do with Clie, Clie Hi-res, Palm standard, etc.?

  2. Anybody mention how Android will interact with any power management software each hardware mfg implements? This seems like a mighty important point. You know, battery life, on a portable, how apps can affect it. Can there be a gatekeeper on that front? What constitutes “normal usage”? Niggly little things like that.

  3. Weird, that article doesn’t make it clear to the average reader that Objective-C is also used on the Mac. Or that it lets you seamlessly integrate code written in C and C++, which Java does not.

    They make it sound as if Obj-C were developed just for the iPhone.

  4. “Android has the upper hand in this particular matchup since Java is a more widely known programming language.”

    I don’t agree with that. Objetive C is more powerful, not as popular as java, buy way more processor efficient. Java consume too much processor resources (has any one has use the iLos on HP servers? that are Java based and they are a pain in the ass….). Expect application on the iPhone to be a lot more faster than applications on the Android under the same hardware.

  5. suit: So this is the new prototype?
    engineer: Yep. You just flip it open to see the touch screen and the keyboard.
    suit: So this it has a touch screen just like the ipHone?
    engineer: Yep. But it also has a keyboard for easier input.
    suit: So it has more stuff than Apple?
    engineer: Yep.
    suit: So how do I see my pictures?
    engineer: You press this button to bring up the menus. Then you press the left button 6 times to get to your Assets menu. Now press the down button 4 times to get to Photos. Press select. And there they are.
    suit: Then I just touch a photo to enlarge it?
    engineer: No. We didn’t want to have to make the user take his fingers from the keyboard, we’re all about user convenience. You just press the left, right, up and down buttons until you highlight the photo you want, press the menu key, then press the down key 3 times to Enlarge and press the select key. And BAM, your photo enlarges.
    suit: So how do I get to my contacts?
    engineer: Just press the Clear button 17 times to back out of the Photo and Asset areas. Now just press the Menu button, the press the right button 3 times to get to the Contacts menu, and …
    suit: Yeah, Yeah. So what can I do with the touch screen.
    engineer: Well…. um…. I mean…. That is…. nothing yet. We’re planning a software update sometime that will do some stuff with it.
    suit: But it has one right? Just like Apple?
    engineer: Oh yeah. It’s got one. Big bright beautiful touch screen. Right there on top when you flip it open like this. See?
    suit: Excellent!!!! When can we ship?

  6. I have to disagree with the articles viewpoint on Objective-C. First of all, Objective-C is not “Apple-developed” it has its roots way before even the NextStep OS (predecessor to OS X). Yes Apple added quite a bit to the language (especially with Objective-C 2.0 in Leopard), but this is an open language just like C or C++. You can even run Obj C on Windows or Linux for that matter with the appropriate software layer installed.

    As for comparing it to Java like Viktor said, it’s a heck of a lot more processor efficient and scalable than Java. I don’t buy the argument that just because it is more commonplace in the market it is a better language. The article even states it’s not that hard to transition to programming in Obj-C. No harder than transitioning to C# from C++.

    The Java Runtime is also still dog slow, regardless of the advantage of “write once, deploy on multiple OSes”. Objective-C is what has allowed Apple to make such incredible leaps in innovation not only with the OS, but Cocoa apps as well. If Microsoft ever gets Singularity off the ground (the idea of rewriting the OS using .Net), they might keep up with Apple on the software innovation side. But when you have hardware AND software innovation occurring at the same time, they’ll always be playing catch up with their dog and pony show.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.