Intel Developer Blog: Softtalkblog on why it is important to make your app cross-platform
For software developers, there has never been a more challenging time. There has been discussion in recent years about user centred design, the idea that user interfaces should be designed around the needs and abilities of end users, and should be tested to ensure they meet them.
That’s becoming increasingly difficult, because today’s users want software that works wherever they are, on whatever device they have to hand. The ISO standard for human-centred design for interactive systems includes the principle that the design should address the whole user experience, which for most purposes I would say means the complete lifecycle of the data.
A high proportion of people would use different devices at different stages of creating, reviewing, editing, managing, storing and deleting their data.
As you probably know from experience, people prefer to use different devices at different times. For taking photos, a handheld device is optimal. For reviewing those photos, you might want to use a tablet with a high definition screen or an Ultrabook device, with a keyboard for easier tagging and labelling.
That doesn’t necessarily mean you want to use two different applications or services, though: similar to the way in which people expect to be able to use their Twitter and Facebook accounts using whatever device they have to hand, people want to have an integrated and smooth workflow for every activity, across all the devices and operating systems it requires.
There’s no point in you designing a great app if it's let down by unnecessary friction when people try to use it with other devices as part of their daily lives.
Intel has helped to lay some more foundations for a smoother experience with the release of the Intel Android USB Driver package, which enables you to connect a Windows-based machine to an Android device with the Intel Atom processor inside. The driver package makes it easier to connect and communicate between Android devices such as phones and tablets, and Windows 8 devices, such as Ultrabooks and tablets.
Using it, you could create an application that enables someone to take photos on their Android device, and then connect it by USB to a Windows device which can import them and pick up the workflow.
That’s a simple example, but your app might include the handover of rich metadata, or might not be a photo app at all: it might be working with custom formats, or streaming data, for which users want a smooth transition across platforms. Your app could equally be sending data the other way, with work going from the Ultrabook to a reading-friendly format on a tablet.
Of course, there are cloud-based mechanisms for achieving this. Facebook and Twitter, for example, work on any device using a dedicated app or using the web-based app through the browser. In either case, you can be sure to have access to your accounts, friends and updates wherever you can get an internet connection.
Not all apps lend themselves well to this cloudy approach, though. Cloud-based apps only work where there is an internet connection, which can cause issues in more rural areas where mobile coverage is poor, or when people are using the app away from home and don’t have access to free Wi-Fi.
The internet is also likely to be much slower than simply connecting devices to each other, especially for the transmission of large files such as images or videos.
Some kinds of applications might involve sensitive or confidential data which users would rather not send over the internet, even within a secure and private loop. There are fewer ‘moving parts’ to fail in just connecting a USB cable between two devices too, compared to using cloud-based synchronisation.
What experience have you had with creating apps for the full lifecycle of their data across devices? How easy have you found it to enable people to move data and user experiences across different devices? Leave a comment below.
• This blog post is written by Softtalkblog, and is sponsored by the Intel Developer Zone, which helps you to develop, market and sell software and apps for prominent platforms and emerging technologies powered by Intel Architecture.