views:

2089

answers:

14
+16  Q: 

IPhone vs Android

Is Android going to gain momentum or will the iPhone continue to dominate mobile application sales?

I want to develop iPhone apps, but the learning curve is too steep to be productive quickly. I get the feeling that I have to already be a Mac developer since I've never done memory cleanup beyond removing an event listener.

Is android development easier coming from a C# .NET and ActionScript background?

+6  A: 

Have you ever done any straight C programming? If so, the learning curve to iPhone shouldn't be too bad.

If you haven't programmed in C, going from C# to Java is an easier slide than moving from C# to Objective-C.

But since you also know ActionScript, you might look into the web stack of the various phones. See PhoneGap for a cross-platform way to do that.

As for popularity, Android and Blackberry may make challenges, but I don't think the phones matter as much as the store. Apple has a huge advantage with iTunes being on so many computers.

Nosredna
Thank you! You are the best.
Bryan
I can't speak for anyone else, but I HATE HATE HATE browser-based "apps" on my phone. They're way more sluggish than using the standard UI.
fiXedd
I understand where you are coming from fixedd, but if the app is using a lot of javascript and http were minimal, could browser-based apps be appealing?
Bryan
You seem to forget, even the IPhone has to parse the javascript to run it. That's slow. Especially on a tiny not so well powered processor in them. Take a native iPhone app and that's going to be considerably quicker, we all know that. Now users of the iPhone are quite happy using native apps as they are so easy to get hold of.
Sekhat
I've done both native and JavaScript on the iPhone. Whether you need the extra speed depends on the app.
Nosredna
A: 

Android means Java, iPhone means Objective-C.

With my C and AnctionScript background, I find developing for the iPhone a breeze compared to Android.

Kriem
+1  A: 

According to Jason Spero, "developers are fired up about the iPhone opportunity" because "Android is implemented by OEMs and selected by operators [so that] it is unclear whether the end-to-end platform is in place.".

Of course, it's always hard to make predictions, especially about the future;-).

Alex Martelli
Yeah, it's hard for me to see the Android gaining much traction among developers. The downside: a lot less people looking for apps. The upside: a lot less competition.
Nosredna
Dave Bauman
@Dave yeah, far better to have no users for your software.
Roger Nolan
+1  A: 

Transitioning from C# to Java for Android, should be easier than learning Objective-C. It's not clear at this point if Android will be as big of a success as the iPhone has been. I've written applications for both, and I prefer the iPhone, but that's probably as much about my background as it is about the merits of the two platforms.

Mark Bessey
+5  A: 

I agree with the initial comment. DON'T forget Symbian!

Symbian had a silly and difficult implementation with the proprietary Symbian C++. Programming should become much more pleasant in future releases once we have the final Qt toolkit S60 port.


That said, I believe mobile application programmers will swift to Android (and Symbian) in the future for the simple reason they are open-source and will have full control to leverage the underlying technology. Moreover, Android (and Symbian) give much freedom to programmers to contribute to the future of the respective OS, evading the vendor-lock of Apple's iPhone.

Some role might also be played by the "sell incentives" given to programmers by the Android Store (for Android) and the Ovi Store (for Symbian). If they find a better, more lucrative model with a better percentage for the coder then it might give them the edge.

Kensai
Good point. But, I wouldn't say it's the best answer to this question.
Kriem
It's not, I have to admit. Nevertheless it expresses my personal prediction (with some evidence) of why I think in the long run Android (and Symbian) will prevail.Thus: iPhone vs Android, my bet is on Android!
Kensai
If open source and freedom alone were sole indicators of rich application models, Windows would not have done so well.I think it will help those platforms but that help is more marginal compared with how people feel about the core platforms they use day to day.
Kendall Helmstetter Gelner
You know, I was thinking about that the very moment I was typing those words. But then again, there is an important difference between Windows and say, Windows Mobile. The mobile OS world is flourishing now, together with the open-source movement and after all problems of the proprietary Windows paradigm that has haunted the desktop. Furthermore, in the mobile world Symbian and Android already command a major (>50%) part of the market, the open-source reigns supreme.
Kensai
About 8 months ago, my team member had a bug in Symbian 9 app he was developing. Because of poor documentation and closed OS he couldn't solve the problem for two weeks. So I decided to pay Nokia paid support. It turned out that they charge $400 per hour! They are going open source? Too late, too late.
Greg Dan
Better late than never, right? Indeed, Symbian used to suck much in the "real world". Things change once you go open source since experienced users with free will can help over a board. Even here in SO. We'll see. I'm positive for both Symbian/Android. It's always better to know all the secrets of the platform than just the outer crust. :)
Kensai
+3  A: 

If the "18 Android phones coming this year, possibly more" is true, I guess Android could get a lot more popular quickly if Google do a good job marketing it.

And Canada will get Android on June 2th, we have a lot of devs here waiting for this.

I can't wait to see how it will look in a couple of years.

brunoqc
+5  A: 

You should be considering your return on investment--what will make you more money?

Is Android going to gain momentum or will the iPhone continue to dominate mobile application sales?

The iPhone vertical is extremely potent. Apple own the stores, the hardware, the software, the online store, the desktop application and each of those business segments is not only sustainable but actually profitable.

iPhone applications have a much better monetization strategy because of the app store, which piggybacked on the already established iTunes channel and not complements it, making the whole online strategy very successful. iTunes recently outsold all music vendors (offline or online).

On the other hand Symbian and Microsoft's mobile platforms have not had the same success so Android does seem like a risky bet for now atleast.

aleemb
+1  A: 

First of all, separate the success of a platform in sales with application sales success - some platforms that sell well may not have as many users buying applications. So you really want to focus not just on how large any one OS may be but more on are the platforms making it appealing and easy to buy apps.

So, focusing on the application space here's how I see it shaking out:

iPhone will continue dominance in app sales - they have a good lead, and I think Apple will stay a step ahead of other companies with the core platform. They also have a really strong international sales infrastructure in place now which took some doing.

Android/Pre will be next. I can't decide which will see second, it will be really easy to develop for the Pre but the possible application space is more limited... Android will have more devices out but will it end up being like Windows Mobile where one device provider has 80% of the platform sales?

Windows Mobile is next, eventually, with WM7. They are losing a lot of ground though.

Sorry Symbian but I see you being down below all these with app potential, there's just not much of a culture of app buying, the core system is pretty old so I'm not sure the apps will be as compelling, and the device variety is too wide to make development easy (a potential issue for Android too). If a large point of Symbian is it's being open then why does it not make sense for Symbian to improve Android and jump on that more modern mobile platform with more support?

Kendall Helmstetter Gelner
+9  A: 

Lets compare the numbers:

I'll let you guess which camp I've thrown my hat in with.

fiXedd
And I say you are throwing your hat in the wrong camp. The number of Android devices is irrelevant. Five or 500 different devices competing for the same pool of potential consumers only matters when starving out competing device manufacturers. There is not yet any Android device with enough appeal to grow beyond the small tech-savvy user pool. And the _900%-analysts_ are the same analysts that predicted Microsoft Zune would kill the iPod by now.
PeyloW
Eh... time will tell. I've been wrong before.
fiXedd
A: 

There's another possibly important difference between the iPhone (+Symbian) and Android platform, namely compiling down to native code or not. As Nokia has demonstrated, device fragmentation (read binary platform fragmentation) is a real issue which will probably be a major factor for Nokia Apps never taking off like iPhone has, and Android may possibly do. Since Apple only has one device, this isn't a challenge for that platform yet, but when/if different apps needs to be compiled for each platform, it may become more challenging.

Android on the other hand, runs something Java like on top of the OS and binary APIs, and hopefully it's good enough that it will support various devices without requiring massive recompilation.

And finally, good people are working to creating cross platform toolkits which should work on many platforms. Nokia owns Qt which is one, but still compiles down to native code. However, Qt already support Javascript, so with some work I believe Nokia may be able to create a full app-platform in Javascript using Qt as the binary layer. But at the current stage, Nokia hasn't spoken about any such directions yet.

Another project, Phonegap, tries to allow Javascript applications running on the native browser on the phones full access to the "native" part of the platform, like specific hardware (geo location) and UI controls.

Personally I believe the devices are more than powerful enough to run most of their apps at a higher abstraction level than binary code, and assuming the vendors allow "binding" javascript and/or other more abstract languages full access to the platform, we will hopefully avoid another "Java everywhere" disaster which have hampered the phone platform for years (disallowing developers access to functions which would improve phone/communication facilities, only giving them a sandbox to show pretty pictures...).

Marius Kjeldahl
+2  A: 

As an Andriod owner - which I love btw, I've chosen to develop for the iPhone. I think it's a better market now and in the future for a couple of reasons.

The iPhone is a premium product. People who buy the iPhone are paying for it, so they tend to be quite wealthy. We've already seen proof that iPhone customers will pay for applications for their phone, economically they can afford it.

The G1 is a great device, but at the price points the G1 it isn't the same premium product. It's priced like normal phones so I'm unsure what the G1 user base actually looks like. In other words is it going to be full of people who are willing to experiment and purchase apps or are they going to be more cost-concious and less likely to spend money on apps?

Martin Clarke
A: 

The limiting forces for both Symbian and iPhone are:

-Poor Memory Management Code(poor in that its hard for beginners to coe this and etc)

-Hard to grow deveelpoer base, see previous item

-License cost extremely high. In symiban;s case its the chained to Nokia competition an din it iPhone's case its competing with the Mobile Operators that Apple has given exclusivity to..

Android OS platform has none of these disadvantages for Mobile Operators or OEMs in that it is very equal playing field and Java is easier to pick up than Symbian C and Objective C for the beginning developer.

Even in the worse case scene where each device only gets 1 million sold, that is 18 times 1 million or 18 million which than is 50% of iphone devices deployed world wide or in other words gaining 50% of ipHone market share in less than 2 years time.

Fred Grott
+1  A: 

Considering the already incredible large number of iPhone apps, it might already be too late to go into the iPhone software business (unless you have a very original idea). There is just no point to enter the race with e.g. yet another game, that nobody might notice between 10000s of other games. For that reason, Android might be the more interesting bet (and it's a bet, no doubt). You should also not completely ignore Windows Mobile. It's not the "big thing" yet, though a lot of WM devices are already sold, but sure-as-hell MS will try the same concept, so writing applications for Windows Mobile might be the easiest way to go for you, and if you are lucky, MS manages to smash the competition, as they have done several times before.

ammoQ
+21  A: 

I think it's a pretty complex situation, right now. Very tough to make a judgement call.

If you look at some of the latest Android phones out there - the Huawei 8220 (T-Mobile Pulse) which I currently own, at the low end, and the Motorola Milestone/Droid (which I covet but can't afford) at the high end, then from a hardware point of view these are clearly offering the iPhone stiff competition, and an open architecture. (the Huawei, for instance, offering pretty much the same capabilities as the iPhone, including capacitive touch screen, similar display size, GPS, magnetic compass etc, but for less than half the price, and no carrier lock-in).

Of the major competing mobile platforms - Symbian/Maemo/WebOS/iPhone/Android/Blackberry/ Windows Mobile, I think it's reasonably likely that Maemo and WebOS are going to find it hard to make traction in this market, and that Blackberry will carve out a specialist niche,not particularly attractive to most third-party developers, and that the remaining consumer market will split four ways between the remaining platforms. However, Nokia will have to make a tough choice and it may focus on Maemo and the high-end business market for smartphones with sophisticated requirements such as VPN support etc, where the line between phone and notebook computer blurs significantly. In this event Symbian, while still being a viable platform, will stagnate, with Nokia primarily betting on Maemo for the future. Microsoft seem to be fumbling with WinMo but it's too early to write them off just yet. They could also try the 'embrace and extend' trick with Android, but I think this might be too bitter a pill to swallow, for them.

Apple has made it very clear that it regards the iPhone primarily as a consumer device. However, it also has the advantage that it has almost succeeded in making the platform 'tamper-proof'. The latest boot roms are immune to the previous exploit that allowed jailbreaking, meaning that the latest generation iPhones, when rebooted, need to be re-jailbroken each time (what's known as a tethered jailbreak). Apple also now have a mechanism for preventing devices from having older versions of firmware reinstalled, and because each device - even iPod touches - has a unique serial number, at some point Apple can pretty much shut down the jailbreak sector. Besides, the glamour has faded now and the pioneer jailbreakers have moved on to other more interesting projects.

Why this is important is that Apple will soon therefore be able to offer a device which is provably secure and tamper-proof, which is important for a lot of commercial users. On the downside, installing Line of Business applications is a little more complex. You need to use Apple's Enterprise solution if you want to distribute more than 100 copies of your software, and this is not anything like as convenient as the Android marketplace or your own hosted application distribution server for in-company use.

Compared to Apple, Android developers can write much more capable software - services/daemons are allowed, there's no approval process etc. and you can set up your own competing app store if you wish etc. On the flip side the hardware isn't (yet) standardised, and probably never will entirely be, and we are in many ways at the very early stages of the IBM PC clone days, where each vendor strove to differentiate itself at the expensive of interoperability. Over time, these issues were resolved and it's not unlikely the same will happen with Android, so that vendor-specific capabilities can be handled cleanly and extensibly, without exposing software developers to a nightmare of testing on each platform. Google will probably need to get more aggressive about product certification, however, so that each device must pass some 'core Android' acceptance tests to be able to be logo-certified.

Whether issues like malware under Android will prove significant are hard to say. At present the devices are easily 'rooted' but out of the box, a standard phone is reasonably secure due to the design of Android's OS. However, with openness comes risk. I can't imagine that running anti-virus software on your phone is remotely a feasible solution - it's barely workable even on a standard PC - so this may yet be a significant issue for Android acceptance.

Taking things as they are right now, my experience with the Android platform vs the iPhone are:-

  1. The iPhone is much more polished and apps are much more mature. However this is largely due to the two year advantage that the iPhone has had over Android, along with Apple's strict control of the platform.

  2. The actual user experience under Android comes surprisingly close to the iPhone. The browser is quite capable and fast. Basic functionality like calling, contacts, mail etc. is quite acceptable. As an MP3 player it's fairly spartan - no EQ on my handset, for instance, and nothing like iTunes. On the other hand the SD card is directly mountable under Windows and you can just copy MP3s over to a directory; the player will find them and do a reasonable job of sorting them out. No coverflow, of course. Battery life on the latest handsets is better than the iPhone. Scrolling is not quite as smooth - there's an annoying lag between touching the screen and moving your finger, before text scrolls, that you don't see with the iPhone. However this was on Android 1.5 and I haven't checked out 2.0 yet.

  3. The apps are relatively immature compared to the iPhone. Still, this is only a matter of time and not a fundamental issue with Android

  4. On lower end Android phones - even very recent ones - application storage space is relatively limited - it can be as little as 70M - and because Android won't allow apps to be executed directly from SD cards, this is proving to be a real gripe with the Android community. Sure, apps can place most of their resources on the SD card but this is still a real bone of contention and probably the single weakest point with Android currently. Handset vendors understandably want to keep costs down so adding internal flash memory is obviously an issue for them.

  5. Despite the much-vaunted seamless integration with Gmail, I have yet to figure out how to sync contacts added to the phone back to Gmail. It works the other way, and you can import/export CSV files to Gmail from Outlook, but this is not quite the experience I anticipated from Android.

  6. Getting started with Android is much simpler than with the iPhone. Apart from not having to learn Objective C - a strange amalgam of C and SmallTalk - the SDK is pretty slick. Although Eclipse is not my favourite IDE (it's just SO Martian!), it did not take very long to get everything up and running. To my utter amazement, an empty Android project compiled and ran and downloaded to the phone the first time, displaying 'hello Android' in a window, without me having bothered to learn anything about the actual nuts and bolts of actually writing the code. This is encouraging. I was also able to drag buttons etc. to the layout and then immediately run this - so the learning curve is nicely progressive without you having to absorb enormous amounts of stuff before you can even get 'hello Android' running. And the project structure looks reasonably clean and simple and installation is nice and straightforward. This is a well-thought-out platform, technically, and very developer-friendly. And you can develop on Linux or a PC. When it comes to iPhone development,yes, technically you MIGHT be able (especially for jailbroken iPhones) get the toolchain running outside of a Mac but the process is fairly arcane and you have little developer-friendliness once you're done.

  7. So, can you make money?. Well, as Apple's App Store has shown, it's tough. However, the big deal under Android will be much more I think in the LOB area. If you can help a company to provide its mobile users with functionality over and above what they could do with a web-based 'always on' solution i.e a rich client with some local storage and sophisticated syncing, there are some real opportunities. Point of sale, healthcare, etc. But they will probably be more 'bespoke' than shrink-wrapped, although potentially there are some niches. As for gaming, Android is potentially a viable platform but I think most of the gaming market is potentially in the iPhone arena with people who want a 'it just works' experience.

  8. Don't forget the carriers, too. In Europe, they've been brought to heel by the EU and much as they may grumble, they know that Google Voice and Skype are going to have to be allowed or at least tolerated. In the US and Canada, the carriers have gotten away with blue murder for so long now that it's not impossible to imagine Android doing much better outside the US, in the same way that GSM dominates CDMA everywhere else in the world. This is because US/Canadian carriers have much more control over the handsets available to consumers on their networks than in Europe, where unlocked 'simfree' handsets are much more common and there are also more carriers competing aggressively with each other.

In particular in Asia and South America, Android will be very attractive because the handset cost will be so low and the carriers likely to be much more accommodating. This may also be something to consider as a developer, when defining a target market. We've already seen the writing on the wall here, with the disastrous rollout of the iPhone in China. It's easy to see why Chinese consumers sat on their wallets here, especially when you compare their home-grown technology like the Huawei handset I've already mentioned. It would be easy to imagine some kind of risibly clunky plastic brick, but we forget that the Chinese have been manufacturing high-tech for us for many years and this is a quality piece of hardware quite comparable in capability with the iPhone. Our cultural imperialism can trip us up, sometimes, and Apple have gotten a little too arrogant and overconfident recently. China has taught them a valuable lesson.

Finally, there's the issue of whether handset vendors will provide upgrades for previous models when new Android releases emerge. This was a big problem for Windows Mobile, where most handset vendors left customers stuck with the version their handset came with. Whether this will be the case for Android remains to be seen. If handset vendors don't provide support - and in many cases they will see this as an unnecessary cost - Android could fail, because these devices are virtually as powerful as PCs, and if you purchase a PC and then found you couldn't upgrade it, think how you'd feel. Currently Apple has demonstrated that all iPhones can be upgraded to the latest OS, albeit obviously that new hardware features can't be used. This is a really big plus for Apple.

Andrew Mayo
That's for an in depth analysis.
EightyEight
Holy novel Batman! Good insight. ;)
Mat Nadrofsky