Physical context and device convergence

Earlier this month I heard a fascinating talk by Facebook’s Alan Cannistraro at iOSDevUK, in which he shared his thoughts around the next big developments in technology. One aspect of his talk has been bobbling around in my head ever since, and it’s this aspect that I’d like to explore further in this post.

Alan talked about the relevance of physical context when considering a given set of devices. Specifically, he noted that there will always be convergence towards a single device within a given physical context. Here’s the example he used to explain what this means in practice.

Continue reading

iOS app release checklist

At my app agency Agant, we created a handy checklist of all the things you should test before releasing a new app (or app update) to the App Store. I thought this might be a useful thing to share with other developers. Here it is, as a Pages document and a PDF.

This document is by no means comprehensive, and is not a substitute for more thorough testing (including unit testing) of your code. Nor is it a replacement for usability testing of your interface and app flow. It is, however, a useful way to remember all of the things that can easily catch you out. Testing your app with a 24-hour clock, or in a different timezone to your own, can find easy-to-fix problems before they hit the Store. And getting someone else to use your app with Screen Curtain is a great way to test whether your VoiceOver support is truly useable in practice.

Please feel free to use and adapt this document as you see fit for your own testing, and do post any additional testing tips in the comments, or send them to @daveaddey on Twitter.

Update: 22 September 2013

Oisin Hurley has set up a GitHub repository for the App Release Checklist. Please do add your own checklist items and suggestions to the list on GitHub, and / or use it to create a branch of the list for your own needs.


iOS 7 introduced a new way to detect and monitor location, known as iBeacons. This article gives an overview of what iBeacons are, what they can do, and how you go about setting them up.

iBeacons are low-power, short-distance location monitoring beacons. Any iOS device that supports Bluetooth Low Energy can become an iBeacon, and can detect other iBeacons when they are nearby. Apps can be notified when iBeacons move in and out of range of the device, and can monitor the proximity of iBeacons as their proximity changes over time.

Continue reading

What next

I recently made the decision to close the Agant offices, and to return to being a one-man band. This meant that Agant went through a redundancy process for all six employees, which ran until the end of July.

My immediate priority was to make sure everyone found a new job as soon as possible, and I’m very happy to report that everyone did so pretty quickly. I’m not surprised – they’re all ace, it’s why I employed them – but it was good news nonetheless.

Once I knew that everyone was set up, I realised I should probably work out what to do next myself. So, I’ve been investigating a few different options over the past month, and I’m delighted to say that one of these has led to a job offer, which I’ve accepted. And I have to say, it’s one that I’m really rather excited about.

I’m joining Apple as a Senior Writer in their Developer Publications team. I’ll be putting together programming guides and documentation for the latest and greatest Apple technologies, as well as looking at ways that the overall developer documentation (and its UI) can become even more effective. It’s the perfect role for me – effectively, a combination of everything I’ve done over the past 15 years – and I can’t wait to get started. (I’ll be based in the UK in the short term, and then moving out to Cupertino if my visa application is successful.)

In the meantime, all of Agant’s existing apps (including our client-published apps) have been tested for iOS 7 compatibility, and will remain on the Store. And a new iOS 7-native version of UK Train Times has been submitted to the Store for review.

I’ve always said that there’s only one big company I’d ever work for, and I’m very chuffed that Apple want me to join the team. Hopefully see you all at WWDC 2014!


Excluding Apple-hosted In-App Purchase downloads from backup

A word of warning if you’re using Apple-hosted In-App Purchase downloads, as introduced in iOS 6. After downloading your Apple-hosted files, you’ll probably want to move them into the user’s Documents folder, so that they are available for persistent offline access (as seen in the WWDC 2012 sample project, IAPSample).

When you do so, be sure to mark your files as ‘exclude from backup’, especially if they are large. This is described in Technical Q&A QA1719, and is implemented using NSURLIsExcludedFromBackupKey.

Continue reading

Enabling Apple-hosted In-App Purchases in iTunes Connect

I recently needed to set up some Apple-hosted In-App Purchases for a new iOS app. (These are special products, introduced in iOS 6, for which Apple hosts downloadable content on your behalf.)

Apple’s iTunes Connect Developer Guide gives detailed information on how to set up Apple hosting for a new In-App Purchase. However, I couldn’t see the ‘Hosting Content with Apple’ option within iTunes Connect for any of our apps. Thankfully I was able to work out why, with the kind help of Simon Maddox.

Continue reading

Keynote template for iPhone and iPad app demos

I received so many nice compliments about my app demo slides at Úll 2013 that I’ve decided to make my Keynote slide template available. I’ve also written up how I create the demos, including how I record demo videos of our apps over AirPlay. If you find yourself needing to demo iOS apps for meetings and presentations, you’re very welcome to use this template.

Continue reading

155 countries, 25 app stores

I’ve been doing some research into the kinds of apps that tend to get Apple promotion on the App Store. This research is still a work in progress, so I thought it might be useful to share an initial finding about the App Stores themselves.

It turns out that there are actually very few App Stores in the world. You can buy apps in 155 countries, but there are only 25 separate stores. Many countries share their App Store with several other countries, and show exactly the same curated selection of featured apps – with localised names and metadata where available – as those other countries. In practice, this is almost certainly necessary to keep the weekly task of content curation feasible for Apple.

Continue reading

Fast SQL sorting by distance

When developing the original version of our UK Train Times iPhone app, I needed to retrieve nearby train stations from an SQL table of all UK stations, ordered by their distance from a certain latitude / longitude point. I came up with a fast and efficient way to do this, which is explained in detail below.

Whilst this approach is particularly suited to an iPhone (which has assisted GPS and support for SQLite, but a relatively slow processor), the same approach would apply to any SQL application needing to order by distance from a fixed point.

Continue reading

Typography and technology

There’s a reason we talk about “losing yourself in a good book”. When the medium, the text and the reader operate as a single, smoothly-running unit, you can spend hours with your head deep in a book, oblivious to the outside world. Words flow through your eyes and convert seamlessly into ideas and images within your brain, in what feels like an effortless, almost magical process.

Our goal as publishers, then, is to optimise a reading system to remove any distractions and barriers to this flow. There’s only so much we can do about the reader – i.e. ourselves – but the medium and the text can certainly be optimised to make reading as smooth a process as possible.

Continue reading

Address Book security

Last April, I wrote about the UK Conservative Party’s election app. This app uses your iPhone’s address book to send personal details (and likely voting intentions) of your friends and contacts to the Conservative Party.

The subject of address book security has been in the news again recently. Two particular stories have caught my eye, both of which raise questions about how we value address book privacy in mobile apps and on the Internet.

Continue reading