Calling all Titanium Hackers! Prove your skills and win!

human hand shaking robot hand isolated on white with clipping path, 3d illustration

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 use built-in Titanium Mobile JavaScript APIs (no native modules)
  • 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)

Submission Guidelines

  • 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!


    • @Darren someone may, but there have been lots of community efforts around this already. We’re looking to centralize collaboration on a single client library.

  1. So, does this mean that the plugin documentation has improved over the past year ? I remember it being pretty hand wavingly vague about what the difference in iOS land is with regard to views and views proxy, etc. I abandoned the TiCalendar precisely due to bad documentation :

    • @Stef, in this case we’re talking about pure JavaScript (not native modules (plugins)) – on the subject of native module development, our docs do need improvement. Just in the last few months we’ve spun up a team just to work on module development and part of their mandate is to beef up our docs and provide actual reference documentation about Titanium’s extension architecture and object model. Also, we’ll be releasing our module development lead Jeff English’s codestrong presentations on module development free on our dot com site once the videos from the conference are ready.

  2. But we’re talking about a Plugin with Demos not some fully designed GUI, right?
    So its not the beautifully designed interface who wins, but the best and easiest to use JS API-Module, right?

  3. Hey Kevin, I think it’s ~slightly~ ironic to put as one of the requirements for cream of the crop ‘Good API docs and getting started guide’ when .. well. you get the point 😉

    I want to love titanium, I do. I sat on freenode and helped out in the Ti-channels (nick: zodiak) for about 4 months a year back. The comment comes from love and a ‘call to arms’, not from anger or resentment.

  4. Please guys!

    Make a “clone” of the Appcelerator made Facebook library that is a core part
    of Titanium. It is awesome. The current Twitter libraries are not as good. Please look at that one for guidance.

Comments are closed.