Wednesday, June 1, 2011

Introduction

Problem scope
Mobile phones give their users the opportunity to communicate in many different ways. Phone calls, messaging, general social networking sites (Facebook), and applications designed around a particular interest (like Last.fm for music fans) are all great way to get in touch with people. However, all the different technologies and services have their own mobile client application and user interface. The mobile platforms usually lack of a generalized interface, where the user could browse the history of all her interactions with her contacts.
Recently, Sony Ericsson released the Timescape API, which lets developers write their extensions to SE’s Timescape software, which provides a user interface listing aggregated content from the different applications. However, Timescape is closed-source, and available on a limited set of devices (Xperia).
Solution
The aim of the project is to design and implement an application called Historify (Contact History), which would be an Android application that displays the list of interactions (phone calls, SMS, FB messages, etc.) between the phone's user and a selected contact, in a conversational form. The application would seamlessly aggregate the content of the different data sources into a single view.
The key element of the project would be to support openness: The application would provide a mechanism allowing 3rd party apps to post events on the timeline (via shared content providers or intent calls).

Plans for this summer
To achieve the described goals, I intended to cover the following areas as part of my contribution to the project:
·         Create a skeleton application for displaying the user’s contact timelines.

·         Design and implement internal content providers to collect SMS and telephony events from the user’s contacts, and an event aggregator to create a timeline of the events loaded from the different providers. Finally, an adapter to convert the data into view objects displayable on the user interface.

·         Design and implement an Intent-based interface that other apps could use to:
a.       Post single events.
b.      Register their own content providers as a new data source. The 3rd party content provider should be realized similar to the internal providers to facilitate event aggregation.

Note that it is also necessary to study the solution Timescape uses in its own API for Intent registering. Ideally, Historify could use a similar mechanism, so full compatibility could be achieved.

·         Create a sample application that uses the Intent-interface. E.g. a Facebook-based application, that collects a few types of interaction events (e.g. event invitations), and shares it with the Historify application.

No comments:

Post a Comment