Skip navigation.
 
mlRe: Bypassing Interface Builder
FROM : Graham Cox
DATE : Thu May 15 01:26:12 2008

On 15 May 2008, at 6:05 am, Julius Guzy wrote:

> I have no idea how the rest of you gained your expertise but working 
> on my own, even with the help of books and the internet it has been 
> an absolute nightmare.


I imagine it can be hard without a structured approach to learning it 
- there's a lot there and without a guide it's impossible to know 
where to "jump in". I doubt that IB or Xcode is intuitive enough to 
guess.

I recommend Aaron Hillegasse's book "Cocoa Programming for Mac OS X" (http://www.amazon.com/Cocoa-Programming-Mac-OS-3rd/dp/0321503619/ref=pd_lpo_k2_dp_k2a_3_txt?pf_rd_p=304485601&pf_rd_s=lpo-top-stripe-2&pf_rd_t=201&pf_rd_i=0201726831&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=1BBG60H7AHDA15M6M1VJ
)

Personally I found using this book I could start writing useful code 
with Cocoa and IB after about a week (simple stuff, at that stage). 
That said, I did also attend a course at Apple Munich on Cocoa way 
back in 1997 not long after the NeXT merger, which involved running a 
very early version of the Yellow Box on Intel PCs - all a bit weird, 
but again, it was a structured introduction which was a good mix of 
actually using the tools like IB and lectures giving a glimpse of the 
potential. It was another 5 years before I looked at any of that 
again, so I'd forgotten the details but remembered some of the core 
concepts. Hillegass took me the rest of the way.

It might be worthwhile attending a course if you can find one - do 
Apple still run them? That can often cut through months of frustration 
trying to struggle on ones own.

> One problem intially was with IB itself which wanted me to drag from 
> controls to outlets etc. and which I found very hard to learn


You probably didn't mean what you wrote, but if you did, then you 
would have had trouble - IB doesn't *ever* want you to do this. You 
drag FROM outlet TO control. You drag FROM control TO target + action 
method. It's always FROM source TO destination.

> and books like Cocoa Programming for Mac OSX and Vermont recipes 
> were very hard going. Perhaps it was their verbosity, or the 
> learning by rote


I've already talked up this book, so I'm surprised you feel this way 
about it. It's not verbose, it's concise and clearly written. You can 
choose to learn by rote or you can take the underlying concepts, ideas 
and principles and use those to explore other things more appropriate 
to the tasks you want to accomplish. This sort of exploration may not 
work for everybody, but it did for me. It's a little like doing 
science - the book gives you some theory, a selection of scattered 
facts, but you extrapolate from that to your own situation, test your 
understanding by testing new "what if" cases and thus gradually expand 
the theory and your own understanding. I personally feel that this is 
the point of these books - they are not intended to give you a 
tutorial for all of Cocoa, they show you a few pertinent examples and 
expect you to use some induction to extend that to other parts they 
don't specifically cover. I would imagine that reading Hillegasse from 
cover to cover and typing in every example would be extremely dull 
indeed, and I doubt you'd really absorb all that much. Instead, have a 
goal of your own and use the book as a reference to explore certain 
concepts then use your own project to try and apply them. Sure you'll 
make lots of mistakes, and from time to time there will be 
frustration, but those moments when you extrapolate from principle A 
and B to guess that C and D will happen - AND IT DOES! - will make it 
all worthwhile ;-)


hth,


G.

Related mailsAuthorDate
mlBypassing Interface Builder colo May 14, 16:36
mlRe: Bypassing Interface Builder I. Savant May 14, 17:11
mlRe: Bypassing Interface Builder colo May 14, 17:35
mlRe: Bypassing Interface Builder I. Savant May 14, 17:43
mlRe: Bypassing Interface Builder Andy Lee May 14, 17:50
mlRe: Bypassing Interface Builder colo May 14, 17:53
mlRe: Bypassing Interface Builder I. Savant May 14, 17:58
mlRe: Bypassing Interface Builder David Wilson May 14, 17:59
mlRe: Bypassing Interface Builder I. Savant May 14, 18:01
mlRe: Bypassing Interface Builder I. Savant May 14, 18:05
mlRe: Bypassing Interface Builder Gregory Weston May 14, 18:06
mlRe: Bypassing Interface Builder glenn andreas May 14, 18:13
mlRe: Bypassing Interface Builder Wayne Packard May 14, 18:26
mlRe: Bypassing Interface Builder Andy Lee May 14, 18:37
mlRe: Bypassing Interface Builder Stefan Werner May 14, 18:46
mlRe: Bypassing Interface Builder Bill Bumgarner May 14, 19:00
mlRe: Bypassing Interface Builder Boyd Collier May 14, 19:34
mlRe: Bypassing Interface Builder colo May 14, 19:37
mlRe: Bypassing Interface Builder Julius Guzy May 14, 22:05
mlRe: Bypassing Interface Builder Torsten Curdt May 14, 22:49
mlRe: Bypassing Interface Builder colo May 15, 00:53
mlRe: Bypassing Interface Builder Graham Cox May 15, 01:26
mlRe: Bypassing Interface Builder Graham Cox May 15, 01:41
mlRe: Bypassing Interface Builder colo May 15, 02:14
mlRe: Bypassing Interface Builder Johnny Lundy May 15, 02:15
mlRe: Bypassing Interface Builder Graham Cox May 15, 02:29
mlRe: Bypassing Interface Builder I. Savant May 15, 02:43
mlRe: Bypassing Interface Builder Graham Cox May 15, 02:45
mlRe: Bypassing Interface Builder I. Savant May 15, 02:51
mlRe: Bypassing Interface Builder I. Savant May 15, 02:54
mlRe: Bypassing Interface Builder Andy Lee May 15, 03:02
mlRe: Bypassing Interface Builder Graham Cox May 15, 03:02
mlRe: Bypassing Interface Builder Andy Lee May 15, 03:06
mlRe: Bypassing Interface Builder I. Savant May 15, 03:07
mlRe: Bypassing Interface Builder Andy Lee May 15, 03:08
mlRe: Bypassing Interface Builder I. Savant May 15, 03:09
mlRe: Bypassing Interface Builder I. Savant May 15, 03:15
mlRe: Bypassing Interface Builder Andy Lee May 15, 03:29
mlRe: Bypassing Interface Builder Julius Guzy May 15, 03:35
mlRe: Bypassing Interface Builder I. Savant May 15, 03:37
mlRe: Bypassing Interface Builder Johnny Lundy May 15, 04:33
mlRe: Bypassing Interface Builder Julius Guzy May 15, 04:36
mlRe: Bypassing Interface Builder Johnny Lundy May 15, 04:54
mlRe: Bypassing Interface Builder Graham Cox May 15, 05:43
mlRe: Bypassing Interface Builder Uli Kusterer May 15, 07:50
mlRe: Bypassing Interface Builder Uli Kusterer May 15, 07:55
mlRe: Bypassing Interface Builder Uli Kusterer May 15, 08:15
mlcocoa mentoring (was Re: Bypassing Interface Builder) Torsten Curdt May 15, 15:36
mlRe: cocoa mentoring (was Re: Bypassing Interface Builder) Paul Bruneau May 15, 15:47
mlRe: cocoa mentoring (was Re: Bypassing Interface Builder) Uli Kusterer May 15, 16:08
mlcocoaheads frankfurt (was Re: cocoa mentoring) Torsten Curdt May 15, 16:44
mlRe: cocoa mentoring (was Re: Bypassing Interface Builder) Torsten Curdt May 15, 16:51
mlRe: Bypassing Interface Builder Andy Lee May 15, 17:11
mlRe: Bypassing Interface Builder Johnny Lundy May 15, 18:40
mlRe: cocoa mentoring (was Re: Bypassing Interface Builder) Dennis Munsie May 15, 19:34
mlRe: Bypassing Interface Builder Paul Sargent May 15, 20:07
mlRe: Bypassing Interface Builder Uli Kusterer May 15, 20:48
mlRe: Bypassing Interface Builder Shawn Erickson May 15, 22:20
mlRe: Bypassing Interface Builder Shawn Erickson May 15, 22:30
mlRe: Bypassing Interface Builder Johnny Lundy May 15, 22:32
mlRe: cocoa mentoring (was Re: Bypassing Interface Builder) Torsten Curdt May 15, 23:03