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 expect third parties to develop Android SDK plug-ins for other IDEs. ‘By just about any measure, Google’s Android is more open and developer-friendly than the iPhone,’ McAllister writes. This openness is 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. ‘In this race, Apple is taking a page from Microsoft’s book, while Google looks suspiciously like Linux.’
there are plugin for netbeans…
you can easily program for this os under windows, linux, macos X and solaris… maybe more
Where’s the shoot-out?
So what is the answer?
This is just an article about someone who doens’t like obj-c and the NDA. Nothing about the SDKs and nothing that will help sort out which one is the best.
Fair point, but going by Google’s track record I have found their documentation and API quite flexible and easy to use.
Indeed, but how exactly can you have a shootout when both Apple and Google throw NDAs everywhere?
Language politics aside (as quite frankly they all look the same to me), the APIs behind the iPhone are FAR superior to those behind Android. You can chalk it up to opinion if you want, but I am an order of magnitude more productive on the iPhone than I am on Android, and I’m not the only one.
I’d tell you more, but then they’d have to kill me.
“You can chalk it up to opinion if you want, but I am an order of magnitude more productive on the iPhone than I am on Android, and I’m not the only one.”
Okay, maybe I am just out of the loop. There are no Android phones out yet, the first one to be released at the end of October by T-Mobile, the G1. So how can you be more productive on something that does not exist yet? Serious question, as even on Android’s web site it mentions there are no devices using it yet.
You can get your own copy of Android and start being productive now even though specific phone hardware is not on the market. If it runs within Android, it should run on whatever hardware comes out. If you prefer, Android can be installed on the Nokia N810 so you can play with the OS and start running your own programs on top of it now.
I’ve spent some time looking at both API’s and doing a small project in each just to get a feel for the lay of the land. Yet I don’t see the clear superiority of the iPhone SDK that you mention. The one thing I do see on the Google side is a lack of documentation, not that it’s terrible, just that the iPhone SDK docs are a lot better.
I don’t have enough experience in either to say one way or another but to me both appear to have strengths and weaknesses. Of course it may have something to do with the fact that I’m much more experienced as a Java developer than a Obj-C one. Could you give some examples of what you see as clear strengths of the iPhone SDK as opposed to the GPhone one?
“Could you give some examples of what you see as clear strengths of the iPhone SDK as opposed to the GPhone one”
Well,
– Cocoa Touch
– Interface Builder (that’s a big deal)
– Instruments
– Core Animation
– Quartz
– Core Audio
– Core Foundation
– Core Data
If you developed for Mac OS X, you should get the idea….
Let Android and osX Micro stand out in the middle of the street and draw. I’m going to go place my money on Maemo with his 30×6 up on that roof top over there.
(sorry, I couldn’t resist with the gun duelling analogy and since the article didn’t provide much technical information…)
I would love to see the article redone on a purely technical basis including Android, iPhone and Maemo development pros and cons. Maybe a more inspired writer will happen past this humble post.
Of course there is no answer – there is no clearly defined question. If you are the kind of developer who wants to tinker with the device and the OS, who has an idea of neat app that does things it probably shouldn’t do, who is planing on releasing the app as open source, you would be better off going with Android. If you want consistent and simple APIs and UI or if you are in for the money the iPhone is undoubtedly the winner. Despite the uncertainty whether your app will make it in the store and the rather bureaucratic process of becoming “accredited” iPhone developer, submitting stuff for review, etc., people are making good money selling simple and rather cheap apps.
It’s an interesting demonstration of just where Apple’s priorities lie. Rip-off customers with overpriced applications that no one would buy if it weren’t for the environment of artificial scarcity that Apple has created? That’s A-OK.
But try to release an iPhone app that is the least bit similar to any Apple software that has ever existed or may exist at some point in the future? OMG NO YUO!
WinCE: with the platform builder addon to Visual Studio it makes for some awfully easy app writing in an environment in which the vast majority of programers are used to (yes i am aware new programmers dont necesarily use it as there are many options now, but Visual Studio was THE editor for some time and is still one of teh best).
so what is easiest for me? WinCE
While Windows is a popular platform, there where many IDE before MS Dev Studio; Delfi IDE comes to mind (write in a higher language, convert to assembly before compile if I remember correctly).
Outside of the Windows world, there have been far more flexible and powerful IDE available for a long time though many will simply use a collection of tools that function well together rather than a consolidated workbench application.
Studio is pretty easy too work with and remains one of my own programing cruches but it’s far from the first; it just has the advantage of being an MS product which is the only thing that can fully work with an MS product.
Based on market share, you should consider symbian first, as this is what 80% of the phones on the market have. Use J2ME and you reach 95% of the phones. Currently, both Android and the iPhone are niches. There are several other niches like openmoko and windows mobile out there, none of which have more than 10% market share. Sun’s J2ME SDK is very good.
Edited 2008-09-25 21:38 UTC
Yes, but certainly more than 80% (I really want to say more than 99% here, but if I do, we’d start fighting over numbers instead of focusing on the actual issue) of the owner of those phones don’t buy applications. In fact most of those however many percent don’t even know that they can install applications on their phones. The genus in what both the iPhone and Android do is that they put third party apps just a few clicks away from the home screen of the device – literally at the fingertips of the user. And that should matter very much to developers, because that’s what turns the behemoth of the market into a much more of a niche player than the new kids on the block.
Well, I don’t know how it works where you live but over here in Europe, my phone is spammed with advertising via SMS and MMS. If you don’t take care you can end up installing their app and paying €5 for that just by clicking 2 times on the button (one time to get the app and one time to confirm). Many people have games on their phone that they installed with 2 clicks and many even use pirated apps. OperaMini is quite common. You see a lot of people watching movies on their symbian phone while in the subway. I don’t believe it is that hard to install apps or that people don’t know that they can’t do so. How can’t they know when they are spammed all day with adverts insisting that they should install this and that?
Cheers, I hadn’t heard about spamming installs like that. Over this side of the water, we have enough grief with cold calls and the odd TXT from the service provider. It’s not nearly to the point where SMS spam is frequent and/or including install links. I’ll add that too my notes.
How lucky you are
I suspect it’s only a matter of time. I believe we, like the US, have some anti-spam laws against cold calling mobile phones though someone with the motivation and an Asterix box could probably get around those pesky laws.
I don’t envy you at all in this regard.
Now I’m no Microsoft fan and am more inclined to use Apple’s products(used to have a MacBook and still have several iPods, including the touch), but Apple isn’t really pulling a page from Microsoft’s book. If anything, Microsoft has gotten to where it is today by being open to developers. Apple is playing a page from the same closed up playbook they’ve always used.
Initially I was excited about getting onboard about developing for the iPhone/iPod Touch, but when the NDA stuck around after the lauch of the App Store, I’ve started looking at Android. I don’t care much for Java, but it’s better than Apple’s draconian control of the platform.
This is absolutely not a shoot-out between the two SDKs, this is non sense from a dude who does not know what he is talking about…. There is no technical comparison between the two SDKs, only crap. He does not use the SDKs, he does not code with the SDKs, that makes what he is saying totally irrelevant, period.
He also seems to speak a lot about Apple and NDA, but should i recall that Google have used the same thing during the development of its SDK when only a few chosen developers were given the right to get the latest SDK builds. As far as i recall, the SDK builds for the iPhone were available for everyone providing a free subscription to ADC. So the use of NDA is really not confined to Apple….
I haven’t used Eclipse much, the exposure I’ve had has been terrible (Carbide) and I already know how to code both C++ and Java. There, that’s the basics. Now tell me why the proprietary development tools (the IDE is, the compiler etc is not btw) from Apple must be inferior? The freakin’ premise of this whole thing is “fluffy open is better always”. And what’s this premise that “if it is Java it is the right way” [tm]? Why is obj-c somehow inferior? Any software engineer should be able to pick up obj-c in days, if you can’t do so, you are a bad developer. I am sorry if I offended someone, because if you do not do this professionally you might not have the right background. I myself would be useless in an operating theater.
What makes one platform better to develop for is the quality of the tools needed and if they exist. The documentation, the compilers, the IDE, the debugger, the performance measurement tools, etc. Not whether it uses your since before preferred choices or not.
I’ve been keeping tabs on Android since it was made first available to developers and I’m not very impressed at all with what is included by default in the SDK or Android itself. The SDK isn’t as robust or complete as the iPhone sdk, which brings a lot of the things over from OSX that makes life so much easier on the developers. CoreAudio, CoreImage, among many other things makes it extremely easy to get applications up and running in no time. The iphone SDk also brings a lot of tools with it that you would normally have to pay for in other SDK’s such as a profiling tool.
Android looks like it has potential but right now I find their offering rather sparse for a 1.0 release and I would have liked to see better written default applications. One thing I like about Apple is that they showed developers how to take advantage of their api by making the default applications polished. That sets a precedent for new developers.
The emulator is SLOOOOOOOOOWWWWW!. It needs to be much faster, the iPhone emulator is pretty fast with very little lag, and it boots into the environment pretty quickly. I don’t know what people are expecting but so far Android is no where near as well put together feature-wise or SDK wise as Apple’s offering, though it definitely has potential.