October 17, 2012 3 Comments
Recently, I wrote a small google chrome extension to display loadshedding schedule. This extension was a two night hack so the term “design considerations” would sound overstretched. But still, there were some considerations that was taken into account while building it up. I tried to focus on few things while designing the extension. I will describe them here.
The extension can be found here at https://chrome.google.com/webstore/detail/nepal-load-shedding-sched/bjfehdeonijdobiohamaplfbdcfkgfgi
The source code is at: https://github.com/sul4bh/Nepal-Load-Shedding-Schedule-for-Google-Chrome
Minimize actions required for the user to view the schedule
So as soon as you click on the extension icon, the extension fetches XML stored in LocalStorage, converts it into required JSON and feed it to a Mustache template and render the data. While rendering, it also automatically switches to your loadshedding group. There is no option to set your group. Just click on the group tab and it is your default group. Next time you fire up the extension, it remembers your group and renders it. Also there is no option to update the loadshedding data. Every time the extension is fired, it asynchronously checks if a new data is available and fetches it, stores in the LocalStorage and trigger the re-render the process. Because this happens asynchronously, we can still be viewing the schedule and the update process would be running in the background. Also, the XML is only 4.1 KB (Google’s homepage logo is 6.84KB) so it is not a bandwidth costly process.
You can also select your location from the drop down at the top of the extension popup. Click on the location and the group tab automatically switches to the group associated with the location. This selection area is grayed out to avoid confusion that the group tab is linked backward to the location selection.
So, we have only 2 items to click and every other housekeeping task is done my the extension automatically. Don’t make user set options and interact heavily with the system. Remember, “The best interface is no interface”.