Mashups : User Interfaces

Having written a couple of posts going into detail on mashups and APIs, I thought it would be good to focus on something less abstract, user interfaces.

API’s don’t typically have user interaface objects, so you as a developer have to create them. This can be challenging on several levels, the least of which is the simple fact that designing user interfaces is a unique skill that requires a careful eye, design discipline (which is an unwillingness to keep adding elements), and lastly, a little bit of luck.

With where mashups are going, hopefully, the user interface challenge won’t come from a new instant messaging widget or an address book component, but the more intricate components like spreadsheets and calendars. It’s actually quite surprising to see the design complexity of a calendar component when the requirement is to be embedded into another application.

How do you widgetize Google Calendar when you can’t simply shrink it down? The answer is that you have to create your own calendar widget. Google released their own gadget but now you are putting your application performance by relying on a service call through a Gadget, plus with something more intricate like a spreadsheet you are still at the mercy of what they decide to build into the widget as opposed to what you know you need.

Custom data forms as interface elements represent another challenge, but that has remained pretty constant from the first time someone decided to bolt an application interface on a database table. Many of the popular hosted data solutions don’t provide you with the flexibility that on premise databases do. As a side note, DabbleDB has a pretty cool feature whereby you can generate javascript forms that are ready to embed, let’s hope more vendors decide to make it this simple.

It would be my great hope that as an industry we will be able to agree on some universal widget specs, Lord knows the world doesn’t need a new one. Widgets (gadgets, whatever) greatest immediate value for developers is that they are a self contained package that takes care of the UI requirement, but only if the vendor makes their widgets extensible by developers.

Tags: ,