Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Long-term potential of iPhone/Windows Mobile development platforms

It seems that Apple has so far gone the furthest of any mobile platform in creating a good all-around developer ecosystem (SDK, app distribution, monetization, etc). However, reading the comments from previous SO questions on mobile development (e.g. this and this), certain criticisms seem to pop up, such as the following:

  • Objective-C, though a nice language, is not really used outside of Apple products.
  • The development environment and tools do not match what Microsoft has to offer with Visual Studio and .NET.

So, I am wondering about the viability of Apple's ecosystem in the longer term (i.e. 2-4 years). If Windows Mobile 7 phones (projected to be released in a year or so) gain market share, will the iPhone development environment be able to compete with .NET + Visual Studio (plus whatever "App Store"-type distribution mechanism Microsoft comes out with)? Judging from what I have read about iPhone development, I get the impression that we might see gradual attrition of developers to Windows Mobile since most will prefer to develop with Microsoft's suite of tools.

For developers who have experience with either of these platforms, what are your impressions on this topic? Does the iPhone platform have long-term viability (versus Windows Mobile) that goes beyond its initial advantage of having more market share?

==

Edit: fair points about the advantages of the App Store. But I'm curious about long-term potential of the two platforms, and it seems only a matter of time before Microsoft comes out with its own app store (e.g. SkyMarket) that makes installation as easy as it is on the iPhone. (Though the iPhone's app store might prevail because it came first.)

like image 985
RexE Avatar asked Nov 29 '22 12:11

RexE


1 Answers

I don't think Windows Mobile is the iPhone's competition. As far as I can tell, there are four platforms developers should consider for consumer-oriented applications right now:

  • iPhone
  • Blackberry (with the new App Store)
  • Palm Pré (which will get an App Store)
  • Android (which will get an App Store for paid apps)

Everything else is a non-entity. Symbian and Windows Mobile may become relevant again, but as of today, they are not. There's no healthy market for software on these devices, and it's unclear to me whether a large part of the people who decide to buy Windows Mobile phones even care about third-party software.

As for the tools and languages, the differences are insignificant. It's just not an issue. Developers won't abandon a market like the iPhone's simply because they don't like the tools or the language.

What's more, Xcode is more than good enough (some prefer it to Visual Studio - I certainly think certain aspects of it are better than their Visual Studio counterparts), and if you know Java, C++ or C#, you'll learn Objective-C within a week at most. It's basically two or three new concepts, a slightly different syntax and reference counting. If you already know a few object-oriented languages, learning Objective-C is a non-issue, and if you don't, it's a good excuse to pick up some new ideas and concepts.

The real difference is in the libraries, and I personally vastly prefer Cocoa to the .Net libraries, which often require you to call through to pre-.Net APIs.

Perhaps in four years, everything will be different. Perhaps Nokia fixes Symbian for good and takes over the smartphone market. Who knows? You've got to make do with what we have today :-)

So my points would be:

  • Until Windows Mobile actually starts being a viable platform for third-party apps, ignore it
  • Instead, look at the Pré, the iPhone, at Blackberries and at Android Phones
  • Objective-C is just a programming language. It's pointless to even think about it too much. Any programmer can learn it within a week
  • Xcode has its weaknesses, but it also has its strong points and isn't really worse than Visual Studio
  • Cocoa is great
  • Four years is a long time, and nobody knows what will happen by then

Programming for the iPhone is a ton of fun, and you'll learn a lot of new things if you've never ventured outside the .Net world. Just pick up a good book, set aside a weekend, set a small goal (such as a small game, or a todo app, or something like that) and get coding. Even if you don't like Xcode, even if you end up not writing any iPhone apps, you'll come out a better programmer.

And if Symbian does win, the experience of learning to write code for the iPhone will at least have taught you how to get up and running on a new platform :-)

like image 134
LKM Avatar answered Dec 10 '22 06:12

LKM