By the end of 2009, Google predicts there will be at least 18 Android phones. This is great news, but it also means developers must create apps that work on a wide range of devices. Each phone may have a different screen resolution, support different sensors, and could report a different User Agent string when accessing web sites.
Create an online, interactive Android device database. This web site will list every Android device, along with complete specifications. The site should use AJAX so visitors can sort, search, and filter efficiently. Using this site, people can see:
- Detailed specifications for specific phones
- Sort by screen size or any other attribute
- Filter to show phone supporting the accelerometer or any other combination of features
- Select several phones and compare their features side-by-side
Android Client Software
Part of this project involves a client application running on Android. This application will inspect all of the phone’s features and upload them automatically to the Android device database web site. For example:
- Screen resolution
- Keyboard type (physical or soft)
- List of supported sensors
- Software version information
- OpenGL features
- Anything else we can detect without violating user privacy…
This information is easy to gather, and can be POSTed to the web site as XML or JSON. Once submitted, the information is automatically entered into the phone database along with the User Agent the phone sent.
How I Would Do It
I don’t have time to create this app (I’m working on something else). If I did have time, here is how I’d do it:
- GWT 1.6 for the web site
- Google App Engine for the server hosting and data storage
- Android SDK for the client (duh)
- Google security to prompt for username/password when submitting a new report
- Host everything on Google Code with an Apache 2.0 license
- Use Mercurial for the source code
This is a technically easy project. The main challenge I anticipate is fighting bogus submissions and spam. You could implement a moderation queue for any new submissions. Once someone with a T-Mobile G1 submits the first report, all subsequent submissions from identical phones should be identical, and would thus be automatically ignored.
You may need to moderate and approve brand new submissions from phones that are not yet recorded in the database.
It might be nice if people could post pictures of each phone on the web site. This would be a manual process, as the phone software cannot take a picture of itself.
So what do you think? Is anyone interested in creating this application?