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.