For every time you feel like you've covered a lot of ground in software development, it seems like there are often other times when progress grinds down. We bit off a big chunk with the Alpha release of Deacon, and achieved a lot of functionality in just a few weeks' time. But without feedback, it's hard to maintain that cadence.
If you've tested the Deacon Push Notifications library, or are considering giving it a try, here's how you can help:
- Download the latest release (there's been one service release since Alpha) and try it out
- Report any issues that you find on the Deacon Issue Tracker
- Jump on the mailing list to ask questions or make suggestions
As a reminder, Deacon isn't just for Android apps! The core of Deacon, the DeaconService class, is pure Java and can be used in any Java application. We then use a wrapper around the DeaconService class to provide Android-specific functionality (such as network connectivity detection or context awareness).
After spending a great morning talking about Android, lamenting car problems and happily discussing life in general with Spencer, and after enjoying a great birthday lunch with my colleagues (at which they sang, and the diner lady offered up a free slice of Godiva cheesecake), I got home and found a new email: Deacon has its first issue.
I imagine most folks would see "[GitHub] New Issue" in their inbox and groan, then perhaps click into the message with trepidation or dread - but I count this issue among the nicest birthday gifts I've received this year. Why? Because I'm pretty new at this whole "software engineering" thing, and the fact that someone out there is taking an active interest in what my friends and I have created is really, really encouraging. Maybe that's just me being a touch narcissistic, but it feels good to know that another engineer is interested enough in our project to try it out.
Though I'm not [yet] a parent, I imagine this is a bit akin to seeing your kid spit up for the first time. Sure, it's gross and it smells funny, but damned if you're not just a bit proud that it's your kid that made that mess!
(Image: Wikimedia Commons, public domain)
According to the Deacon project roadmap, tomorrow is supposed to be the day we release our Beta edition. The library, at least, is feature-complete for Beta at this point - mostly because we identified very few new features between Alpha and Beta releases, choosing instead to focus on increasing the robustness and eliminating (sometimes preemptively) bugs.
What's missing is testing. We haven't got much expertise in the realm of testing Android applications - in particular, because there are a lot of different conditions that Deacon needs to be subjected to in order to test out its error-handling capacity, we'd really like to automate this testing. F8'ing the emulator over and over gets old very quickly! In particular, we'd like to be able to write tests that automatically toggle the emulator's (or a real device's) network connection off and on, and switch between 3G and WiFi connections. So, we turn to you, the dev community - can anyone recommend a clean way to do this without resorting to hacking around with airplane mode?
If you can help, please leave a comment on this post, check out the corresponding open question at Stack Overflow, or hit us up on the Deacon project mailing list! We'd offer you a free copy of Deacon, but since that's already open-source, the best we can offer is to buy you a beer if we should ever meet (say, at Google IO 2011?)...
As for that Beta release - well, there aren't any giant nagging to-dos holding it back, but by the same token little has changed since Alpha. It would certainly make a nice 30th birthday present for me, but I feel it should offer a bit more value. Hanging out the "Beta" flag might encourage more developers to test out Deacon, which would hopefully garner some feedback and even more opportunities for us to improve the library. For tonight, I think I'll sleep on it...