iOS Development Training and Tutorials

Thanks to everyone who turned out for the iPhone presentation Chris Bartling and I gave at last night’s Jam Session! We had a great time talking about a fun topic. I hope you enjoyed it.

There were some questions about Apple’s approval process. I mentioned that I just submitted an app this past Saturday and said I didn’t know how soon it would be before it was given the thumbs up. I wish I had checked my email during the break as it was approved last night. That’s not too bad a turnaround time. Thanks Apple!

Thanks again and I hope I’ll see some of you at next month’s CocoaHeads.

I would really like to thank all of you who attended the inaugural CocoaHeads meeting last Thursday. I couldn’t have been happier with the turnout and participation from everyone. It was also nice to finally meet many of you with whom I’ve traded emails over the past couple of months.

We had a great mix of people at the first meeting ranging from experienced Cocoa, NeXT, and Mac OS developers to those experienced with other languages/platforms, but just starting out with Cocoa and CocoaTouch, to those just starting their journey into software development. This should make for a very interesting group!

Andy Atkinson started polling at the end of the meeting for what technical topics people would like to see at upcoming meetings. I think the final ones we settled on were:

Intro to iPhone Development

Overview of RubyCocoa

Unit Testing with OCUnit

NSFoundation Framework

Intro to CoreGraphics

Overview of Instruments

Some additional ones I would personally like to see covered (even if I’m the one covering them) are overviews of Core Data and Core Animation.
Let me know if there are any others that I missed and should be tracking.

I’d like to thank Bill Heyman and Damon Allison for showing us some very cool demos of what they are doing over at CodeMorphic. Good luck guys and keep ‘em coming! If anyone else would be interested in demoing their products or projects, just let me know and I’ll find you a slot.

I’d also like to thank everyone at Synergy Information Services. Their facilities are great and they also have a larger room available should we need it. We all also greatly appreciated the pizza and soda!

Vlad will be posting the Getting Started with Cocoa presentation and sample code to the website. Keep an eye out at Synergy’s CocoaHeads Page over the next few days if you’d like to download that content.

BTW, if you are interested in understanding the history of Cocoa and Mac OS X, I’d recommend checking out David Shaw’s website. He has a wealth of information on NeXT, Rhapsody, and Apple that many of you would find very interesting. Great job David!

As I mentioned the other night I’ll be giving a presentation on Object-C 2.0 at the July meeting. This will be a much more detailed look at ObjC which will allow us to dig into its core syntax and features.

I hope to see you all again at the next CocoaHeads meeting on 7/10 @ 6pm.

Over the weekend, I finished reading the 3rd edition of Cocoa Programming for Mac OS X by Aaron Hillegass. The previous edition had long been considered the best introduction to the topic, but it had grown rather out of date given the major changes introduced in the Leopard release of OS X. Thankfully, the 3rd edition has been completely revised to reflect the current state of Mac OS X development.

Cocoa Programming for Mac OS X is an introductory guide to programming on the Mac platform. It provides broad coverage of the core Mac programming concepts you’ll need to write real world applications, but is not intended to be a definitive reference on the subject. Aaron’s presentation of the material is excellent and the code examples really help explain the concepts being covered.

The organization of the book has changed considerably since the last release. Several less-relevant and irrelevant chapters have been dropped and replaced with chapters covering Core Data, Core Animation, web services, and garbage collection. Additionally, the existing content and examples have been significantly revised giving this release the feel of a whole new book.

I would highly recommend this title to anyone interested in Mac development. Even if you own the previous edition, I think you’ll find the new and revised content well worth the price.

Over the past few months I’ve been spending a lot my free time learning Objective-C and Cocoa. Although it’s been fun learning a new language and framework, it has been somewhat of an uphill climb. Objective-C was the easy part. If you have some familiarity with C and also some experience with an OO language like Java, C#, or C++, you’ll pick it up within a week or two. Cocoa, on the other hand, can take quite a bit more time to wrap your head around. It’s a very large and robust framework and understanding how to use its constituent parts to form a whole requires a fairly significant investment of time and effort.

One of the biggest challenges to learning Cocoa is the lack of up-to-date books. There are several on the market, but most are woefully outdated. The language, development tools, and available frameworks and APIs have changed considerably since these books were written which can present an obstacle to learning from these older references. Thankfully, there are some new and updated titles coming out this year from Aaron Hillegass, Bill Dudney, and Erik Buck. I’ve got ‘em all on pre-order!

Although the book market may be a bit lacking at the moment that doesn’t mean there aren’t useful resources to be found. In fact, you’ll find quite the opposite is true. Apple’s Developer Connection posts many references, guides, and sample code at its site. There are also a number of useful third-party resources I visit regularly including MacDevNet, CocoaDev, CocoaBuilder, and Scott Stevenson’s excellent Cocoa Dev Central. Additionally, you’ll find dozens of great blogs and articles in various places. One of my new favorite Mac dev blogs is Marcus S. Zarra’s and Matt Long’s Cocoa Is My Girlfriend. The content is great and the name is brilliant!

The problem isn’t that there’s not enough information to be found. The problem is how do you make sense of it all and more importantly, how do you use this information to build a real application?

To help in this regard I’m starting a new site called Operation: Cocoa. Its purpose will be to provide the aspiring Cocoa developer with a path through the maze. Although it will likely be a few months before the site is up and running, I’m already working on content and will be hosting it on this site in the interim. The first tutorial entitled “Hello Cocoa” will be posted in the next week or two.

I’m very interested to hear any comments or opinions you have about this idea: what you think about the site name, what kind of content would you like to see, etc.

For the past few months I’ve been spending a considerable amount of my free time learning Objective-C and Cocoa. Apple’s Leopard release has introduced so many new and interesting developer technologies that I decided it was finally time to dive in and learn to write code for my favorite platform.

One of the new Leopard APIs I’ve been excited to learn is called Core Animation (CA). CA is a new Cocoa framework providing you the ability to create UIs with rich animations and compositions by using with a simple, consistent programming model. This allows you to easily create visual effects for your applications that would be impractical, if not downright impossible, to do on other platforms.

One of the challenges to learning CA (especially given my n00b status) is the lack of books and tutorials on the topic. So, I was pleasantly surprised to receive an email from the Pragmatic Programmer guys introducing Bill Dudney’s new book Core Animation for OS X. It provides in-depth coverage of all the key concepts including animations, filtering, layering, and 3D effects. I’ve just started reading it, but it looks great so far. I’ll be sure to write a full review when I complete it.

The book is currently available in “beta” PDF form with the final print version available in July. You can find out more about the book and get your own copy at its website.

I’d like to say thanks to everyone who attended my Spring 2.5 presentation at last week’s TCJUG meeting. We had another good turnout, which is always nice to see. Jeff Jensen at Intertech is always a great host and I had a fun time presenting. I hope the info was useful to you. I’ve attached copies of the presentation and sample code for your reference.