f you are familiar with development on PCs using Microsoft's tools, you already know most of what you need to develop for Tablet PCs. The main addition in the Tablet PC development arena is that of Digital Ink and the features that go along with it, such as Ink collection, Ink management, and Ink recognition. There are also a few minor additional things, such as new user interface considerations and screen operation in portrait mode.
Development for Tablet PCs and Mobile PCs is not a very unusual trade anymore, and Tablet PC functionality is moving into the mainstream with Windows Vista. Mobile PCs (laptops) are already outselling desktop PCs in the US. The combination of these two facts means that every developer should be aware of Mobile- and Ink-enabled scenarios, as there are very few client applications that no longer need to consider these environments.
For this reason, this entire issue focuses on Tablet PC and Mobile PC development. The aim is to arm you with all the information you need to successfully implement applications that take advantage of mobile and tablet features. A number of in-depth articles provide technical guidance on topics related to the subject. If you read this issue of CoDe cover-to-cover, you will have a good idea of all the concepts involved.
But before diving into all those details, you should take a look at the big picture and see how it all fits together. This article focuses on Tablet PCs and is meant to be a quick overview; for the details, check out the other articles in this issue.
Capabilities and Opportunities
Tablet PCs are just regular PCs with some extra capabilities. Some developers and users still think that Tablet PCs somehow run on a special operating system, such as Windows CE,which is not the case. (Fortunately, the group that holds that belief seems to be shrinking.) The first generation of Tablet PCs (pre-Windows Vista) runs on a special version of Windows XP, called the Windows XP Tablet PC Edition. This is a super-set of Windows XP, which means that absolutely everything Windows XP has to offer is also available on Tablet PCs. In addition, there are components that are specific to Tablet PCs, such as Digital Ink collection components, and also some Tablet PC-specific applications, such as Windows Journal.
In the Windows Vista timeframe, Tablet PC functionality moves into the core operating system. For this reason, some people say that every version of Windows Vista is a Tablet PC OS. There is a lot of truth to that, although technically, there still will be a special version of Windows Vista for the Tablet PC containing components such as the TIP (Tablet PC Input Panel), which simply make no sense on a non-Tablet computer. These components and applications generally fall in the realm of accessories. Core Tablet PC functionality, such as the support for Digital Ink, is, in fact, available in all versions of Windows Vista.
The main feature of Tablet PCs is the support for Digital Ink. Users can write on the device with a special stylus (the pen) that is recognized by the Tablet PC through an electromagnetic digitizer (and in future versions, through touch-sensitive displays). Digitizers sample stylus information at a very high resolution and at a very high sampling rate. Sampled information includes X and Y coordinates of the pen at a given point in time, and additional information such as pressure, and, depending on the actual hardware and developer choice, pen rotation, pen angles, and more.
Stylus data is received by the operating system and can be interpreted in different ways. For instance, pen information can always be interpreted as mouse input. In many scenarios, a series of pen data packets (individual measurements) is interpreted as a stroke of Ink-a line or curve based on a series of points. Strokes are generally drawn on the screen, generally in real time, and thus form the illusion of ink flowing from the pen or writing on the display.
Such Digital Ink can be used in a variety of ways. Users can take handwritten notes that get preserved as handwriting the same way they were originally written. Although such notes are really just series of lines, the Tablet PC ink recognizer can analyze these lines and turn them into meaningful data, such as text. This allows users to search their notes, or even to turn handwriting into regular text.
Digital Ink is also useful in combination with other data, such as text documents or images. Users can annotate their documents with attached Ink. All the new Microsoft Office products provide good examples of such scenarios.
Not all Ink is interpreted as handwriting. Perhaps the user is drawing lines, squares, and rectangles in an effort to draw a diagram. Or how about recognizing hand-drawn musical notes in a sheet music application?
|Tablet PC development is much simpler than most developers expect.|
A completely different way to look at pen input information is to interpret it as gestures. The user may draw a circle or a quick line to the right, or a similar gesture, which can be interpreted as a certain action. Or perhaps the user scratches out an area of the screen (a zigzagging line drawn back and forth over existing content), which can be interpreted as a gesturea delete operation for the data scratched out.
The possibilities are limited only by your imagination. Ultimately, the goal of Tablet PCs is not just to duplicate the experience of writing on paper, but to significantly improve that experience by adding functionality, fidelity, and features that are not available on a pad of paper.
|Figure 1. Enabling Ink: The TIP (Tablet PC Input Panel) Ink-enables applications that do not support Ink natively.|
To get started with Tablet PC development, you need either a COM-based (Visual Basic 6 or Visual FoxPro for instance) or a .NET-based development environment. We here at CoDe, of course, recommend Visual Studio (.NET) and will use it for the examples in this article. You also need the Tablet PC SDK, which you can download for free from the Tablet PC Dev Center
. You do not need an actual Tablet PC to develop Tablet PC applications, as you can use the mouse to emulate pen input; however if you become engaged in developing a large Tablet PC application, you'll probably want to get yourself a Tablet PC so you can verify that the user experience and recognition quality is at the level you expect it to be. Initially, you can simply install all Tablet PC components on your desktop PC.
You may be surprised to learn how simple it is to build applications with the Tablet PC SDK. Features such as handwriting recognition, which arguably push the limits of what's possible in computing today, are very easy to implement from a developer's point of view.
Note that on a Tablet PC Operating System, all applications support Ink, to a certain extent, through technologies such as the TIP (Tablet PC Input Panel), which allows the user to use Ink in applications that do not support Ink natively (see Figure 1).