Project Roadmap

davidrea edited this page Dec 5, 2010 · 16 revisions

Overall Project Goals

The Deacon Project seeks to create a Java push notification class library that acts as a client to the Meteor comet-technology web server. The library is intended to enable the delivery of push notifications to native applications written for the Android mobile telephony platform.

Alpha Release

Target date: May 16th, 2010
Status: Released!

The Deacon alpha release is intended primarily to enable answering of the following questions about Android and push technology:

  • Can push notifications be delivered to Android devices using a Meteor web server client? (proof of concept) Yes.
  • How much does the maintenance of a long-held TCP connection to a Meteor server affect Android device battery life? Not very much.
  • Which Meteor comet modes (streaming, short polling, long polling) are compatible with Android devices? Any, but short polling isn’t much different from existing approaches, and streaming is fraught with problems at the link level.

In order to answer these questions, the alpha release will need the following basic functionality:

Function Status
Connect to a Meteor server using the subscriber request format described in the Meteor server documentation Done
Subscribe to one or more channels on the server Done
Receive push notifications using the following Meteor-defined stream types:
* xhrinteractive N/A
* Long polling Done.
* Short polling (lowest implementation priority) N/A
Parse response messages received from the Meteor server (reverse engineering required) Done
Deliver the received notifications to Android application software using callbacks Done
Basic network connectivity awareness and server connection start/stop Done
Structural models updated in Design Document Done
Release tagged in Git Done

Beta Release

Target date: Q3 2010
Status: Released!

The Deacon beta release is intended to produce a usable Java class library that can be evaluated by Android application developers. It should achieve the following functionality and general level of readiness:

ID Function Status
β-001 Connect to a Meteor server, subscribe to one or more channels, receive notifications, deliver by callback Done (Alpha)
β-002 Full network connectivity awareness, automated start/stop of service subscriptions, upstream notification by callbacks Done
β-002.1 Configurable notification backlog retrieval; get missed notifications due to network disconnection. Should use Meteors backtrack feature. Uses Meteor’s message IDs. Done
β-003 Unit tests implemented for key methods in Deacon core Done
β-004 Minimal API Javadocs complete Done (Alpha)
β-005 Distribution JAR for pure-Java Deacon core implementation Done
β-006 Distribution JAR for Android-dependent Deacon implementation Cancelled
β-007 Models updated in Design Document In Progress
β-008 Release tagged in Git Done
β-009 Deacon-Test client feature set updated:
* Configure server address, port, channel
* Configure action taken on push notification receipt (display toast, alert, notification, etc.)
* Add connect/disconnect buttons
* Display status
* Improve visual design
Track under separate roadmap
β-010 Add intent-generation capability to Deacon; allow reuse of C2DM receiver code with Deacon pushes Cancelled
β-011 Automate build process with Ant Cancelled

Release 1.0

The 1.0 release of Deacon should be a complete, usable, documented Java class library for production use by Android developers.

ID Function Status
1-001 Enable developer-customizable Meteor stream configuration format
* Goal: Devs can configure their own Meteor response format in /etc/meteord.conf
* Will need methods to call to set format string, which will then convert into regex to be used by Parse()
Not yet started
1-00N-3 Distribution JAR for pure-Java Deacon core implementation Not yet started
1-00N-2 Distribution JAR for Android-dependent Deacon implementation Not yet started
1-00N-1 Models updated in Design Document Not yet started
1-00N Release tagged in Git Not yet started