Tuesday, May 4, 2010

WattDroid User Interface Improvements

The user interface is an important part of all applications. This is the part of the application that a user will interact with and ultimately decide whether an application is successful. It is possible to have an application that performs a useful task, but if the user interface is poorly designed, it will be unsuccessful.

The WattDroid application already performs a useful task by allowing users to access energy information from their phone. Currently, we are improving the application by incorporating threads. This will prevent the application from becoming unresponsive due to a slow server connection. The application will be able to continue functioning without waiting for the slow transaction to complete. Response time is a factor in the success of an application because no one wants to wait on a slow application. It is more likely they will not use the application than wait.

Implementing threading into an Android application is a tricky process. There are different ways to implement threading. Using multiple UI threads will allow you to run processes, but problems with thread interaction can arise while using this method. Fixing these issues can be time consuming. Asynchronous threads is another way to implement threads. This method solves many of the thread interaction problems encountered by the first method, but care must still be used to ensure the main thread, which is created when the Android application is first started, is not blocked. Initially, we implemented the threads using the first method, however, we are considering switching to asynchronous threading because of the problems that can arise while using multiple UI threads. Further information about threading Android applications can be found here. Additional information about using asynchronous threading can be found here.

Overall, I feel that we have made good progress with our application so far, but time is running short and we have a lot of work to do. There are still a few features that need to be implemented and the application requires polishing. After completing these improvements, our application will be more appealing and robust. I am hopeful that users will find the application useful and easy to use.