Wednesday, March 26, 2008
So I am trying my hand at writing code on the Mac for the first time ever.  My wife (an artist, and therefore Mac owner) has been kind enough to lend me her laptop so that I might install Xcode and the iPhone SDK upon it.  Laden with this new power, I now dive into documentation and the Xcode development environment.

I've only been at it for a single day, but so far I am a fish out of water.  I find the tools to be very lacking compared to Visual Studio.  I do realize this is likely to my lack of understanding of the tools, but there isn't intelli-sense  for the Xcode SDK.  This feature for the .NET envoironment is a huge time saver.  I'm sure there is a coca equivelant, but I have yet to find it.  I don't know all the shortcuts yet so it's taking me a lot longer to write code.  The largest obstacle of course is the fact that everything is based on BSD which I haven't used since college.  The other side of the fence is a fascinating and difficult place to navigate.  All of those shinny candy buttons compell me to forge on!

I am currently trying to port some file IO code written by my friend Jacob Repp to do the same thing in OS X.  Jacob is an excellent engineer and most of his code is already entirely portable, so by the end of this I'm hoping to have a how to guide for writing OS X equivelant file IO.  Surprisingly I couldn't find much on porting in this direction on the web.  There's plenty in each column, but not much for going between them.

I just found this in the Xcode development guide.  This highlights the context in which Apple does software development.  Notice that revenue stream is not in this list.

  • What do you expect to be the user’s motivation for using the application?
  • What do you intend to be the user’s experience while using the application?
  • What is the goal or focus of your application?
  • How does your application organize and display the information people care about? Is there a natural organization associated with the main task of the application?

These are all afterthoughts in most development cycles.  The business objective is usually much higher up, which is important as you need money to pay developers.  However these human questions will lead to software that is simply more enjoyable to use.

Code | Mac