First Thoughts on iPhone SDK

Date April 6, 2008

I just spent a few hours working on a small iPhone app using the Beta 2 iPhone SDK and thought I would share my my initial thoughts. Keep in mind that this is the first time I’ve tried programming for OS X period and I spend 99% of my time programming in C# with Microsoft’s Visual Studio.

Xcode itself is not even comparable to Visual Studio (I realize VS isn’t free, but even the free Express Editions are much, MUCH better than Xcode). I found out how to turn on the autocomplete functionality in Xcode, but it’s so unhelpful that I may turn it back off since it seems to get in the way more than it helps. I’m so accustomed to intellisense in VS - if you know nothing about a library, you can use intellisense to get up and running in a flash (usually), but not in Xcode. In Xcode, if you don’t know the frameworks you’re using in and out, prepare to be checking out Safari constantly. The whole Interface Builder application doesn’t really make sense to me yet, so I won’t really comment on it yet. The error messages from Xcode have been fairly useful so far, so that’s a good thing. The editor is decent in that it color codes syntax for you and it does have the ability to jump directly to specific functions from a menu (very similar to VS on this one).

Perhaps the bigger issue for people coming from a non-OS X background is the knowledge of all of the frameworks. It’s not nearly as expansive as the .NET framework, but it’s quite different - so you’re not going to be able to just pick up the frameworks and hit the ground running. The documentation on Apple’s dev center isn’t terrible…it takes a little bit to find what you need, but it’s usually there somewhere. The naming convention does make it pretty clear what you’re doing when calling a method, however, this is realllllllly irritating without intellisense. I’m still trying to figure out which classes do what and how to structure the View/Controllers in my application. The sample apps are really helping out there. It does seem like I have to write quite a bit of code for even fairly basic stuff. I just feel really unproductive at this point..I know that’s mostly the learning curve that I’m working through, but I would have thought Apple would have a better developer toolset in this day and age. I don’t think the Objective-C language will be that hard to pickup since it seems pretty logical once you get the syntax for methods and method calls. The frameworks are going to take some time and I’m sure things will still be changing between now and June, but hopefully I’ll get this stuff figured out soon so I can have my little app up and running in the simulator.

Share: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Live
  • Pownce
  • Reddit
  • StumbleUpon

One Response to “First Thoughts on iPhone SDK”

  1. Nick said:

    Amen to that. I’m a C++ programmer (for last 4 years) and have used Visual Studio for a long time. The language itself takes a *bit* of getting used to but that doesn’t seem like the problem.

    The problem is that I have no idea HOW to do anything. What classes are called, how to use the classes. Everything seems like you have to override in hundreds of custom h/m files. It all just seems to be the opposite way to doing things in C++ with Windows libraries.

    For example, I’m used to creating a Window type object and then calling functions on that object to add things and manipulate it. Instead it seems its all based on callback type class overriding which just sucks where you have to subclass and override the functions that add data. If I want to use a library, it should have objects which do their own stuff and I call functions to add *my* stuff to it and then it just handles it all.

    I should be able to go:

    tblView = [[UITableViewController alloc] init];
    [window addSubView:[tblView view]];

    and then when I want to add things just go:

    [tblView addCell:@"Eggs"];
    [tvlView addCell:@"Potatoes"];

    But instead, theres a bunch of cellAtRowOfIndexPath obscure functions that I have to implement and return cell contents and whatnot. Then theres a function override which you have to return the amount of objects you apparently have in your table.

    Ugh, and not too mention that I can’t seemingly get far into Apple’s iPhone Dev center without the authorisation login from just looping endlessly.

    It all assumes you have used XCode, Interface Builder and whatnot from the beginning.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>