Titanium & Cordova support for an existing Javascript messaging client library

  • Posted:
  • Proposals: 2
  • Remote
  • #672719
  • Expired
Colin J.Sunil S. have already sent a proposal.
  • 1

Description

Experience Level: Expert
General information for the business: Real-time messaging platform
Description of requirements/functionality: We have built a number of open source client libraries for a real-time messaging service that is due to launch very soon. You can see the array of libraries at https://github.com/ably. We currently have a fully tested feature complete Javascript Browser library and a Node.js library for the Ably real-time messaging platform, see https://github.com/ably/ably-js. We would like to reuse this library with Titanium and Cordova so that mobile developers on these platforms can use our real-time message service.

As Titanium and Cordova clearly support Javascript, we do not expect that there will be many changes needed for the libraries. The bulk of the work is as follows:

- Plug in suitable transports to replace the WebSocket & HTTP transports that browsers & Node provide. Note quite often the standard browser transports can be used, however where WebSockets are not supported on the target platform, a native WebSocket driver will be needed. There are plenty of available drivers available already that can be used, see https://github.com/mkuklis/phonegap-websocket and https://github.com/masuidrive/ti-websocket-client. We currently support a number of transports but are happy to drop down to WebSockets and HTTP only on mobile.
- We have a test suite currently that runs with nodeunit. You will need to figure out how we can run this test suite in the target platforms. We would ideally like this to be run using Travis CI, however as we have not developed on these platforms ourselves, we would like your advice on how we an run automated test for Cordova and Titanium on say iOS and Android, and ideally Microsoft as well. One way or another, we will need the system to automatically build and run the tests using Travis, and if there are some platforms that require manual testing we can discuss that.
- We require you to build a very simply chat application that demonstrates the use of presence, messaging, and token authentication so that developers have a good example starting point. The app can be ugly, we don't care, as long as the implementation is very simple and can run on the target platforms.
- We have API documentation currently at http://docs.ably.io/client-lib-development-guide/documentation-formatting-guide/. If your implementations vary from the documentation there, then we will need you to inform of the differences so that we can update our documentation.
- You will need to package the library up as a plugin so that it can be used easily in Cordova and Titanium. Please advise us how this is best done.

As a reference, our client libraries loosely provide the following functionality: https://docs.google.com/document/d/1nMLSE47RbJC10EfYA7VrkpiMaOmGoDLo7fcIlxUlrok/edit?usp=sharing. Our complete client library spec is at https://github.com/ably/ably-ruby/blob/master/SPEC.md, however as you are not adding new functionality but simply making sure it works with Cordova & Titanium, it is unlikely you will need to consider this spec and should simply run the specs provided in the JS library.

We would expect you to fork the ably-js library if you wish to make any changes to that library, and/or create new libraries in our Github account for Phonegap and Titanium.

We would like to support at a minimum iOS and Android, and ideally Windows Mobile and Blackberry too, although those are optional and happy to negotiate on this.

If you are interested in this project, we are ready to get going immediately. We can offer you support on our Slack channel to help speed up any issues you may have or misunderstandings on the inner workings. We are also happy to chat this through with you in detail before you commit to anything.
Specific technologies required: phonegap titanium mobile
Extra notes: Please note we plan on supporting: iPhone, iPad, Android and optionally Windows Phone and Blackberry

When applying, please send me answers to the following questions. If you don't, I will assume you can't answer these questions and are therefore unable to do this job competently:

1. Do you propose using a new Github repo for Phonegap & Titanium projects, or would you advise incorporating the PhoneGap & Titanium functionality into the current ably-js library? Please advise your thoughts on this.

2. How will you approach automated testing? Please advise what you have done before and what you expect will work best.

3. How would you recommend we package these client libraries for Cordova and Titanium users?

4. Please send us work that demonstrates you have the knowledge and experience to work in both mobile development platforms.

5. How soon can you get started? How would you like to approach this project in terms of milestones we can agree on? Do you have any idea how long this may take?

New Proposal

Create an account now and send a proposal now to get this job.

Sign up

Clarification Board Ask a Question

    There are no clarification messages.