Leap Touch v2.0

Leap Touch version 2 is now available for Chrome, Safari and Opera with Firefox version submitted and waiting for approval from the addon store.

What’s new?

  • New platforms: We’re the first Leap Motion extension available for Firefox, Safari and Opera, and the second available for Chrome.
  • New cursor: Larger and easier to spot, and now gives feedback about what movement in each direction will do, and when clicks have occurred.
  • Low-impact gestures: Weeks were invested into trying as many gesture types as possible, with a focus on reducing the impact on your joints.
  • New click gesture: Point one finger at the link and click inwards with your thumb. Hold out two fingers and do the same to open in a background tab. Or press the space bar to click and the Ctrl key to open in a background tab.
  • New scrolling method: Point with one finger and move closer to the screen. The cursor will change to indicate you’re now scrolling, and inertia continues the scrolling when the finger is pulled back.
  • New calibration system: Allowing more accurate mapping of hand location to the screen, and the ability to fine-tune the calibration further by pointing and pressing the arrow keys.
  • New help screen: Displays when both hands are held out, and will stay visible with a close button if read for more than a few seconds. Gestures can be clicked to disable any you don’t want.

Things we’ve learned:

  • YouTube doesn’t count hits when a video is set to autoplay.
  • There’s a surprising percentage of Safari users interested in this type of extension.
  • People like a logo much more after a product has launched. Would you give the thumbs up on the Google logo before it launched?
  • The easiest way to burn out a developer is ask them to reimplement working software using a more difficult environment (minimum excitement, maximum headaches).
  • Even products like Firefox have trouble documenting their APIs fully. The information needs to be comprehensive, and easy to navigate so relationships can be understood easily.
  • Sometimes code just needs to be thrown away.
  • Firefox-specific: if you are planning to develop a very simple extension, use addon-sdk. Otherwise, take time to learn the old-way (XUL/XPCOM). It will save you a lot of time trying to work around limitations.
  • Firefox-specific: It doesn’t allow connecting to an unsecured local websocket from secure page, unlike every other browser.
  • Shortcuts at the research stage result in delays down the track (see above note about Firefox and addon-sdk).

Update (November 8th 2013): Opera version is now approved!

Opera Rejecting Extensions With Minified Code

On Friday we submitted our new extension, Leap Touch, to the Opera 15 extension store.

The upcoming Opera 15 has switched to Webkit for rendering, and includes compatibility with extensions designed for Chrome.

We submitted the exact same file to Opera that has already been approved for the Chrome extension store two weeks ago, and which has 425 users.

Today we received this email from Opera:

Hi! skaczorowski posted on your wall:

Status has changed for Leap Touch

Leap Touch v1.1.0 on Opera Current:


Message from moderator: We must be able to review the code in a reasonable manner. Therefor, the code shouldn't be obfuscated.

You can view your wall here:

This e-mail was automatically generated. To respond to wall posts please visit the above URL.

Sincerely – The Opera extensions team

The obfuscation they mention is just running the javascript files through a minifier, which reduces the code size by 39%.

We’re struggling to understand why we need to repackage the extension, in a wasteful manner, just to get the same code approved for another store.

Is Opera saying they will do a comprehensive code review on every line of extensions submitted to their store? Will they require documentation on all design decisions and processes involved? What about any server-side code?

Extension code is often loaded into every tab that a browser has open, and forcing developers to make this code verbose and readable is only serving to make Opera slower when running the same extensions than Chrome.

Currently 1.6% of visitors to our site from non-biased sources are using Opera, and frankly we’re tempted to just skip Opera and continue with our versions for other browsers.

Opera if you’re reading this, we love your software, and have done since the shareware days, but we feel this policy is broken.

Open the store up, make it easy for people to enjoy your browser, and stop wasting your developers’ time on things like this.


We just received this from Opera:

Hi! skaczorowski posted on your wall:

Hi as I written before “We must be able to review the code in a reasonable manner”, you can upload somewhere your not-minified code and give us a link to it, write what library are you using to minify and write a command which will minify your package. As fast as we read your code we will publish your extension.

You can view your wall here:

This e-mail was automatically generated. To respond to wall posts please visit the above URL.

— Sincerely – The Opera extensions team

We’re happy with this solution, thanks very much to the Opera team for their understanding and responsiveness.