Thursday, 21 June 2012

Learn Something New - XCode Initial Impressions

I'm going to take a leaf out of some of my favourite blogger's books and try and learn something new, something I haven't done for a while.  And considering that I haven't found a good reason to blog for a while I'll post about it here.  I bought my first Mac today, a proud moment for me, a long time dedicated windows user.  Now I find myself in a new environment where there's lots of stuff to learn, and new things to uncover, particularly in the development space.  There's XCode, application development, virtual machines so I can still do windows stuff and some new windows development I'd like to learn like ASP.NET MVC 4 and Web API.  So this is the first in my blogs about the new stuff I'm going to try and learn.

XCode - Initial Impressions

My first impression of XCode takes me back to the days of C++ and windows forms and MFC.  Probably just because of the C++ style interface.  Drag and drop controls feel pretty good but there's large chunks of code that aren't immediately obvious what they do for a beginner.  At the time of writing I've only gone through the hello wold tutorial

API

I think the API is the part the reminds me of MFC development so much.  Variables and interfaces are named in such a way that it's not clear what their use is at the get go.  The NS prefix seems prevalent and after the initial tutorial it seems like a redundant prefix.  I don't understand the square bracket syntax yet, but at a glance it looks remarkably complicated for a modern development tool.

Interface

The interface is good.  For a basic test application it's very straight forward, simple and easy to navigate.  On a macbook air it runs nice and quick.  Not much else to say at this point because I haven't learned how to use it enough.

Debugging

Pretty straight forward.  Breakpoints and stepping through code is easy and similar to the visual studio I'm used to.  It's quick and pretty straight forward, and unusually has a very iTunes feel to it due to the interface, play button, feedback screen.  It's not really a negative but it makes you feel like you're developing in a sandpit with all your toys rather than as a serious developer.

Ok so it's not much of an initial review, but hey I've only done the initial tutorial so far.