Objective-C

Tips for Getting Started with iOS

Jul 2, 2013

I’ve had quite a few developers ask me for tips on getting started with iOS. The following are the tips and resources I wish I knew about before starting my own journey with iOS.

Read More →

C99 Initializer Syntax in Objective C

May 8, 2013

This week a colleague sent me a snippet of Objective-C syntax I had never seen before.

Read More →

The Problem with Interface Builder

Apr 29, 2013

Most iOS developers seem to have a love-hate relationship with Interface Builder: they will either use Interface Builder for everything or completely avoid it and do everything in code.

Read More →

Using Multiple ViewControllers on a Single Screen in iOS

Apr 26, 2013

In the world of iOS we usually stick with a single ViewController per screen. In fact, this is so common that many developers are not even aware that it’s possible to use more than one ViewController on a single screen. I’m going to run through a quick example and then highlight some of the benefits and gotchas of using multiple ViewControllers.

Read More →

Record and Playback Audio in iOS

Apr 25, 2013

On my last iPad project we needed the ability to record a sound clip and then play it back to the user with some visualizations. This is relatively easy with AVFoundation, but – as with many things in iOS – it takes quite a bit of boilerplate code to get it working.

Read More →

Thoughts on Parse

Apr 17, 2013

Parse is a cloud-based storage framework for iOS applications. Parse supplies an SDK for your application that allows you to easily push and pull data from the cloud-based platform that they provide for you – it’s all included. With any kind of persistence on a mobile device comes the obvious problem of offline support – Parse solves this problem with delayed syncing and query caching.

Read More →

Literals in Objective C

Mar 25, 2013

Objective C is not a pure Object-Orientated language, which means you often need to convert between primitive/basic types (like char or int) and objects (like NSValue or NSNumber). This is usually rather tedious and results in large amounts of boilerplate code.

Read More →

Extending classes in Objective C using Categories

Mar 11, 2013

Yesterday I had to perform the simple task of shuffling an array in Objective C. There is unfortunately no built-in method to do this (which is a bit strange) which meant I really wanted a way to add a shuffle method to the NSArray class. In C# I would use an extension method to do this, in Ruby I would use Open Classes and in Objective C we can use Categories.

Read More →

Perform an action after a delay in iOS

Feb 12, 2013

Today I had to perform an action (play a sound file) when a user touches a button, but only do so after half a second had passed. Luckily iOS has very good support for this.

Read More →

Logging a Frame in iOS

Feb 11, 2013

It happens quite often that you need to log the dimensions of a frame in iOS (which is a CGRect struct). Because you need to log 4 different values, it’s quite clunky.

Read More →

Playing video in iOS

Feb 4, 2013

This week I had the interesting challenge of having to play a video in an iPad app. I basically needed to explore having a full-screen video play in the background while still allowing the user to interact with other controls rendered on top of the video.

Read More →

Storing Data with NSUserDefaults

Jan 30, 2013

NSUserDefaults is a quick and easy way to store small amounts of data for you app. It basically acts as a key-value persistent store and is straighforward to use.

Read More →

Doing callbacks with blocks in iOS

Jan 29, 2013

Callbacks are a very commonplace construct in the world of iOS. Today I was trying to pass a callback to a delegate class (which is another common occurence) and tried to explore the different options available.

Read More →