Listed below are articles related to Objective-C. This represents only a small portion of the content available on the website. Please visit the home page to see current entries and other categories.

Mobile Development - Which Platform?

A friend raised a great question on the PADNUG mailing list today (emphasis mine):

After seeing this:

http://www.engadget.com/2010/08/11/android-gps-navigation-x-wing-edition/

I'm really considering playing around with Air apps on my droid phone. That's a nice looking app that someone built just for the fun of it (it's not on the app store, doubtful it ever will be don't you think?). I'd like to be able to build Silverlight apps for my phone, but that's unlikely. Erik says Silverlight on Android is a big maybe: http://www.sparklingclient.com/silverlight-android-maybe/ (congrats Erik you were on the first page of the google search for silverlight and android).

I'm concerned that MS will ignore Android in favor of putting resources into Winphone7. The combination of Air + Android is very friendly to developers. Add in the momentum that Android has gained in the past 6 months plus the sheer numbers of handsets, well Air + Android seems like a valid choice. Winphone7 has zero handsets in the hands of consumers so far. Great development environment though, but not free (I've never used the free version of VS, so no idea there).

I'm ignoring the iphone completely here because Apple has very clearly said that if you don't code in Obj-C you won't get your app on the store.

Another thing that worries me a bit about Silverlight: I don't have any apps that I use that are in Silverlight. I noticed this the other day when I was using Balsamiq. Pandora, TweetDeck and Balsamiq are all great app experiences and are all made in Air. What's going on there? Is Silverlight just not catching the eye of independent developers?

Android

Let me begin by saying that I am not a fan of Android.  I've owned my Motorola Droid for 9 months.  I've had to reset it by taking out the battery at least half a dozen times.  I don't have many apps on it, I've tried to keep it clean.  I think it is a great phone for email and I love it much more than the blackberries I've had in the past.  The new 2.2 version of the OS is a much needed improvement.  The MS Exchange support is great.  The GPS Directions app is a must have.  With that said I hate my phone.

I've spent a while over-analyzing the Android marketplace.  I have a dozen or so free apps, but only one that I've actually purchased.  That was a very painful process.  The app that I paid for is psx4droid.  I have only one game that I've tried to play which is Final Fantasy VII.  The music was choppy, the video stuttered, the game was near unplayable.  That game definitely was pushing the device beyond what it could handle.  Maybe the emulator was poorly coded, or maybe my device just isn't that great.  I did get to a save point, so let me know next time you see me and I'll show you the experience I had.

My takeaway?  If you want to write high-performant games, don't develop for Android.

Silverlight - Windows Phone 7

I want to talk about my friend's observation that Silverlight is not catching the eyes of independent developers.  First let me say that I think his observation is right on.  We don't see a lot of free Silverlight OOB apps like we do with Adobe Air.  Maybe that's because the Silverlight guys are trying to make money instead of giving away great software for free.  Who knows, however I must concede that most of the Silverlight developers I know are capitalists.  Here's what I think.  I believe that many independent developers are jumping to develop for the marketplace rather than jumping to developer for a technology.  Trust me, once the Windows Phone 7 marketplace is live and the devices are in the hands of the consumers, then you'll be seeing thousands upon thousands of developers jumping to this new opportunity.

Apple and Objective-C

The last thought I have is about developing for "iDevices" and being forced to use Objective-C.  I used to rail against Objective-C as being total garbage, reasoning that I would never code in that cruft because my expertise was thankfully in the pristine world of C# and LINQ.  Why should I stoop to coding in a "lesser" language?  I was an arrogant prick (probably still am).  I must concede that Objective-C isn’t that bad.  The APIs aren’t that bad.  There are libraries out there like cocos2D that are pretty freaking amazing.  If you’ve got a CS background then you definitely don’t have anything to be scared about when learning this language and platform.  If you don’t have a CS background then it *may* be a bit tougher initially, but you’ll get over it and be just fine.

With that said there are still some philosophical questions you should still to ask yourself:

  • Is this a platform you *want* to develop for?
  • Are you willing to purchase the required hardware?  Note: both a Mac and either an iPad/iPhone/iPod Touch are required to develop apps.

And perhaps most importlantly:

  • Are you willing to strip away all your preconceptions and allow yourself to become a part of their culture?

Let's be honest, Apple users are primarily designers, at least this was the case in my background, and I'd wager that it's probably the case for most of you.  Traditionally developers haven’t gotten along well (or perhaps at all) with designers.  The whole Mac vs PC thing is more a reflection of the culture fight between developers and designers, then it is between the actual platforms.  If you're going to develop apps for that platform then you really need to understand the users of that platform.  Any anthropologist will tell you that the best way to understand a group of people is to integrate yourself in with them.  If culturally you can make this change then there is no reason why you shouldn't be developing for the Apple platform.  Let's be honest, that's where all the money is right now.  I mean, they have paid out over $1 billion dollars paid out to app developers.

tags: WP7 | Silverlight | Android | Objective-C