In November 2010, I wrote an essay titled "The Developer's Challenge in 2011." It covered many of the challenges to the developer, especially the business application developer with server-based backends, stemming from the coming addition of the Apple iPad to the "must support" devices that included smartphones and desktop computers. Now, a little over 2 years later, that challenge remains and most of the forecasts have come true.

The hardware landscape has continued to evolve, and additional new devices have entered the arena. This essay covers some of those newer devices.

The previously listed devices that need to be considered were: Smartphones, tablets like the iPad, laptops and desktops, and large screens shared in a room (such as projected).

The new devices I now want to include as separate are: The mid-size tablet (for example, the iPad mini and the Google Nexus 7), the tablet/PC combination (most notably the upcoming Microsoft Surface Pro), and the TV-bridge device (such as the current Apple TV device). These may not at first blush be considered different, but I believe that they are.

Mid-Size Tablets

I consider the mid-size tablets to be different than the larger tablets. There are a few reasons for this. First, they are lighter and smaller and more easily held in one hand. They are in general much less expensive than the full-size tablets.

The smaller size and weight makes them more suitable for many applications done standing up. They have much more screen space than a pocket smartphone, making them, like the full-size tablets, better for showing more controls and data on the screen at once. This can be especially helpful for "power" applications, like those used in business.

The reason they are different than the full-size tablets is that they are substantially smaller, letting you carry one or more with you in ways that would be impossible or cumbersome for the larger tablets. They are inexpensive enough that businesses can easily dedicate one to a task, since they cost less than what used to be (and sometimes still is) a full software application that runs on it.

They are usually able to run the same software as the larger tablets, just with everything somewhat smaller on the screen. You just need to be a little more careful when tapping the buttons, etc. This leads people to view them as a just a variant that needs no special software consideration.

I believe that there are many times when you do want to program explicitly for these mid-size devices. When using them for activities like transaction processing of some sort, especially when standing up and not able to concentrate carefully on what you are doing, ignoring all around you, you really want larger touch areas, and perhaps larger fonts and other visual cues in the appropriate places. This means providing the ease of quick operation of a phone-size device, along with the extra area, and "fine-print" extra details, of a full-size tablet.

The fact that these mid-size tablets can also do what the full-size ones do, albeit requiring you to squint a bit more sometimes or zoom and pan a bit more, makes them seem qualitatively different than the full-size one and in a pinch can be a total replacement, at least when traveling or for short periods of time.

Tablet/Personal Computer Combo

Thanks, currently, to Microsoft and Windows 8, we are starting to see yet another class of device: The full-size tablet that can also be used as a traditional laptop with a physical keyboard and mouse-equivalent pointing device. The "poster child" looks like it will be the upcoming (at this writing) Microsoft Surface Pro, with its low weight, CPU-power, USB and DisplayPort device support, keyboard with touchpad, and stylus. For this essay I'll call it a Combo tablet.

The main advantage to this type of device is that you can use it to run any existing traditional application (including power productivity apps like Adobe Photoshop and full Microsoft Office, as well as legacy enterprise apps written in Visual Basic or who knows what else), yet browse and do other activities in the appropriate physical manner, such as reading or checking email without a desk or watching a video along with someone else. Rather than switch from one device to another, you just start treating the device differently. You can run applications that have densely packed data and controls, such as those that take advantage of small icons, tool-tips, and right-click, by using an appropriate pen or other pointing device. The physical keyboards are well-integrated into the design, for example doubling as a cover, and allow for moderate or extensive typing without obstructing the screen and requiring special app design to deal with that obstruction.

It is apparent that the keyboard/screen style of computing done on desktops and laptop is not going away any time soon. People and especially corporations continue to buy those devices, and while they may not be replacing their old laptops as frequently, they aren't throwing them away. When you sit down to write or use a "productivity" application that takes up your full attention for long periods of time, or when you need one or more high-information screens, traditional personal computers are well accepted and dominant for good reasons. Most people need to have personal access to one of these, at least some of the time.

The personal computer, as evolved into today's laptops, has proven to be a quite versatile device. You can plug most any type of peripheral into it, be it for storage, input, or output, and then access the capabilities of that device. You can add any software, from most any source, to have custom functionality. Applications can share data in any way that they want, leading to ecosystems of cooperating applications and flexible workflow. Starting with the "pipes" of UNIX and its predecessors, to the plug-ins of drivers and add-ons, and more, the capabilities of your personal computer can be expanded by many parties. A myriad of narrowly targeted applications exist for it, many of which are too narrow and well-serving of their current users in their current form to warrant redesign and re-implementation for other platforms. Just like today's bridges need to let 25-year old cars and trucks go over them, we often need a device that can work with older technology as well as the new.

The Combo tablet seems to be a reasonable method for providing all of the desktop/laptop capability that a normal business person needs along with a tablet mode. It runs all the old software as well as the new power desktop applications. When using it as a laptop, when you go to "swipe" the screen to scroll or some other muscle-memory operation learned on tablets and smartphones, it behaves as you would expect. When you hold it propped up against your leg in a chair, it behaves as you'd want. When you plug in an external screen, you get dual-screen operation just like a traditional laptop on a desktop, yet you can pick it up at any point to take to a meeting, bring home, or bring on a trip -- it's just like the now-common business machine used throughout the world.

I've demoed my Microsoft Surface RT device to a variety of people, most very familiar with an iPad (often very happy owners). When I show them how, on the Surface, with just a few keystrokes you can bring up a command window, and that then typing "dir" does what they expect showing the storage layout they expect, you see a big smile come on their faces. Even more when you point to the display port and say it supports dual screen just like normal Windows and the USB port and say you can plug in a mouse or printer. While RT is not really the system they probably think it is (for some people it's fine, but not those that need to run everything) it certainly shows what the Surface Pro could be. I hope the Pro really is when Microsoft finally ships. We'll see.

Microsoft has signaled its belief in this mode of computing by making its flagship piece of business hardware and operating system work this way. Apple seems to be inching in that direction with its move to very light laptops and heavy use of gestures on a large touch area, and even its switch of gesture scrolling to be the "touch" direction instead of the previous "viewport" direction of the desktop.

Supporting these Combo devices means knowing that users will expect desktop-style applications that can make use of precision pointing devices and even take advantage of the inter-application communication, storage modes, and peripherals you would expect. While you might not expect to do detailed analysis of large amounts of marketing data while producing a report on a smartphone or even a tablet, you would on a Combo device. However, you would expect to also use those apps and access the data behind them with tablet-style interaction when appropriate.

TV Bridge Devices

The final type of device I want to add to the list corporate developers need to be concerned about are wireless TV Bridge devices like Apple TV, as well as cables that let you connect to a flat panel TV display. In general, you can either mirror what's on a tablet or smartphone screen through these devices or you can use them as separately controlled "windows" in an app, much like PowerPoint has a "presenter" mode with something different on the two screens.

The wireless use of AirPlay from an iPad, for example, lets any iPad in the room get the ability to display for all to see. This is really helpful for sharing browsing or looking at reports, etc. It's great for "blackboard" type use, showing electronic ink notes as you make them, perhaps marking up another document (something people use my Note Taker HD iPad app for). It can be very useful for collaboration, and cuts down the friction to share information with others in a more communal fashion. In the home it's great for showing your photos and videos, and also stuff in a browser, to friends and relatives while sitting on the couch. (A couch is not good for sharing the view of an iPad with more than one or two other individuals, and an iPhone is even worse.)

The application layouts that you'd use when displaying on such devices are yet another variation. On tablets or smartphones without a stylus with "hover" capability and a visible cursor, it can be confusing for others to watch somebody control an app with touch and not see where they are touching. (This is not a problem looking over their shoulder as you watch their fingers on the screen directly.) You may want to have some extra visual feedback. As I explained in my discussion of mini-tablets above, font sizes need to be appropriate for the viewing -- while 1080p TV sets can show lots of very small type, reading it from 10 feet away may not be easy.

The actual functionality of apps used this way may also need to have a different mix of features to take into account the use. For example, when viewing corporate information, you might want different types of drill-down, and side-by-side examination to facilitate the meetings where this could be of great value.

Knowing that anybody in the room can now show something, without them needing to move to a special chair and plugging in or logging in, changes the dynamic. Most people will probably have their material with them ready to share, unlike before when only if they had their laptop and not a folder of printed output. It is much more common that an executive (or most anybody else) will have their tablet or smartphone with them than their traditional laptop.

The Developer's Challenge

Thinking about all of these different devices (those I list here as well as the previous set), and writing and maintaining corporate applications to take advantage of each of them, is going to continue to be a challenge for developers and the tools that they use. Learning the different patterns appropriate to each will also be a challenge. Unfortunately for these developers, the users are not waiting, and the number of them that will demand support for the new devices will grow quickly.