A recurring topic of late has been the sentiment that applications are the key to unlocking the full potential of the slate. “Apps make it” I wrote in response to Lora Heiny’s question. This caused quite a bit of talk about what the killer app for the Tablet PC is and Colin Walker, James Kendrick, Warner Crocker, Rob Bushway and others added their thoughts. Recently TDavid asked in a comment on my post about demonstrating multiple tablets to a customer (you can find both the comment and the post here):
“How can we -- those of us who like the tablet form factor --change this? Come up with more reasons that only can be used, or primarily be used with ink.”
One of the thoughts that this sparked in me is that most of the apps that are really great on a tablet are business focused. Surely one of the things that the community as a whole can do to encourage uptake is to encourage software manufacturers to make the applications consumers already use more tablet friendly. To this end I have compiled some of my thoughts on how developers can make their existing applications more tablet friendly today. I’ll also include some links to resources I’ve uncovered while trying to write my first Tablet PC app – BlogPad.
Adding Ink to Your Windows Forms Application
In order to truly understand the how you can improve your application interface for the Tablet PC I really suggest you using a Tablet PC as your main machine for a while. If you can’t do that then here are some of my thoughts:
· Textbox vs Ink Edit – If your application uses textboxes for text input then a tablet user can enter text into these using the tablet input panel. You don’t have to do anything. That said as a tablet user I much prefer applications that I can just write in the boxes directly. To achieve this you can use the InkEdit control instead. The InkEdit is a superset of the RichEdit control that allows for ink entry and performs the conversion automatically. You can manipulate the properties of the InkEdit to only allow plain text if you are trying to replace a textbox.
· RichEdit vs. InkEdit – If your application uses RichEdit controls consider replacing these with InkEdits. Your Tablet PC users will love you for it.
· Think about how you handle situations where you want to allow users to select multiple items. On a slate tablet multiple section can be a real pain. You sometimes need to bring up the on-screen keyboard and hit the Ctrl key to do this. Consider using the CheckedListBox control instead. Another option is a panel with checkboxes on it which may be easier if you have a fixed number of options that you are not changing at runtime. I would avoid ListBoxes if you are wanting to allow multiple selections.
· Limit textual input to the bare minimum. Use dropdowns, radio buttons and checkboxes where the input is predictable. This is good practice anyway but makes a real difference on the tablet.
· Add value with other ink controls – you can add exciting new features to your application with some of the other ink controls. The InkOverlay allows you to create inkable windows. The InkPicture control provide a means of entering hand drawn pictures as ink. These can then be converted into various image types.
Keyboard shortcuts are hard to do. Consider using gestures to perform actions in your application. Gestures allow you to capture the motion of the stylus and trigger the assigned action.
Make your layout pen friendly
Sliding controls are easy to use with a stylus. Also if you are using InkEdits then make sure you make them big enough to write in comfortably.
Don’t forget the built in things
Two powerful built in features are the Tablet Input Panel (TIP) and the Microphone. You can leverage the TIP to help with conversion and correction. Also built into the tablet is the speech engine. This can be used to either enter text or control applications.
These are just my thoughts and I’m not even a real developer. Some useful resource I found while trying to learn enough to write BlogPad include:
· MSDN Mobile PC and Tablet PC Developer Center – full of articles, samples and recorded webcasts that will help get you started. You can also get the current SDK there.
· Add Support for Digital Ink to Your Windows Applications: a particularly good article from MSDN Magazine that covers lots of things you should consider.
That said I would love to see more Tablet focused development resources out there…
I’d be keen to hear your thoughts on how existing applications can be made more tablet friendly. Also people who have done more tablet development might be able to add a few more tricks and traps. Which applications do you want to see made more ink aware (don’t just tell me – tell the vendors too!)? Which applications do you think do it well now (i.e. who should people emulate).