There's an invasion of sorts of various form factors from oversized smartphones to wearables, all hungry for new applications and use cases. Here's how to prepare.
Like the tagline for a bad horror movie, a form factor invasion is occurring on the mobile device front. Everything from huge table-size devices to watches and even "smart" light bulbs is vying for attention as the next smartphone, forcing businesses and application developers to consider massive variations across devices. Here are some suggestions on preparing for the growing form factor invasion.
Identify usability themes
Building applications in the days of the desktop was easy. We knew the architecture of the devices, and in terms of variables there might be a couple of OSes to support, and perhaps a couple or three supported screen resolutions in sizes that varied by a few inches. Now, we're confronted with a handful of very different operating systems, several of which support multiple hardware architectures, on widely varying screen sizes, with widely varying input and output methods. Traditional desktops still rely on mouse and keyboard, but a tablet might leverage information-rich screens and finger input, while a smartwatch relies on a tiny screen and two buttons.
In the old days, we could generally allow device constraints to dictate how we designed applications. Rather than considering what a user ultimately wanted to accomplish, we'd think of how many fields we could cram on a screen, or how we could modify our processes to fit into the newly purchased ERP. Now that we're tasked with supporting a massive variety of devices, it's more important than ever to consider what a user needs to accomplish, and then translate that objective into an application.
Rather than turning fields on our old-fashioned PO receipt screen on and off, we should consider who is receiving inventory, and what task they need to accomplish to continue their work. Thinking through application design in this fashion might steer us toward equipping a dock worker with a smartphone that allows him or her to quickly receive items and capture a delivery signature, while giving a warehouse clerk a tablet that lets them quickly retrieve a PO and verify what was physically received. Consider who needs to accomplish what and then identify the best form factor to solve the problem, rather than jumping into "Everyone in the warehouse needs a tablet!" and you'll be far more successful.
Beware of one-size-fits-all
The supposed holy grail of mobile development is a toolkit that allows one codebase to run on any mobile OS, across multiple form factors. Like all cross-platform development, this presents a variety of compromises, and the more form factors you have to support, the more compromises you'll make. If you're planning on writing one app that will support everything from a 12″ tablet to a smartwatch, you're in for trouble.
Similarly, just because a mobile OS supports a large variety of form factors doesn't mean your app should. It may be tempting to click the "Build for Phone, Tablet, Watch, Television, Dishwasher, Car, and Toaster" button, but consider whether your users will actually require all these platforms, and whether you're prepared to deal with the usability and support challenges each new platform presents. Just because your build tool will squeeze a tablet app into a smaller form factor doesn't make it a good idea.
Building reusable code has long been a tenet of software development, but it is incredibly important, as the presentation layer varies widely between mobile devices. Whereas in the past you could place business logic in your screens with little risk, in the new world of mobile devices your presentation layer might be a large screen, a speaker, or a vibrating wearable device on someone's wrist. Clearly there's no room for intermingling code.
Many of the new mobile development frameworks provide strong capabilities in these areas, but it's up to your architects and developers to carefully architect and execute their development so that today's tablet-based logistics application readily adapts to tomorrow's smartwatch. Similarly, even if you're years away from any mobile development, start thinking about how you develop and deliver applications, such that you could leverage today's code on a variety of future devices. Building services and APIs rather than monolithic applications is a great start in that direction.
While smartphones and tablets have become stalwarts of the mobile space, other form factors are just around the corner. Even the lowly smartphone has screen areas that can vary by nearly 50%, demanding that we carefully consider what data we present and how we present that data as mobile devices become more common. Start building reusable code and diligently separating your data and business logic from your presentation, and you'll be ready for the invasion of the form factors.