Ever since the Android development roadmap was published last year, users have been eagerly awaiting the "Cupcake" release. Perhaps a little too eagerly. After staying out of the fray for a while I decided it was time for a quick reality check.
Originally, speculation had it that Cupcake was going to come out in November or December, probably based on some unfortunate wording still present in the now sadly outdated roadmap that reads:
Final push of internal code to the open-source repositories
During Android's transition to an open-source project, some development has continued to happen in a private branch. We are working to move the rest of these changes into the open as soon as possible, and all future open-source work will happen in the public git repositories. All changes that have already been submitted to the public repositories will be merged into the newer code base, so nothing should be lost.
See this document for information on the "cupcake" development branch, a mirror of the private branch.
The referenced document described all the neato features that had been added including a soft keyboard, video recording, and several API changes. December came and went, and fans convinced themselves that January 11th was The Date. When that passed, then it supposed to be January 18th. Then "late January". Now that it's February, the rumor mill says late February, maybe. Hundreds of angry and impatient notes have been posted over in the T-Mobile forums, railing at Google and T-Mobile, demanding to know why Cupcake is "late".
So what's the deal?
The problem with all these dates is that they have no basis in fact or common sense. They were certainly not promised by Google, and the sources and "leaked memos" supposedly from T-Mobile were obviously unreliable. Cupcake was the name of a source code branch that broke off from the mainline for a few months which now has been merged back in. These changes are destined for the next major version of Android, which might be called 1.1, or 1.5, or even 2.0.
A few fixes may be back-ported into version 1.0 and released in minor updates but the main body of the code will have to wait for a major release. In December, Android team member Dianne Hackborn described it this way (emphasis mine):
It [Cupcake] is something after 1.0, but there is no release number assigned to it yet. That is why we use names instead of, when starting work, trying to predict the future and assign a release number. That rarely works out. :) However, it certainly will not be a 1.0_rXXX version, since cupcake is changes to the platform which will result in something that is not 1.0. ...
Right now cupcake is mostly in a state for platform engineers to work with it. As we get closer to finishing on it, will we be putting together new SDKs that people can use to write apps against the new APIs. I think you might be able to build your own private SDK using the cupcake branch, but we are not yet at the point where the APIs are stabilized so using them will be a moving target (much like all of the pre-cupcake APIs were until we got to 1.0).
As I write this, Google has not published a new SDK for the next generation of Android (let's call it "V.cupcake"). Therefore, it stands to reason that the official release is not imminent. Remember, it took about a year between when they published the first Android SDK and when V1.0 went production. I don't think it will take a year this time, but I'd be surprised if it took less than three or four months. So Android enthusiasts should first watch for a V.cupcake beta SDK, then maybe a few more betas and release candidates, and then the final version some time after that. Maybe it will coincide with the release of the much-rumored "G2", who knows.
Developers, note that programs built against the V1.0 SDK will continue to operate on phones with V1.0 installed as well as the future V.cupcake firmware. However programs built against the new SDK that use features from the new SDK will not work on phones with V1.0. I'm not sure how they're going to handle that in the Android Market, but we'll find out eventually.