3D
Picture of Mike Rundle I'm Mike Rundle, a designer & developer living in Raleigh, NC.
Read more...

Experiences As A New Mac Developer

Posted at 12:21PM on a Monday in January — 9 Comments

It's an interesting experience, diving head-first into the unknown, trying to soak up all the information you possibly can on the way down into the abyss of Mac application development. Everything is new, most of it is documented, and the rest can be learned by reading as much as possible and asking for help when you're lost.

I'm new to Objective-C, new to Cocoa, but have been a hardcore Mac aficionado since 1996 when I got my first Mac — a Performa 6200 — so I have "Apple-ness" running through my veins which is extremely helpful. Creating a beautiful and successful application for the Mac usually means that it looks as if the engineers at Apple could have created something similar, so the expectations are extremely high as far as interface polish is concerned. I'm learning just how much effort goes into a beautiful Cocoa app, and it sure is a lot.

As far as the development process is concerned, it's a big crap shoot. I worked on piecing together the user interface components early in the development process so I could get a better feel for how the app behaves, but making the interface actually function can't happen until X is written, which is dependent upon Y code, which I'm confused about until I do an hour or so of Googling, so it's a chicken and the egg problem. Fortunately, I've been working hard on a lot of the application glue code so that in the next few days I'll be hooking up the interface and giving things some real-world usage.

I've been coding for a long time, but have never really learned C, so initially writing Objective-C was difficult because not only did I have to learn ObjC's syntax, I also had to give myself a crash course on pointers, header files and memory management at the same time. After being absorbed in the Cocoa development world for a few months, I've realized that reading other people's code is the single greatest way for me to get acclimated to "how things are" when developing for the Mac. How to structure your classes, how to load NIBs, the best way to store user data, all these things I learned by pouring over open source Cocoa code I've found online or in Apple's example applications. Seeing how other people have conquered similar problems is probably the best shot in the arm out there.

Finding Other Developers

One thing that has made a huge impact in my ability to learn Cocoa is having a group of people I know can potentially help me if I get too confused along the way. Here's a short list of people who have helped tremendously:

So how did I find all these people? Mainly through being a Mac application connoisseur — downloading everything that comes out — and then finding the brilliant people that created them. Twitter has been extremely helpful, in fact I follow every one of those people on Twitter so I can try to absorb their offhand tips and tricks. Emailing people is good too — you'd be surprised how helpful and friendly people are if you just send them a nice email. I've always made an effort to email people out of the blue and commend them on the work they've done, and my Mac development experience has been no different.

So What Am I Working On?

I don't really believe in nebulous descriptions of work-in-progress, written to pique curiosity. I'm working on my first Mac application, an application that I've had in my head (in some form or another) since 2005, and I'm building it mainly to fill my own needs, but I'm hoping that it fills the needs of others, too. Like most Mac applications, you'll be able to download and use it for free, but additional features/functionality will need to be paid for.

I'm working hard on it, and details will surely be coming soon, but for now I think I should shut my mouth and get back to work! Nothing is worse than vaporware.

Categories: Mac OS X

No Pings

Ping URL: http://flyosity.com/cgi-bin/mt/mt-tb.cgi/10

9 Comments

angelillo | January 5, 2009 3:56 PM | Reply

Good luck in your travel!
The first time I told my girlfriend "I'm a brand-new Mac Developer", she started laughing at me (I studied Economic Science, and I work in a bank), but this reinforced me. Now I show her my programs (not good programs, they just work and the design is poor), and she loves them.
The more you learn about Objective-C, the more you enjoy programming.
I wish you the best!
Angelillo, from Spain.

Ameir Al-Zoubi | January 5, 2009 5:03 PM | Reply

Hey thanks for the shout out man. One of the best things about developing Mac software is the great community around it. From the users to other developers, you just can't help but enjoy making mac apps.

Matt Patenaude | January 14, 2009 12:45 AM | Reply

Gotta' agree with Ameir, the Mac development community is alive and well. But now I have to start posting more tips and tricks on Twitter. ;)

Anthony | January 15, 2009 12:16 PM | Reply

Great post Mike. Being a new developer myself - I just released my first app last year - I've found the "crap shoot", "chicken and egg" and "hour of Googling" aspects you mentioned to be particularly true.

I was wondering, do you know of any local Cocoa groups, like a Cocoaheads or NSCoder Night kind of thing? I'm in Greensboro/High Point, which is a little ways away from you and Ameir but I'd be willing to travel a bit once in awhile if there was ever any kind of developer meetup.

Scott Newman | January 21, 2009 11:03 AM | Reply

Glad to hear I'm not alone in my difficulties! I recently started Cocoa programming after years of high-level "P" languages (Python, Perl, and PHP) and it's been very challenging.

Now that I finally start to "get" Interface Builder, it's starting to make more sense and I'm not as nervous that I'm going to put myself into a programming hole that I can't back out of.

To be honest, I had to finally take Aaron Hillegass' Cocoa class at the Big Nerd Ranch in Atlanta before I was able to write anything that worked. It was expensive, but totally worth it. I sheepishly admit that all attempts to learn it on my own were failures.

If anyone knows of some good "I"m new to Cocoa" forums, I'd love to hear about it. Nothing is worse than spinning your wheels for hours on a problem that someone else might solve in a minute.

-- Scott


Patrick Proctor | February 9, 2009 3:11 PM | Reply

This is great Mike. I am just starting down the path of Cocoa development myself. I appreciate you dropping a few links to people who helped you in your journey. I am planning on getting together with a classmate of mine in my web-programming class to build an iPhone app of our own.

I wish you the best of luck down this new path!

Graphics Designer | February 18, 2009 2:53 AM | Reply

I was trying Mac application development on my own, nothing relly complicated, I must say. And I have to admit, that putting anything together there is very, very hard and long process. I admire all these who can do it quick and properly.

Todd Ditchendorf | March 3, 2009 10:06 PM | Reply

Wow Mike, I'm definitely honored to be included in your list above. I'm keeping excellent company! I'm really looking forward to seeing what you crank out.

Oh... and I applaud you for showing restraint when it comes to 'product teaser posts'. Although these can occasionally be pulled off, IMHO they're usually a bad idea, and don't come across well.

That said... I've caught a few glimpses of what I believe may be your first app, and it *definitely* looks promising!

Jerry W Barrington | March 4, 2009 5:58 AM | Reply

I too am learning Cocoa. I have a BA in MIS, but never got a job in the field and the degree is 21 years old. I have a nebulous idea for a Civ-type game, my favorite category. Unfortunately, there isn't much development for the genre. (Yes, I know about real-time strategy games, but I'm more turn-based myself.)

Sadly, when I got my degree, C was just achieving status, and I wasn't recommended to get it. So in the early 90's, I taught myself on the Amiga. I was just getting into it and was a registered developer, when I got married an priorities changed. I've dabbled since, but I really am rusty (and 43). So Cocoa/Obj-C is a bit of a struggle.

Still, I'm reading a lot of good books and working tutorials. Maybe someday I'll be to the point of actually starting up an open source project for my game idea. :)

Leave A Comment