Baby step into Apple’s iPhone programming – Cocoa Touch

First steps into Apple technologies - iPhone programming, Cocoa Touch and Interface Builder I just started the most interesting lab of my life : Programming Apple’s iPhone using a MacBook with Cocoa Touch.It is held in Frauhover FIT, under Prof. Dr. Wolfgang Prinz and Dr. Wolfgang Gräther. In this lab we will start develop an iPhone application using Usability principles, Apple’s User interface Guides.

For me it’s the best opportunity to take a peak into the neighbor’s( Apple’s 🙂 ) garden. For long time I was just curious about their technology and ways to program. But I lacked the hardware, because you can develop for Mac and iPhone only in MacBooks, Macs and obviously need an iPhone for testing.

So I want to share my experience as a newbie into Apple stuff.

First the visual : gorgeous. The MacBook that I work on is absolutely gorgeous. Thin, slick body and crisp screen. The first cons that I found is the keyboard, which is quite mysterious : you can’t find neither curly braces nor right angle braces on the first look. Quite a big problem for a programmer, isn’t it ? Surprise: they’re on 56 the angled braces [] and on 89 the curly braces {}. Especially for beginners into Cocoa programmers this is important, because it uses plenty of right brackets. The curly ones are used, as usual in C derived languages, for functions,class, interfaces bodies and the right angled ones have a different purpose : they call object’s functions like [object function]. Lots of knowledge in the head instead of knowledge in the world, as my teacher Prof. Dr. Jan Borchers would say. He teaches Designing Interactive Systems in the Human Computer Interface group of RWTH Aachen.

Another thing that I find different from PCs is the double click. Since MacBook has a  multi touch pad, they can afford to have only a single press. The right click is triggered by the touch of the second finger (more like if you left click and then press the right click button). Interesting, isn’t it?

Also I can mention the FN key which is placed in the place of the regular CTRL Microsoft-compatible keyboard. Until I got used to it, it was quite a pain because the text selecting is quite hard because involves a lot of CTRL + ALT + ArrowKeys. And since CTRL and ALT are shifted by the fn key…

Second, the development environment: they claim that’s an IDE, but frankly I don’t agree with it. First of all, the Designer of the UserInterface ( called Interface Builder ) is completely separated from the code writing tool, called Xcode. Too bad that there’s not a big interaction between them. You have to declare link visual elements with their code implementation instead of double clicking on a textbox and directly go to TextBoxTextChange procedure already created for you. First you have to declare the variables and functions into .H file, then declare them in the same file, then declare ( syntesize ) them again in .M file and finally implement functions. And, wait, there’s more : you have to connect the functions exposed by code to UI Interface. As a test, I tried to create the Hello world presented on Apple site. What’ been done on Visual Studio in 5 minutes, took me like 2 hours of understanding the instructions, write the code, debug the code. I really can’t believe : even Hello world had to be debugged.

Bottom line, interesting and challenging. I really hope that only the first steps are a little bit harder and later the Apple’s known usability and reliability will prevail.