Cross-platform app development

Creating shared digital spaces requires ease of access for all involved. We tried to design across the closed silo 'stacks' of app companies.

The technical considerations when making an app also influence design choices. Most of the big app stores support development with a wealth of programming and publishing tools. Apple, Google, Microsoft, Amazon, Blackberry and so on, all benefit from locking-in 'users' and developers to their platforms. Most app stores make distributing a app relatively easy, but at the cost of control by the app store walled garden.

When designing a digital collaborative space like the Where do you go to? App, we were concious of the need to promote accessibility. One of the regular comments we had from our BBC participants was about the burden of carrying an extra prototype device (having to remember to charge two phones for example). We chose an app development platform that could potentially publish to lots of different devices (phones, tablets, and so on) and lots of different app stores (Apple, Android, Blackberry) used within workplaces. This allows each person to choose their own device for using the app (for some that might be a work tablet, for others a personal phone). Such cross-platform app frameworks offer publishing flexibility at the cost of device specific resources. Using camera access for example, across many different platforms will always be more complicated than using only the Android or iPhone specific tools.

I used Cordova to develop the app for this project. It is an Apache free software license mobile development framework. It has been made available by Adobe in support of their PhoneGap project. Cordova apps are written in web standards (Javascript, HTML & CSS) which makes them more likely to be cross-platform and flexible. However, my experience with this prototype was that access to phone hardware (like using the camera to take a picture of a desk or saving pictures to the memory of the device) required complicated work-arounds for each device I tried.