Site Navigation

BBC iOS News App26 October 2016

BBC News iPhone App Logo
From October 2015 to September 2016 I spent a year building two new features for the BBC News iOS app. The first a ground breaking portrait news video feature and the second the internationalisation and localisation of the app into three languages as part of the largest expansion of the BBC World Service since the 1940’s.


Simple iOS Viewstack 303 January 2015

Xcode Logo
A little while back I created the first version of a view stack utility for IOS. It was one of the first things I added to my toolbox shortly after starting working as a freelance iOS developer. Having used it in commercial projects I have refined and added features as demanded by real life mobile app development.

This simple tool has such a positive impact on promoting decoupled architecture in iOS projects and this article is a thorough look at the features of SimpleIOSViewStack as I think,  given what it can do for you, this could be useful. If you are in a hurry the Git Hub ReadMe or this example project may prove a better starting point for you.


European Patent Office Logo
Last year I was approached by the European Patent Office and asked whether I could help them with their plans to produce a mobile version of their Espacenet product. The proposal provides an interesting case study in the type of consultancy that precedes the production phase of enterprise grade mobile applications..


App Prototype Developer

Going from prototype to market is a pain.

This article is aimed at product owners, project managers, budgets holders and business executives. Technical people are probably going to nod and repeat "Yes, I know" as they read it.

Whenever the intended audience want to create a large amount of emotional turmoil in the hearts and minds of technical folk they ask questions such like :

"Why is it that a prototype can be produced quickly and the first release to market takes exponentially more time?"

"Surely a good portion of the work was achieved creating the prototype?"

These sorts of questions are asked all the time and this thinking is quite often the seeds of later unhappiness. A clear majority of the time the prototype is used to create the first version, whether it is a minimum viable product (MVP) or not. Money and emotional investment has been spent creating a prototype and apparently an efficiency can be realised by using it as the start point for the next phase.

I propose the chances of easier early, and also sustained, success can be promoted instead by engaging with the exact opposite idea. Once the decision has been made to move forward throw the prototype away and create the first production version from scratch.


Xcode Logo
One of the central mechanisms in the architecture of an iPhone or iPad app is a UINavigationController, there is at least one in most apps. This class is similar to a view stack found in other application frameworks and for the most part works very well. One drawback, and this has as much to do with iPhone and iPad application architecture as it does the UINavigationController itself, is the decentralised approach to navigating between children UIViewControllers. Not having details that relate to one aspect or your application, in this case navigation, in one place in your code can make things hard to find and this frustrating situation can be made more so by the use of storyboards, but that's another conversation entirely.

The situation can very easily be improved ...


Xcode Logo
I am sure many Objective-C developers, iOS or OSX, have been in the situation where the backend API needed for the project they are working on has not been developed by the time they need to start writing the code that will access it. In organisations such as creative agencies, startups and software companies it is not always possible to synchronise resources to perfectly suit all the current projects' timelines but with a mixture of creativity and technology, conveniently wrapped up in a utility called SimpleObjectiveCAPIService, this simple bottle neck can be negotiated.

It is only correct that I point out now that this utility has been created more to assist with iOS app development rather than provide production ready network utility. If you are developing an enterprise iPad app or an iPhone app that has to cope with dynamic connectivity situations this utility is more than likely going to fall short of your needs.


Adobe Air Runtime
We've all been in this situation. You have developed a mobile app, or desktop application. It has been accepted to the Android Marketplace / Apple's App Store, or you have uploaded it onto your website or intranet for distribution. People have installed it and are using it.

It's time for version 2 and you make the inevitable changes to the database. You have to write code, in the model of your MVC pattern usually, that copes both with a upgrading the database from version 1 and creating a database from scratch for a user who is using your application for the first time at version 2.

And so the pattern continues, and the problem grows, for each version. In version 3 you have to write code that handles people upgrading from version 2 to version 3, version 1 to version 3 and people installing the app for the first time.

What a pain! Not anymore.