Giter Club home page Giter Club logo

objc-woot's Introduction

Objective-C WithOut Operational Transform (WOOT) Implementation

WOOT demo

A working Objective-C implementation of the collaborative editing algorithm WithOut Operational Transform (WOOT). This example is ready to build and run as an iOS app using Apple Xcode.

WOOT is a framework that ensures intention consistency between multiple users' edits. Similar to collaborative editing without a central server.

Credits to G ́erald Oster, Pascal Urso, Pascal Molli, Abdessamad Imine. Real time group editors with- out Operational transformation. [Research Report] RR-5580, INRIA. 2005, pp.24. ]) WOOT research paper link

Use it now

Mesh Notes iOS icon

I used this implementation in Mesh Notes, a free iOS app that allows nearby users to collaborate on notes.

↓ Use it in your own project

  • Download, open Xcode project, and run.
    • The MainViewController contains two UITextViews that receive each other's edit operations and process them.

Notes

  • This code was mostly copied from the finished version of Mesh Notes, my iOS app that uses this implementation of WOOT.
  • The UITextView delegate methods are implemented in the WOOTTextViewDelegate class.
    • Cut, Copy, Paste operations are broken down into individual insert and delete operations.
    • The project deployment target is set to iOS 9 because iOS 8 sends a different set of NSRanges to UITextViewDelegate.
  • WString class contains most of the WOOT logic.
  • WCharacter+LocalPosition and WCharacter+Special are not actively needed to make the algorithm function. All references to them may be removed if desired.
  • You are free to modify and use the code in your projects.

License

Objective-C WithOut Operational Transform is made available under MIT License.

objc-woot's People

Contributors

ansonl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.