To date, we’ve covered most of the basics of using GCD. This time we’ll get a bit fancier and use it to implement synchronization without traditional locks. [click to continue…]


A Watchdog Timer in GCD

July 10, 2010

A good way to help track down performance issues is through the use of a watchdog timer. They help you by pointing out the places in your code that are taking longer than they should. When the watchdog fires, it can do whatever action is appropriate for your application. I’m sure all iOS developers are […]

Read the full article →

A Simple Job Queue With Grand Central Dispatch

June 27, 2010

In my last two posts, we talked about the basics of GCD and then delved into blocks. Now we’re going to start learning how to replace your old threading code with GCD. For this post, we’ll discuss how to create a simple sequential job queue using dispatch_async and friends.

Read the full article →

Being a Blockhead

June 20, 2010

Last time I talked about asynchronous behavior via Grand Central Dispatch. One of the core features that makes this all possible is blocks. I thought I’d take a step back this time and just talk about blocks themselves and how they can be used by your code.

Read the full article →

Threading is Dead. Long Live Threading!

June 12, 2010

I stated in a past post that threads are evil. I still stand by that statement. Adding threads to an application has historically been fraught with issues. Many stem from people not quite understanding all of the situations can arise, etc. Oh sure, you might know what a deadlock is, but do you know all […]

Read the full article →

If Only I Could Write Like This

May 29, 2010

I ran across this quote from Oliver Reichenstein, and it embodies my thinking completely, though I’ve never been able to put it into such words. We should use original tools to create iPad apps, not because Steve Jobs said so, but because these tools create products with flesh and bone, that is: an understanding of […]

Read the full article →

Home Again

September 17, 2009

Over the past 9 months I’ve been working on iTunes 9. Which shipped 9/9/9. Weird. As of this week, however, I’m now working in the iPhone group, back in my old stomping ground of building 2. It’s so weird to be back there. It’s been reconfigured a bit since I was there last, but otherwise, […]

Read the full article →

Tweetsville Source Back Home

September 12, 2009

A few weeks ago, I finally met with the folks at Tapulous to discuss Tweetsville and as of that meeting, I’ve got control of the source once again. The existing app will remain in the store, but the source code is mine to do what I wish. At this point, I’ve been outdone over and […]

Read the full article →

My Journey To Tweetsville

November 15, 2008

Now that Tweetsville is out there, I thought I’d reflect a bit about where it came from and how it came to be. When the app store opened, I downloaded several Twitter clients. Each was interesting in their own right, but I couldn’t use any of them because of one reason: the scrolling performance. I […]

Read the full article →

Back at Apple

November 10, 2008

In my last Tweetsville Update, I mentioned that there was something that might prevent me from working on Tweetsville going forward, despite the fact I just finished it. Well, that thing has finally materialized so I can finally say that I’m officially back at Apple starting today. It’s been weeks in the making, but it […]

Read the full article →