GTap: Development Plan
May 8, 2011 § Leave a comment
I had posted a few weeks back about the motivation behind the Android application GTap. So this post is about the detailed plan for the application’s structure. After intense discussions I and Emaad decided that there has to be something, apart from the ‘I-want-to-be-an-informed-citizen’ , ‘I-want-to-choose-the-best-fit-candidate’ and other altruistic emotions, that would arouse the curiosity of people and spur them to use this application.
Having seen many elections on a smaller platform that is our university campus, we knew that most people indulge in gossip, trying to predict the outcome of the elections. Adding spice to the entire situation, the rumors make the audience wait in anticipation for the declaration of results. We thought, we should capitalize on this basic instinct of the people by giving them some sort of a prediction regarding the probability of success of a particular candidate. To make these predictions, we would use statistics elucidating the growing popularity of a candidate. The question was: How do we obtain the statistics?
Our solution is simple, we add a feature called ‘Show Support’ on the profile page of each candidate. On clicking this button, the user(which is a common man/woman) would be led to an authentication page (to avoid exploitation of this feature by repeated show of support by bored and jobless people). After authenticating, the application would increment a count of the number of ‘Show Supports’ a candidate has received. These Show Support values would then be plotted on a graph, showing the growing/decreasing trends in the popularity of a candidate. Now, while discussing the possibility of Mr. X’s success to the position of college president, an Android device owner will flash GTap’s predictions in his fellowmen’s faces. And hence, more people using the application!
I got very smart-art-ish while writing a report on GTap’s development for an Android Development course running in our college, so I am going to flood this (and next few) posts with outcomes of my recent crush on MS Word’s Smart Arts! So lets get started!
The application flow consists of the main screen shown initially to the user, in the form of a dashboard containing the election candidates. Tapping an election candidate brings up a short profile view, which gives some quick information about the candidates current agenda, profile and popularity statistics. An action to show support for the candidate requires authentication via Twitter to prevent spam support votes.
Authentication with Twitter is done via OAuth, and open authentication protocol. The authentication settings, username and password are stored on the phone so the user doesn’t need to enter them every time he wishes to interact with the application. After authentication, the candidate’s full profile and statistics are loaded, with a live feed and popularity bar. It is from this screen that the voter can comment and view complete and live popularity statistics.
- Android Plot
AndroidPlot is a pure Java API for creating dynamic and static charts within your Android application. Unlike multi-platform plotting libraries that must cater to the lowest common denominator, AndroidPlot is designed from the ground up exclusively for the Android platform. The AndroidPlot developer library is compatible with virtually all versions of Android. We decided to use the Simple XY chart provided by AndroidPlot to graph the relation between time and the number of supporting vote received by the candidate. AndroidPlot is still in its nascent stages and is a closed library, but the Javadocs and support on the forums helped us style the graph to our liking to blend with the theme of the application.
Twitter4j is a pure Java library that provides a simple wrapper to the Twitter API. They also provide a trimmed down version suitable for Android, which we have used in our project. Twitter4j is used to first initiate the authentication process, but takes a back seat after the initiation so we have to write our own interface to handle the user procedure of entering the username and password. Twitter4j also provides functions to obtain the home and public timeline in the form of an ArrayList<Status>, but it was up to us to take this raw feed and transform it to something presentable via custom a ListView.
In will post the stages of development that the application has gone through next!
PS: Looking at the prospects and development of Open/Libre Office makes me feel I am never going to get over MS Office (hence living with a dual boot Linux/Windows system 😦)
Credits: Co-Developer for the project. Special thanks to him for the logo too!