Tutorials - Scott Sherwood

As any developer knows, it’s critical to give due consideration to your tools, making sure you’re using the most approriate tool for the job at hand. When building interfaces for iOS or OS X there are currently three tools at your disposal: nib files, storyboards and good ol’ vanilla Objective-C. In this article I put nib files head-to-head with storyboards, highlighting the advantages and disadvantages of each.

With iOS 5, Storyboards represent a significant change to how we, as developers, construct our user interfaces using Interface Builder. So far my experience of Storyboards has been extremely positive however, resources are thin on the ground and with this post I hope to pass on some of my initial experiences. For a walk through of some of the basics and common pitfalls check out my YouTube video. I have also recently created a practical example around todo lists with a backend system and a full explanation of how to use Storyboards in a working application please check it out here.

This tutorial focuses on creating blueprint style illustrations. The subject of the tutorial is a rocket and its planned journey to the moon. You can watch the making of this tutorial on YouTube and get more of the detail involved in creating this illustration.

Over recent versions there have been lots of new Objective-C literals, some I use more readily than others. However, I often forget some of the new ones and this post is as much about updating anyone who is not using them as much as it is to remind myself what each of them are.

First of all what is an “Objective-C Literal”? An Objective-C Literal is a piece of code that references a specific Cocoa object allocating the necessary memory if needed. The most commonly known and widest use literal is the @ used in front of a C-string literal to create an NSString.

This is the first part in a new series of tutorials for iOS 6. This tutorial takes a simple overview of the new UICollectionViewController and replicates the photo view in the built in iPhone camera app. If you are familiar with how to use a UITableView then this tutorial should be a breeze so lets get started.

Recently I have seen people use tab bars that, when in landscape mode, run down the side of the iPad screen. I really like this as it takes up less screen space in general, but also that some of them are smaller in width than Apples own UITabBar, which at 59px I feel is larger than necessary. So in this tutorial I am going to show you how to create your own custom TabBar controller for managing multiple tabs. The entire source for this article can be downloaded from CustomTabBarExample. In response to this stack overflow question here is the DemoTabBar4.0. You can see the full video of this tutorial on YouTube.

Earlier today Matt Gemmell posted a really good article explaining hashing and how it can be used for privacy. The basic premise of the article is that data need not be stored in its raw form to enable comparisons to be made. This is a direct response to the recent discovery that the Path social networking app uploads the user’s entire iPhone address book to its servers.

I felt a little demonstration that you can do yourself might help illustrate Matt’s point and give people a better understanding of what he is talking about. As Matt mentioned there are many different hashing algorithms however the one most used (or at least the one I use the most) is called Message Digest 5 (md5 for short). You can read more about md5 here however if you accept that hashing algorithms change personal information into “Gibberish” then you do not need to understand the details of the algorithm to see this in practice.

Having battled against the iOS API to theme my applications I was extremely pleased when iOS 5 introduced UIAppearance, allowing individual user interface elements or entire classes of elements to be themed in a particular way. Recently one of our apps required support for iOS 4.3 so I had to go back to my previous (more painful) method. I thought it might be useful to document both these methods to help anyone who might face a similar pain so hope this helps.

After a conversation I had on stack overflow I realised that, while my previous tutorial on storyboards has been very useful to many in the community, a real world example was what was really required to help people build a deeper understanding of the concept.