Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

[ Create a new account ]

SDK Shoot Out, Android Vs. IPhone

Posted by CmdrTaco on Thursday September 25, @10:44AM
from the take-the-pepsi-challenge dept.
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.'"

Related Stories

[+] Apple: Inside Apple's iPhone SDK Gag Order 495 comments
snydeq writes "InfoWorld's Tom Yager takes a closer look at Apple's iPhone SDK confidentiality agreement, which restricts developers from discussing the SDK or exchanging ideas with others, thereby leaving no room for forums, newsgroups, open source projects, tutorials, magazine articles, users' groups, or books. But because anyone is free to obtain the iPhone SDK by signing up for it, Apple is essentially branding publicly available information as confidential. This 'puzzling contradiction' is the 'antithesis of the developer-friendly Apple Developer Connection' on which the iPhone SDK program is based, Yager contends. 'You'll see arguments from armchair legal analysts that the iPhone developer Agreements won't stand up in court — but those analysts certainly won't stand up in court on your behalf.' Anyone planning to launch an iPhone forum or open source project should have 'a lawyer draft your request for exemption, and make sure that the Apple staffer granting it personally commits to status as authorized to approve exceptions to the iPhone Registered Developer and iPhone SDK Agreements,' Yager warns."
[+] Apple: Apple Bans iPhone App For Competing With Mail.app 464 comments
recoiledsnake writes "Another submission has been rejected from the iPhone App Store, this time for 'duplicating the functionality of the iPhone Mail application.' The author claims that his application allows the user to log into their multiple web email accounts and that Apple seems to be confusing Gmail and Mail.app. This comes on the heels of Apple rejecting an application for competing with iTunes and rejecting other silly but harmless apps as being of 'limited utility.'" ComputerWorld has an update to the rejected Podcaster app mentioned above. It seems the developer has used Apple's "Ad Hoc" service to begin distributing the software despite the fact that they blocked it from the App Store.
[+] Mobile: Google Unveils First Android Phone 545 comments
danieltdp writes "Google finally officially launched the first Android-enabled mobile device to hit the market. As expected, the first Android phone will be the HTC Dream (also known as the T-Mobile G1), a device with a large touchscreen and a slide-out physical keypad that will run Google's new mobile platform." You might also not be at all surprised to know that Google is working on an Android competitor to the Apple App store.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • by Anonymous Coward on Thursday September 25, @10:46AM (#25151477)

    Android runs on Linux....

  • by pez (54) * on Thursday September 25, @10:47AM (#25151495) Homepage Journal

    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.

    So I can run any CPU from any vendor, with any OS, and no familiarity with anything, to develop for Android? Cool!

    • Re:Biased much? (Score:5, Insightful)

      by samkass (174571) on Thursday September 25, @10:59AM (#25151691) Homepage Journal

      Yeah, almost all the metrics mentioned in the summary are irrelevant. Objective-C is something you can probably pick up in an afternoon. It's simpler than most modern scripting languages. And if you are unable to do so, as an iPhone owner I'd say please go write your app for Google anyway.

      They mention ADC "membership" as if it's anything other than a free web sign-up. It's true that you need to pay $99 to be able to put the app on a real device, though. But in exchange for the $99 you get 2 incident reports in which you can talk to actual Apple engineers and access to a worldwide marketplace tied to the most successful digital media store in history.

      And... in the end, there's really no SDK shoot out in the article. Which platform is, in the end, easier to develop for? Yes, Apple does a lot of stuff proprietary-- but is it better? Interface Builder is pretty frikkin awesome. The integration of the debugger and ability to run DTrace with a sweet UI remotely on the device is very nice. There are GL ES performance monitors, database monitors, etc etc etc. Yes, you can use Eclipse with Android and someday some developers might write plugins for it, but does that really make up for all these tools? I'm curious to find out. Someone should write an article...

        • Re:Biased much? (Score:5, Interesting)

          by samkass (174571) on Thursday September 25, @11:32AM (#25152155) Homepage Journal

          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.

        • Re:Biased much? (Score:5, Informative)

          by rockmuelle (575982) on Thursday September 25, @11:34AM (#25152207)

          "...debugger integration is not really their strongest point."

          You should really take a sideways look at the iPhone SDK. The debugger integration is solid and almost up there with Visual Studio for memory and thread debugging.

          While xcode is technically just a wrapper on top of GCC, Apple has done an enormous amount of work to integrate all elements of the toolchain into the environment in a way that enhances developer productivity.

          I used xcode when it first came out and was underwhelmed - it was really just a simple gcc wrapper back then. But, it's evolved significantly and makes the GNU tools it's built on actually efficient to use (think using the CLI version of gdb for debugging compiled, multi-threaded code on remote devices... sure, you can do it, but it's a time sink).

          -Chris

    • by Rik Sweeney (471717) on Thursday September 25, @11:27AM (#25152085) Homepage

      Wow, what a treat we have today:

      It's a Slashdot user with a 2 digit user ID, they're very rare.

      OK, take some photos, but be very quiet in case you startle it. Don't point your flash directly at its eyes since it's probably unaccustomed to bright light and you might blind it.

      When you're done, I'll be over there with the rest of the tour group.

          • Re:Biased much? (Score:5, Insightful)

            by Sloppy (14984) on Thursday September 25, @11:31AM (#25152137) Homepage Journal
            How are they going to prevent that? Either the machine is open, or it isn't. If it's not, then Google has been deceiving us.
          • Re:Biased much? (Score:5, Informative)

            by thelexx (237096) on Thursday September 25, @11:49AM (#25152431)

            Wrong.

            Quoted:

            For example T-Mobile will not restrict applications providing a work-around to the SIM lock feature or prohibit Voice over Internet Protocol (VoIP) software, such as Skype applications, that come from the Android development community, according to Gartenberg.

            "T-Mobile's CTO [Cole Brodman, who also serves as chief innovation officer for T-Mobile USA] told me that he while he can't say he'd like that to happen he isn't going to restrict it or stop it," said Gartenberg. "That's the spirit of how open they are to being an open platform and the fact they understand what it's all about."

  • Hmmm... (Score:5, Insightful)

    In this race, Apple is taking a page from Microsoft's book, while Google looks suspiciously like Linux.

    It's more like Apple is taking a page from Apple's book and Google looks suspiciously like Microsoft.

    For all their faults, Microsoft have always been more developer friendly than Apple.

      • Re:Hmmm... (Score:5, Interesting)

        by _Sprocket_ (42527) on Thursday September 25, @11:48AM (#25152415)

        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. [zefrank.com] 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.

  • by trawg (308495) on Thursday September 25, @10:52AM (#25151589) Homepage

    I actually RTFA because I clicked on it before there were comments, got to the end and went looking for the next page link - but there isn't one. It's pretty light on any interesting technical details - mentions some stuff about the IDE, the frameworks ("one is Java and the other is Objective-C") and ends with the same question everyone else is asking, at the moment - which will be better.

    If you've payed any attention at all to both Android and iPhone development already there's probably not much in there you won't have picked up from casually reading bits and pieces. Unfortunately. Let me know when there's a nice in-depth article available!

    • by MBCook (132727) <foobarsoft@foobarsoft.com> on Thursday September 25, @10:59AM (#25151697) Homepage

      I read it too. It's a troll.

      "Apple makes you use Apple stuff." Boo-hoo. Does that surprise anyone?

      Android is more open. That's a given. That was a major design goal.

      How about the real question: how well does the iPhone framework work for developing applications? I've heard it's very nice, and very similar to desktop Mac programming so it's an easy transition for Mac developers. How nice is the Android setup? It it easier/harder to make simple applications? More complex things?

      How about an SDK shootout actually looks at at least the names of the functions you use and tries to guess if one is easier to develop.

      This isn't a "shootout", it's more punditry.

      • by vadim_t (324782) on Thursday September 25, @11:12AM (#25151853) Homepage

        How about the real question: how well does the iPhone framework work for developing applications? I've heard it's very nice, and very similar to desktop Mac programming so it's an easy transition for Mac developers. How nice is the Android setup? It it easier/harder to make simple applications? More complex things?

        Well, see, for me it doesn't even make sense get to this part. It doesn't matter how nice the SDK might be when the reward for spending a not that small amount of money on the reqired hardware and the subscription, and weeks or months of my time on development could be having my application removed from the store, and Apple actually forbidding me from telling my customers what happened.

        Now when Apple stops being stupid, then I will become interested in comparing them on their technical development merits.

    • by einer (459199) on Thursday September 25, @11:05AM (#25151781) Journal

      As a Java programmer who used to program in Objective-C, I can tell you right now Objective-C is easier, cleaner and nicer to program. It's dynamically typed, where Java tries to enforce static typing. GUI-wise, it's a total win for Cocoa. The widgets and controls are an order of magnitude easier to understand and use than Java's swing/awt/swt nightmare. My biggest complaint with OC is garbage collection (which is no longer an issue as of 2.0). Also, Java has a much larger community. For those two reasons alone, Java wins the mindshare, but if you're asking me which one I'd rather program in, it's Objective-C hands down.

      • by david.given (6740) <dg&cowlark,com> on Thursday September 25, @11:50AM (#25152445) Homepage Journal

        GUI-wise, it's a total win for Cocoa. The widgets and controls are an order of magnitude easier to understand and use than Java's swing/awt/swt nightmare.

        Um, you are aware that Android does not use Swing, AWT or SWT?

        In fact, as someone who's actually written code for a bunch of different mobile platforms, including some proprietary ones (shudder, shudder, 20 minute build cycles, shudder), Android is an absolute dream to code for.

        In essence, Android encourages applications to be data-centric; and the Android UI allows to to hook up a custom View of your choice to a real SQL backend via automatic cross-process IPC (which allows you to export data to other apps) in about 100 lines of well-spaced code. Compared to, say, Symbian, where you have to spend half your time thrashing through their documentation trying to figure out the lunatic memory management model and the other half waiting for it to build, it's simply so nice. Instead of having to spend all your time on trivial data management issues you can simply press ahead to the application logic itself.

        (Not to mention that the Android tools work. The debugger just works, and honours breakpoints, which is more than you can say for Symbian's.)

        (Also, as the Objective-C object model was blatantly stolen from Smalltalk, and the Java object model was also blatantly stolen from Smalltalk but with C++ syntax, there's actually much less in it than you might think.)

      • by jeremyp (130771) on Thursday September 25, @11:50AM (#25152457) Homepage Journal

        I agree with pretty much everything you say except the garbage collection part. Whilst Objective-C 2.0 does have garbage collection, the iPhone SDK does not support it. You're stuck with the old reference counting mechanism, at least you were in the beta that I tried out.

  • huh? (Score:5, Informative)

    by Lumpy (12016) on Thursday September 25, @10:53AM (#25151599) Homepage

    requires a intel mac?

    dont tell that to my G5... it's happily working.

  • by vux984 (928602) on Thursday September 25, @10:53AM (#25151613)

    Apple is taking a page from Microsoft's book, while Google looks suspiciously like Linux."

    No, Apple looks pretty much like Apple, and Android looks as much like Microsoft as it does Linux.

  • by MobyDisk (75490) on Thursday September 25, @11:01AM (#25151717) Homepage

    The iPhone is primarily an awesome hand-held phone, GPS, PDA, etc. Pre-loaded 1st-party apps are what make the device sing. The ability to get 3rd-party apps is a secondary benefit. Most people buying this device are using it for what it comes with. This will be the case more and more as the device becomes more mainstream.

    I hope that Android phones don't focus on the development aspects first, and the 1st-party applications second. If the device has all the same nice features of an iPhone + is better to develop for, then great. But if it does not have the ease-of-use and functionality of an iPhone right off the bat, then it won't succeed.

      • by thammoud (193905) on Thursday September 25, @11:25AM (#25152055)

        While I absolutely agree with you, it is a lot more important to initially get a phone with first class applications preloaded. Most normal users will not go hunting for "better" version of apps (Think Firefox vs IE). They will use what is installed. From what I am reading, the Android applications are of lower quality to those of the IPhone. This is very disappointing.

  • by ncw (59013) on Thursday September 25, @11:04AM (#25151763) Homepage

    It would be nice to see comparisons of the market leaders with development for iPhone / Android.

    Based on raw market share, Symbian is the market leader (57%), followed by Blackberry (17%), Windows Mobile (12%), Linux (7%) and then iPhone (2.8%). Android yet to make a showing!

    ( Figures from http://en.wikipedia.org/wiki/Smartphone [wikipedia.org] )

    I've done Symbian developement and there are lots of ways of doing it. Nokia's C/C++ API, Java or even Python. It isn't 100% open as in you can't have the source code of the OS, but the APIs are all documented and there aren't any restrictions on what your apps can do. If you want your apps signed it can be harder I'm told, but I've never tried that.

  • by UnknowingFool (672806) on Thursday September 25, @11:34AM (#25152193)

    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.

    iPhone SDK requirements to develop an iPhone app:
    OS X 10.5.3 or later (Intel or G5)
    ADC membership (free but requires registration)
    XCode (free bundled with OS X Tiger and above but not installed)
    Objective-C language

    To distribute iPhone app:
    Yearly License: Individual $99 or Enterprise $299

    Android: [google.com]
    Windows XP or Vista, OS X Tiger or higher, or Linux (tested on Ubuntu Dapper Drake)
    Eclipse 3.3 or 3.4 (free download from eclipse.org)
    Java JDK 1.5 or 1.6 (free from Sun)
    Apache Ant 1.65 (Linux/OS X), 1.7 (Windows) (free from apache.org)

    Good chart at engadget. [engadget.com]

  • by David Gerard (12369) <slashdot@davidgerard.co.uk> on Thursday September 25, @11:40AM (#25152307) Homepage

    User interests beat developer interests, assuming that the first doesn't utterly cripple the second. And it does have to utterly cripple them to cause a problem.

    * Every Wikipedia story, Slashdot commenters bitch about their experiences of participation. However, the site's still #7 in the world, so what's it doing right? Focusing on the reader [davidgerard.co.uk].

    * GPL (a user-rights license) vs BSD. Compare the popularity of Linux versus FreeBSD.

    * iPhone vs Android. The best mobile phone interface ever. In this case, Apple is going further than anyone before in trying to utterly cripple developer interest - but if you can work an SDK then that many users is going to be attractive.

    Openness will get Android a fabulous ticky-box feature list ... but, y'know, Windows Mobile has a fabulous ticky-box feature list, and no-one picks that instead of an iPhone if they have a choice.

  • by kscguru (551278) on Thursday September 25, @11:47AM (#25152387)

    Sure, Android is more developer-friendly than the iPhone. Has Apple ever pretended otherwise?

    Apple goes for something entirely different - being customer-friendly. Apple demands high-quality apps, and rejects substandard ones. Apple requires well-engineered user interfaces. Apple restricts the number of functionally equivalent apps and ways of doing something, to follow the well-known interface guideline of not overwhelming a user with choice.

    I can already see how Google's Android is going to end up. Want a sneak peek? Go look at SourceForge today. Maybe 10% of the projects are extremely useful high-quality projects supported by a vibrant community. 90% of the projects are abandoned crap - but they're developer-friendly! You can get the source and fix it!

    Being developer-friendly helps by making it easier to create software. That's a double-edged sword, however, because as much as developer-friendliness makes it easier to create good software, it also makes it two or three times easier to create crap software. Witness the plethora of Google apps that have never left beta, witness the gross proliferation of spyware and script-kiddie viruses, witness the rampant proliferation of me-too Linux distributions used by two people and their dog.

    The Cathedral and the Bazaar. This is very simple - when I want something fun to play with, when I want to indulge my hobbyist sweet-tooth, I go to the Bazaar. When there's something I need to depend on and I don't have the time to tweak it myself, I go to the Cathedral. Now, in all seriousness, do you see a cell phone more as a fun toy or a necessary, must-work piece of your life? I imagine a lot of Slashdot readers want the cell phone to be a toy, but I also imagine most people in this world would prefer something to Always Just Work, even if it's less fun. It's the difference between driving a fun but high-maintenance sports car on the weekends and driving a reliable commuter car to work every day; everybody wants a sports car, but most people pick the commuter car.

    Which means I don't buy the hype around Android. It's a fantastically wonderful toy, but Google's track record is that they do not have the discipline to enforce usability at the expense of their fun toys. And, to my great sorrow, that is Google's great weakness.

  • Java vs. Obj-C (Score:5, Informative)

    by parryFromIndia (687708) on Thursday September 25, @11:49AM (#25152437)
    Most of the article compares subjective/non-concrete things such as how many people use Obj-C and how many use Java. It misses on one significant aspect of the choice of language. Java opens up numerous possibilities for Android. In my opinion that was an obviously good move from google. Here is why -
    1) Safety - Java provides a lot wider safety net than native language can ever.
    2) Control - you can enforce the signing requirements in the VM for all code that is run or you can limit it as a requirement to only certain potentially unsafe APIs (RIM does this - you don't need to sign an App with RIM provided keys unless you use the more dangerous APIs.) This arrangement can generally give the user a lot more flexibility and control over what can and cannot run on the phone.
    3) Exceptions are non fatal and possible recoverable, memory leaks are harder to induce
    4) Verification of software is easier - API usage, control over how much memory is used, what network connections are made etc.

    Before people complain Java is ugly and slow - this is J2ME (Java Micro Edition) that we are talking about which is much more lean and has different UI (Android UI doesn't look anything like the ugly Desktop Java and neither does RIMs - both use J2ME) These factors obviously matter a lot in a Cell phone type environment. I am especially happier with my Blackberry that it allows me to control what a Application can do or cannot do - make Wifi connection - No, access my address book - hell no, Access location - yes, Access Device Settings - no etc.