|
GSoC2011Ideas
Google Summer of Code 2011
GSoC 2011 Project IdeasAbout UsOpenIntents provides an open framework for developers and free and open source applications for Google's Android mobile phone platform. OpenIntents has been selected as participating organization in the Google Summer of Code 2011. Why Work for OpenIntents?
StudentsThe student application period will run from March 28 to April 8. However, it is a good idea to get in touch with us already a while before the deadline. Effective communication is a determining factor of a successful student, so if you're interesting in being a part of our community, do keep in touch via our lively discussion group. It would also help to browse through the GSoC students page and familiarize yourself with the student application form Technical RequirementsBesides the project-specific requirements, interested students are required to have strong programming skills in Java, or a strong background in C++ or C# with the drive to learn Java quickly. A knowledge of SQL (sqlite) would be an added advantage. Furthermore, before being considered for a project, you should already have:
IdeasWe've listed out a bunch of ideas below. If you happen to pick one to work on, let us know your plan with a comprehensive time-line of the tasks you plan to accomplish, and the methods and resources you'll use to do so. Refer to the student application form. We also welcome additional ideas not currently on this list. You're encouraged to let us know of and debate your ideas on the discussion group. You could derive some inspiration for your own ideas from the following sources: Adapt OI applications for tablet devices running Android 3.0The newly introduced concept of fragments can help to write modularized applications suitable for Android phones and Android tablets. A static library has been published with which backward compatibility can be ensured down to version Android 1.6. The aim of this project is to modify one or several OI applications (for example OI File Manager, OI Shopping List, or OI Notepad) so that they properly include the new Fragments API and provide seamless interfaces for phones as well as tablets.
Update SensorSimulator to support latest Android APIThe OpenIntents SensorSimulator simulates sensor data for Android Virtual Devices, enabling developers to test sensor based apps using the emulator. Since the Android platform develops so fast, the SensorSimulator API is currently outdated. The aim of this project is to update the API with the current Android SDK 2.3 status. This would involve replacing deprecated methods and adding additional method wrappers (like getSensorList(int type) for instance). It would also involve implementing new sensor types in the simulator, like gyroscope sensor, light sensor, or proximity sensor, which are defined in the sensor documentation. Additionally, bugs need to be smashed and a lot of work be put into cleaning up the code resulting in a robust Sensor Simulator.
Eclipse plugin for intents registryOpenIntents provides an intents registry for developers. The idea is to build an Eclipse plugin that enables developers to browse the online intents registry and insert a code block corresponding to the selected intents directly into their Eclipse project. It should be easily accessible via a context menu or even via the code completion feature of eclipse.
OI Shopping List online synchronizationA well-demanded feature for OI Shopping List is online synchronization. Some work has begun for an extension of the shoppinglist that allows for synchronization with Remember the Milk, but was never fully completed. Another possibility would be to synchronize with Google Spreadsheet API. This requires further implementation of the REST API and settings for sync scenarios (only via wi-fi, directly on item change, etc). The use of a SyncAdapter is recommanded.
Online analysis and upload of Manifest files to the intents registryThe online analysis tool is developed as an open source project (source code). A very basic version of the applications registry is online. To further ease the extension of the intents registry, a module for the intents registry website should be developed that takes a given .apk (application package) file, reads the manifest and adds all included intents to the database.
About Me/My Contact Card ApplicationCurrently, the Android frameworks lacks a possibility to access a business card/profile of the device users. The aim of the project is to create an app that maintains one or more user profiles that the user can easily share and other applications can rely on. There are two aspects of the project: 1) Creating an app that maintaints and shares profiles, the OI Notes app and the contacts app can be used as the base. 2) Promote and push the proposed solution to android.com and and hardware manufactures such that the fragmentation between devices is minimized (join discussion about MyContactCard plugin of the Device Analyzer).
Open FreeSMS IntentThis project will create a new intent that other applications can access, so that sites that provide free SMS sending can be accessed transparently. As a code base and inspiration, pyFreeSMS, an open source Python API can be used to send messages from a 160by2 account. For this purpose, a new intent shall be defined with the functionality sendmessage (username, password, phonenumber, message) and optionally the choice of the service one wants to connect to. The various APIs have to be accessed through HTTP requests.
Device theft detection intentThe main idea of this application is to serve as a passive anti-theft tool for Android phones. A central application should monitor the device for possible signs of theft, and then lock the device or notify other applications on the device to lock down or delete their data, or perform some other pre-defined action. For this reason, the bluetooth API could be used to test for other devices in proximity, and hence react to unexpected separations over a longer time span. Once a possible theft is detected, the application could ask for a password and optionally launch an intent for example to send a silent SMS with GPS details or to automatically lock down the device or delete application data. The Android Bluetooth Simulator could be used to test communication through bluetooth between different emulators.
Auction watcher as extension for OI Shopping ListThis would be a new application that watches the shopping list for new entries and queries online auction and shopping sites for these items. If appropriate items are found, the user receives a notification. If the user chooses to follow an item more closely, they are reminded an hour before the end of the auction. For this project, you would have to implement an Android Service that can accesses the Ebay Shopping API or the Amazon web services. Support for further companies may be added too. Also, an (automatic) blacklist for frequently bought items that you usually buy in the supermarket could be added, so that these don't have to be searched online.
Social bookmarking tool for OI NewsreaderAn extension for the Newsreader to upload selected messages to a social bookmarking service of the users choice. This can build upon the old project for the now-defunct Site Ma.gnolia, implementing additional protocols and sites, using for example the Delicious API, the Digg API, or other related APIs.
Dynamic tag cloud for central taggingOpenIntents already provides basic CentralTagging to tag arbitrary content like contacts, notes, music, pictures, videos, in a common way, but the corresponding code base is currently outdated. The corresponding code would first have to be updated to run on the current Android platform. Once this is accomplished, there are many ways to enhance the user interface. One possibility would be a dynamic tag cloud, using either Android's 2D graphics or Android's OpenGL API. The tags in various shapes and colors would float around, with more important tags being larger. The user would click a tag to open associated content (contacts, notes, music, ...), drag it to the middle of the screen to see associated tags pop up, or drag it off the screen to have smaller tags from the background get larger. An extension may be to display the tagged information directly in the tag cloud view: For example keeping the finger on a tag would toss out the pictures associated with this tag.
Dynamically granting permissionsCurrently, the user has to grant all permissions that an application can use at installation time. The idea is to create a new application that can grant permissions dynamically when needed. For example, OI File Manager dynamically adds commands in the context menu (long press). Some of these commands may require additional permissions. Currently OI File Manager crashes if it wants to launch an application for which it does not have permissions. The first step is to catch the security exception and display a friendly error message. One solution would be to add all possible permissions to OI File Manager, but this may pose security risks. The idea is to create a new independent application (called e.g. "OI Dynamic Permissions" or "OI Permissions"). This app will include all possible kinds of permissions, but it will not use them by itself. It will wait for another application (like OI File Manager) to request launching a specific intent. It will then ask whether to grant the permission for this application, and the user has the chance to allow "once", "always", or "never" access for this application to this permission.
MentorsThe mentors will be:
Mentors must read the advice for mentors. Feel free to post your queries on our discussion group. | |