Useful tech note from Apple about navigating some of the murkier waters of concurrency using NSOperation. Contains this great explanation of how GCD relates to NSOperation:
… these two technologies complement each other nicely. GCD is a low-level API that gives you the flexibility to structure your code in a variety of different ways. In contrast, NSOperation provides you with a default structure that you can use for your asynchronous code. If you’re looking for an existing, well-defined structure that’s perfectly tailored for Cocoa applications, use NSOperation. If you’re looking to create your own structure that exactly matches your problem space, use GCD.
link to this
Excellent advice from Numar Faraz:
Life is pretty awesome when you live it outside.
Four weeks ago I had the privilege of becoming a father to a beautiful little girl named Holly. Awesome indeed.
This blog lives on, but apologies if my updates continue to be erratic as ever…
link to this
On trying to merge two git branches, I’ve often found Xcode 4 displays “Branches not found” in the Merge dialog, despite the Organiser clearly recognising multiple branches for the repo.
It seems the problem occurs because Xcode believes the working copy has uncommitted changes (even though the Commit dialog clearly shows there’s nothing to commit). The reason is that Xcode 4 doesn’t instruct git to ignore system invisible files, specifically .DS_Store (see rdar://8951416).
Turns out the workaround isn’t hard, just create a global excludes file:
git config --global core.excludesfile ~/.gitignore
… and ensure .DS_Store is ignored:
echo .DS_Store >> ~/.gitignore
Xcode will then allow you to merge branches or perform any other operation that was being prevented because it incorrectly thought there was something to commit.
Michael Tyson’s TPMultiLayoutViewController seamlessly changes nibs according to the device’s orientation.
link to this
Some useful tips XCode and Objective-C tips from Brent Simmons. NSCache (introduced in iOS4) was new to me.
link to this
Push, pull, synch (push and pull simultaneously), one-click cloning, branching, commit histories… it’s all there. Not a complete replacement for the command line, but a mighty fine effort at a git GUI. Even better: it’s free.
link to this
The best advice I’ve ever read on overcoming procrastination.
link to this
… a collection of 43 high quality design patterns for you to use freely. New patterns added weekly.
Love the preview button. Intended for web devs but some useful textures for App design.
link to this
Jonah Williams with a brief overview of how to use console logging with breakpoints in Xcode 4. Like most of the commenters, not sure this scales for logging in a complex codebase, but it’s a mighty useful tip.
link to this
When designer Petter Silfver and engineer Sebastian Nyström were beaten in creating an Alarm app that played music from Spotify, Petter decided to publish their design artifacts and how they went about producing them. An interesting look at the app design process of two seasoned iOS professionals, and the lessons they learnt along the way.
link to this