Easily connect your applications written in Objective-C to server applications that communicate with the [DDP protocol created by Meteor] and, if required by your server, authenticate with [SRP]. Out of the box, this library allows your iOS applications to communicate and authenticate with Meteor servers or any server using the DDP/SRP protocols.
September 2013: We are marking our first release, version 0.1.0! This includes (with lots of help from @ewindso):
- several changes that help stabilize the application in real world scenarios (i.e. reconnect).
- We added the ability to send DDP messages that invoke methods on your server (i.e. Meteor.call).
- You can listen for a notification that confirms a subscription request you've made is ready, there are notifications for auth failure, and you can now get notifications on a per collection basis if you want.
- You can now unsubscribe from updates for specific collections on the server.
- Finally, the ObjectiveDDP library and Example projects have been configured to play nicely with the latest Xcode version 5.
ObjectiveDDP should run well in iOS projects using ARC and iOS 5.0 or above. If you don't know what ARC is and a cocoapod sounds like something that goes in the fancy office coffee machine then you should probably ask one of your iOS nerd friends to help you out.
ObjectiveDDP ships with a todo application (of course) that illustrates much about how ObjectiveDDP helps a native iOS app interact with a Meteor server. To run it:
-
Clone this repo and navigate to the Example app:
- git clone git@github.com:boundsj/ObjectiveDDP.git
- cd Example/
-
Get the ObjectiveDDP cocoapod: (if you don't already have cocoapods, [get it])
- git clone git@github.com:boundsj/ObjectiveDDP.git
- pod install
-
Open the Example app in xcode:
- open Example.xcworkspace
-
Build and run the app in the simluator with the run command: ⌘R
NOTE: The app connects to a meteor server http://ddptester.meteor.com and has a hardcoded user name.
Note: ObjectiveDDP is a work in progress and subject to change. Although we do make an effort to remain backwards compatible with the original API, please check this readme and the project wiki frequently for updates to stay up to date.
The example application illustrates everything you need to know about integrating ObjectiveDDP into your iOS application. You can also reference the technical walkthrough in the wiki [ios boilerplate] section for the step by step details of creating a simple iOS app that can connect to a meteor server.
Please use this branch if you have forked the project and plan to send pull requests. It is also useful for testing new features that you read about in issues but are not in the master branch yet.
All tests are in the Specs directory and tests (which are actually the best documenatation) for the DDP protocol implementation are in the [ddp tests] file.
This project is independent, open source, and is not affiliated with Meteor. If you have questions, ideas about how to make it better, or want to help in any way, please feel free to leave issues and make pull requests on this repo! In particular documenatation pull requests are very much appreciated :)
###Special Thanks##
####ObjectiveDDP is supported by [ReachSocket]####
####Contributors####
- @stevemanuel
- @ewindso
- @boundsj (author)
[MIT] [DDP protocol created by Meteor]: https://github.com/meteor/meteor/blob/devel/packages/livedata/DDP.md [SRP]: http://srp.stanford.edu/ [git-repo-url]: git@github.com:boundsj/objectiveddp.git [ios boilerplate]: https://github.com/boundsj/ObjectiveDDP/wiki/ObjectiveDDP-iOS-Boilerplate [ddp tests]: https://github.com/boundsj/ObjectiveDDP/blob/master/Specs/ObjectiveDDPSpec.mm [get it]: http://docs.cocoapods.org/guides/installing_cocoapods.html [ReachSocket]: http://reachsocket.com/ [MIT]: http://opensource.org/licenses/MIT