Tuesday, September 8, 2009
Mac OS X has a number of concurrency mechanisms, and that increases with Snow Leopard. In addition to run loops, threads (both Cocoa and POSIX) and operations, Snow Leopard adds **Grand Central Dispatch** (GCD), a very lightweight way to represent units of work and the style of concurrency they need, and have the system figure […]
Sunday, September 6, 2009
Last week, Mac OS X 10.6 Snow Leopard was released! Snow Leopard represents a lot of hard work by a lot of folks at Apple and at seeded third-party developers, and it really shows. Now that it’s shipped, I can actually talk about some of the especially cool things this release has for developers.
The Big Nerd Ranch weblog has a new post about Objective-C 2.0 dot notation. They advocate never using it and they’re completely wrong. Given my reaction on Twitter, several people have asked me to write a more in-depth rebuttal. I’ve already addressed when and why you should use Objective-C 2.0 properties and dot notation in […]
Various pieces of Mac OS X and iPhone documentation have said for quite a while that the “preferred” method is now to use ISO-639-1 (two-letter) or ISO-639-2 (three-letter) language codes codes for localization purposes. Out of the box, Xcode’s project templates still use “English” rather than “en” as their default localization. How can you use […]
In the past, I’ve talked about ways to easily write unit tests for Cocoa applications, including [tests for user interfaces using target-action][1] and [tests for interfaces using Cocoa bindings][2]. There are some strategies you can apply to make writing tests for Cocoa code even easier, though. They’re just straightforward object-oriented programming, but sometimes we can […]
Also filed in
|
Tagged agile development, Cocoa, Cocoa bindings, human interface design, Interface Builder, Objective-C, patterns, test-driven development, unit testing, user interface testing, Xcode
|
I’ve occasionally been asked about the appropriate form for properties representing to-many relationships in Objective-C 2.0. Let’s start with the example of a recipe and its ingredients, represented by instances of the Recipe and Ingredient classes. @interface Recipe : NSObject { @private NSMutableSet *_ingredients; } @property (copy) NSSet *ingredients; @end This is a pretty straightforward […]
I’ll preface this post with the standard advice: *Don’t create singletons if you don’t absolutely have to.* In general, if you’re creating a global “manager” object of some sort, you’re doing something wrong. That said, there’s still occasionally a reason to have such a global singleton, such as a “default something.” The sample code in […]
I listened to a recent episode of the [cocoaFusion:][1] podcast about properties and dot notation today. There were a few interesting points brought up, but I felt a couple of the most important reasons to use `@property` declarations and dot notation weren’t addressed. The biggest reason I see to use a different notation for both […]
As of today, I’ve been with Apple for five years, working on developer tools. It’s been great and I look forward to many more years of improving the experience for people creating great Mac and iPhone software!
In a few weeks, it will be **four years** since Mac OS X 10.4 Tiger was first released. That was the first release to include Core Data. It will also be about **one and a half years** since Mac OS X 10.5 Leopard was released, with significant enhancements to the Core Data API. It’s pretty […]