<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d13405220\x26blogName\x3dPavan+Podila\x27s+Blog\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://pavanpodila.blogspot.com/search\x26blogLocale\x3den_US\x26v\x3d2\x26homepageUrl\x3dhttp://pavanpodila.blogspot.com/\x26vt\x3d-3240902251102105728', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe", messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER, messageHandlers: { 'blogger-ping': function() {} } }); } }); </script>

Wednesday, March 15, 2006

Mini-App here, Mini-App there

The ability to create mini applications (aka widgets, gadgets, etc.) seems to be the new feature addition in lot of popular applications (let me call them parent-apps). Each of these parent-apps have their own framework/engine that reads in a bunch of config, scripts, media resources, etc and renders some UI on the screen. The framework also provides interaction through mouse (stylus) and keyboard. It just seems that the complexity of the parent-app is so much that you need to start thinking in task-oriented mini-apps. These mini-apps are also lightweight (as in lower memory footprint) and are generally more responsive.

Having this ability to create widgets is also good for refactoring the application. This makes us think of how we can make the mini-app Framework sit alongside the original codebase. It also provides developers with more freedom to explore the possibilities with the parent-app. Beside making the parent-app more functional there is also a fun-side to it. Mini-apps are more enjoyable to use. Having a nice analog-clock or a mini-calculator or a weather widget adds the feel-good-factor to your desktop. It just makes the UX more enjoyable. As longs as we respect the scalablity of these widgets, we are fine. Trying to force-feed too much functionality is not a good idea (as some of the widget authoring docs will tell you: think in simple tasks!).

Some examples of mini-apps can be seen in:
  1. Yahoo! Widgets (previously Konfabulator)
  2. Apple's Dashboard widgets
  3. Gadgets in Windows Vista and on Start.com
  4. Opera's widgets
I don't know if I have missed any significant player, but these are the most popular ones I could find.