Here at Appcelerator Developer Relations, there’s nothing we like more than a winner-take-all fight to the finish over who can write the best code. And it’s been over a week since we ran a developer contest, so we’re starting to get a little twitchy. In that spirit, we’ve decided to announce a Titanium development battle open to our entire community.
The challenge: a Twitter client library.
oAuth – it sucks. And every implementation out there is just a tiny bit different. But one of the implementations that developers want to use most is that of Twitter. We have had several implementations from both from us and from the community to provide Twitter integration, but the time has come for us to adopt one Twitter library to rule them all. Could we build it ourselves? Well sure, but where’s the fun in that? (FWIW we do intend to support the built-in Twitter APIs in iOS 5. But Android and iOS 4 still need a solution.)
So our challenge is this – two weeks. Submissions are due by midnight two Thursdays from today. The developer of the best Twitter client library for Titanium Mobile will receive an iPad 2, Samsung Galaxy Tab, or Nook Color as they choose. The winning client library will be forked and maintained by Appcelerator Developer Relations so that our community will always have a free, open-source, cross-platform Twitter client library.
Client Library Judging Guidelines
The winner will be judged by the Appcelerator Developer Relations team, and must meet the following requirements:
- Code for the Twitter client will be open source, released into the public domain
- Code must work on the current production version of Titanium Mobile, which is 1.7.2
- Implementation must be fully functional on both iOS and Android
- Implementation must use the vanilla oAuth 1.0a authorization flow, not xAuth. Embedded web view is probably your best bet.
- Implementation must be usable via CommonJS require (if it works with Ti.include, great, but require is… required)
The cream of the crop will also have:
- Good API docs and getting started guide!
- Lots of (ideally automated) tests
- High level APIs (abstract away details of the URL being hit, the composition of the request, and so on)
- The client library and any associated tests must be committed to a repository on GitHub
- The repository must be created and populated before midnight (Pacific Time) on Thursday (October 13th, 2011)
- The link to the GitHub repository must be mailed to Kevin (kwhinnery at appcelerator dot com) at the midnight deadline as well – please include [DEV CONTEST SUBMISSION] in the subject line
- The winner will be announced that Friday afternoon – the winning developer will be contacted via GitHub to arrange for delivery of their prize
There are lots of community implementations out there, but we’re looking for the best of the best. Grab one as a place to start, or start work on a fresh new one. We look forward to seeing what our industrious developer community comes up with!