Forgot your password?
typodupeerror
Handhelds Hardware

SDK Shoot Out, Android Vs. IPhone 413

Posted by CmdrTaco
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.'"
This discussion has been archived. No new comments can be posted.

SDK Shoot Out, Android Vs. IPhone

Comments Filter:
  • by Anonymous Coward on Thursday September 25, 2008 @10:46AM (#25151477)

    Android runs on Linux....

  • by trawg (308495) on Thursday September 25, 2008 @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!

  • huh? (Score:5, Informative)

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

    requires a intel mac?

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

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

    by MightyYar (622222) on Thursday September 25, 2008 @10:53AM (#25151609)

    LOL, true - and the FINANCIAL BURDEN of buying a $500 mac mini to develop on!

    I agree that the iPhone is not as friendly to casual developers, though. And that is a problem for those of us who like open source stuff. A professional is not going to sweat the cost of the Mac Mini or the use of Objective C - but that sure will put off the basement developers.

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

    by larry bagina (561269) on Thursday September 25, 2008 @11:03AM (#25151753) Journal
    T-Mobile has already said they're limiting what can be run. No skype/voip for example.
  • by ncw (59013) on Thursday September 25, 2008 @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 einer (459199) on Thursday September 25, 2008 @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.

  • I hate Apple's brick walls around their platform which is anti to what Apple once stood for.

    Funny, I always thought of Apple as a walled off isolationistic company. Where have you been? Granted they make GREAT products in their walled garden, but that was always the barrier to entry.. Apple's way or the highway. Yes I understand you probably mean programming for the desktop, but you could only ever extend so much - you had to work with what was given. IANAMP (I Am Not A Mac Programmer)

  • Jython (Score:4, Informative)

    by SEMW (967629) on Thursday September 25, 2008 @11:24AM (#25152049)
    Jython [jython.org]: "A compiler to compile Python source code down to Java bytecode which can run directly on a JVM".
  • by UnknowingFool (672806) on Thursday September 25, 2008 @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]

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

    by rockmuelle (575982) on Thursday September 25, 2008 @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

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

    by drerwk (695572) on Thursday September 25, 2008 @11:38AM (#25152271) Homepage
    XCode is just a UI for editing files and running command line build commands. So, one could probably do everything from the command line. But the whole thing comes configured for iPhone development, and it is nice to hit the button and have the app show up on the phone. I prefer to spend my time developing...at least until there is something that I can not do in XCode.
    I do prefer Eclipse, and the differences in completion and help are slightly annoying, but I would not say that XCode, or Obj-C are getting in the way.
  • Re:Biased much? (Score:5, Informative)

    by thelexx (237096) on Thursday September 25, 2008 @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."

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

    by parryFromIndia (687708) on Thursday September 25, 2008 @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.
  • by david.given (6740) <dg AT cowlark DOT com> on Thursday September 25, 2008 @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, 2008 @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.

  • by _xeno_ (155264) on Thursday September 25, 2008 @12:10PM (#25152709) Homepage Journal

    What? AWT - Depricated, SWT - 3rd party. Swing - Where the fun shit is.

    Swing is AWT - or rather, built on top of it. And while Swing fixes a lot of issues with AWT widgets being essentially unusable (mostly by adding missing features - minor things like icon support, toolbars, tables...), it still suffers from the basic flaws that the AWT does.

    So AWT most certainly isn't deprecated, even though no one uses it for GUI elements any more due to it's general crapiness.

    SWT at least uses native widgets, but it's obvious they did Windows first and "everyone else" second. But it works fairly well and on a good number of platforms.

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

    by xenocide2 (231786) on Thursday September 25, 2008 @12:39PM (#25153193) Homepage

    How do you prevent Skype? The same way you enforce SIM locking. The system is open, but you and I can only target the Dalvik engine. Modification at lower levels requires an open platform, and nobody wants to subsidize the price of a phone that you can unlock yourself and take to the cheapest competitor. You don't buy computers from your cable company, stop buying phones from your carrier. Hell, most of the carriers have sold off their networks to third parties to operate on their behalf. It shouldn't be long before Wal-Mart becomes frustrated enough with the carrier cartel and launches their own prepaid phones leasing access from these networks.

    That said, I think the source the "no Skype" thing seems to be based on a question about whether Skype was available or not. It could be that Skype is welcome to write such an app but hasn't.

  • by Khopesh (112447) on Thursday September 25, 2008 @01:32PM (#25154025) Homepage Journal

    What about Qt? Qt is about the same age and maturity as Linux, with Qtopia having been out there for far longer than iPhone, Android, or OpenMoko. As of August 2006, "there are more than four million Qtopia-based mobile phones in the market including mobile phones from Motorola, ZTE and Cellon" (from the press release announcing the Greenphone [linuxelectrons.com]).

    Qt is old as dirt by today's standards, being one of the most stable and robust frameworks out there, including its embedded platform (which implements its own windowing system to compete with X11 or Windows). The main "problem" with it is that it was never pimped out like Sun's Java was, so nobody has ever heard of it.

    OpenMoko, written with Linux, GNU, and GTK+ on X11, has its telephony portions mostly written from scratch. It's so horribly immature that the Qtopia telephony software has been back-ported to Qt/X11 and now ships standard on OpenMoko devices. Truly a testament to Qt's robustness.

    With Qt 4.4, Trolltech (now Nokia) put Apple's WebKit into the Qt framework (directly!), so making a webkit-based browser in Qt is a pretty trivial pursuit, as is rendering HTML and JavaScript in any standard app. Nobody seems to realize that this puts Qt/Embedded that much further ahead. Prepare to be stunned as Qt/Embedded quickly dominates the arena that everybody currently assumes is in contention between Google Android and Apple iPhone.

    Oh, and Qt/Embedded is GPL'd software. Everything is open, your privacy can be assured, and YOU have control of your own phone. The way it should be. Just try and get that from Google or Apple. Hah!

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

    by lottameez (816335) on Thursday September 25, 2008 @01:44PM (#25154211)
    I've been writing Objective-C for a few months now and I don't see the "elegance". I see the lack of garbage collection (at least on iphone dev) as annoying and nested function calls as hardly unique. Simple things like trimming whitespace from string requires goofy convoluted code.
    newString = [origString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
    I've also found the documentation a pain to navigate (which may be why I'm not so keen on it).

    OTOH, XCode and it's suite of profiling tools is indeed handy, and the debugging seems to work pretty well.
  • Re:Biased much? (Score:5, Informative)

    by tyrione (134248) on Thursday September 25, 2008 @02:37PM (#25154983) Homepage

    NextSTEP created Objective-C for their OS and API (which became Cocoa later on). So, it's not uncommon per se, it's merely created for that purpose. Although you can code on Windows with Objective-C (since gcc supports it on all platforms), without Cocoa it wouldn't be a seamless adventure. TBH I'd be surprise if anyone does any serious works with it outside of anything apple-related.

    I develop with iPhone and OSX everyday and I agree Objective-C is a beautiful and well-designed language, but most of the fantastic experience of using it comes from the API part, not the language by itself.

    Correction: Brad J. Cox Founder of Productivity Products International created Objective-C.

    Object-oriented Programming: An Evolutionary Approach, by Brad J. Cox. [amazon.com]

    Brad later co-founded Stepstone and NeXT eventually bought all rights to Objective-C as they developed their own version, based on Brad's works.

    Brad J. Cox's current info: http://www.virtualschool.edu/cox/ [virtualschool.edu]

    The self-documenting approach to coding that Objective-C inherits from Smalltalk makes for understanding what the hell is going on, by design, more rapidly than traditional C++ jargon. Of course, for every single book on Objective-C/Cocoa there are one hundred C++ or Java tombs. Somehow, the sheer volume of repeated books has helped reinforce in the minds of those never programming in Objective-C that it's some quasi-exotic language that no one ever uses. That's changing in a large way. As the growth of OS X 10.6 and beyond becomes apparent, so will the growth of books published and developers exposure to both help learn and evolve the language where it makes sense.

    Quite a bit of Java's design was grafted from ObjC, yet that C++ syntax of Java somehow gives people the notion it's a derivative of C++ alone.

    Regarding the Frameworks of Cocoa and without them the language wouldn't be so elogant. The same is true for all programming languages. Without Trolltech Qt's Libraries C++ wouldnt' be so elogant. Without the overkill of solutions within Java the Java language wouldn't have become the Server-side standard. So on and so forth.

  • Re:Open for WHO? (Score:4, Informative)

    by WiiVault (1039946) on Thursday September 25, 2008 @03:10PM (#25155525)
    Have you used a JME phone in a while? Let me tell you that native software is an order of magnitude faster on any phone I have used, be it Symbian or WM. When you have 200mhz to work with and lazy OS coders you can't afford the hit.
  • Re:OpenMoko (Score:4, Informative)

    by Znork (31774) on Thursday September 25, 2008 @03:35PM (#25155903)

    Well, I'm playing with my Freerunner right now. :)

    SDK comparison wise there's no competition. The openmoko is basically a linux machine with a touchscreen and a GSM chip. Anything you can do with a Linux machine you can do with the Moko, Qt, gtk, shells, perl, python, etc. If you lack it you can port it. Forget special-purpose limited devices, this is the real deal, a full general purpose computer.

    However, if you compare them as phones... well, the openmoko is basically a linux machine with a touchscreen and a GSM chip. After you've figured out how to flash it and decided on what distribution to run you get to debug alsa routing to bluetooth headset connections, configure gps daemons, etc. It's a good thing that it's as networked as it is (you can network over gsm, wlan, bluetooth, and what I use mostly, ethernet over USB (you'll want it in an USB port so it's charged anyway)) because you want a computer with multiple ssh sessions connected for many of the things you'll be doing on it.

    Personally I'm not the least interested in getting either an Android based phone or the iPhone (or any other locked down proprietary crap), and for me the Freerunner is among the coolest things I've ever played with (and the first phone I've ever wanted to spend a cent of my own money on). The potential is enormous, and the way the base can make it into ubiquitous devices of all kinds makes me think it can become something that influences the future in a serious way. But it's not an end-user product yet, and I think it'll take a while before it's there.

  • Re:huh? (Score:3, Informative)

    by Lumpy (12016) on Thursday September 25, 2008 @03:39PM (#25155949) Homepage

    So should I show my computer the article as well because it does not believe you, and it's running the SDK on a dual G5.

    I dont give a flying fart what some article says, I care about what works in real life and I have the iPhone SDK working on a G5.

Never put off till run-time what you can do at compile-time. -- D. Gries

Working...