Evothings Studio 2.1.0

Göran KrampeBlogs

Tweet about this on TwitterShare on FacebookShare on LinkedInShare on Google+

After 3 months of coding and testing we are pleased to announce the stable version 2.1.0 of Evothings Studio!

This release packs quite a lot of new interesting features and improvements so there is no reason to not upgrade!

Here are all the gory details, but feel free to just dive in!

Move to Electron

With 2.1, we decided to move to Electron, a new strong base for building web based desktop applications pioneered by Github and exploding in popularity. Electron is today used by several others too, like Slack, Visual Studio Code and Atom.

This gives us more opportunities in integrating cleanly with the desktop in a cross platform way. It also opens up interesting integration paths with other high profile projects like VSCode, Atom etc.

New proper Installers

We now finally have new proper installers – a standard dmg for OSX, “one click” Squirrel based installer for Windows and a Debian package for Linux. This makes it more streamlined to install, reinstall and uninstall Evothings Studio.

We will also soon prepare good old zip archives since we have received a request for keeping those around.

Cloud Token and Licenses

In order for us to get a better grip on how our cloud resources are used, but also as a first step towards offering commercial subscriptions of Evothings, we are now requiring all users to get a “Cloud Token” from our website and then enter that token into Evothings Studio. This acts as an identity of the installation but is still fully anonymous.

Later on in august, commercial licenses will be available for subscription. Until then Evothings Studio 2.1 is still fully unlimited just as Evothings Studio 2.0. Starting in august a few functions will be capped, while the Forever Free version will always let you access all the basic services without cost just like today.

Web Bluetooth Support

Web Bluetooth is a standards initiative by the W3C Web Bluetooth Community Group to create a standard JavaScript API for BLE communication.
Originally designed to enable apps running in web browsers to communicate with BLE devices, the Web Bluetooth API is now also available for mobile apps built with Apache Cordova which is the base platform of Evothings.

The Web Bluetooth API specification makes use of ECMAScript 6, a new version of JavaScript that features a new function closure syntax and a whole slew of other improvements. You can write Web Bluetooth applications using ECMAScript 5, but the code becomes more readable with ECMAScript 6.

Mikael Kindborg has for 2.1 implemented support for both Web Bluetooth and ECMAScript 6.

To bring Web Bluetooth to mobile apps, Mikael teamed up with Rob Moran (@thegecko), who works in the mbed team at ARM and is part of the W3C Web Bluetooth Community Group. Rob has created Bleat Bleat, which offers libraries and a pluggable architecture for BLE APIs in JavaScript, and thanks to Bleat, we now have good Web Bluetooth support in Evothings Studio.

Bleat is included with the two new example apps that uses Web Bluetooth.

ECMAScript 6

ECMAScript 6 or ECMAScript 2015, or simply ES6, is a new version of the JavaScript language. ES6 has several new features (such as arrow functions) that fit nicely with the Web Bluetooth API.

ES6 is not yet widely supported natively on mobile devices but Mikael solved that by including the Babel compiler in Evothings Studio. When you click the Run button in the Workbench, ES6 source files are transparently translated to ES5, and your app launches as usual on connected mobile phones.

Run the example Hello ECMAScript 6 to see ES6 in action.

Visit the ECMAScript 6 documentation page to learn more.


What goes on on-board the mobile device during development, prototyping and testing? How can you probe what a bluetooth radio can see in terms of other devices and services? In the Evothings Workbench, there is such an option nowadays, as well as the ability to conditionally inject files into the code running on the phone or tablet for various purposes – the sky is the limit. One of the most interesting additions to Evothings Studio in this release is the Instrumentation window. It’s a game changer, we can sense it, while it might be hard to grasp even for us all the possibilities enabled.


You have to see it for yourself, just open the Viewers window reachable by clicking the “Viewers” button in the top right corner of the Workbench and learn more about it here.

Note that the instrumentation feature is one of the things we are offering in our commercial package. This means you can still try it out in the free version of Evothings Studio, but there will be limitations in place starting 1st august.

Online Examples

With this version of Evothings Studio all Examples are hosted online and downloaded on demand when being Run or Copied. This means new examples will show up without you having to install a new release of Evothings Studio. The Workbench actually refreshes the lists every 30 minute, or if you restart the Workbench.


We are also adding a mechanism to easily pick and choose from Libraries to use in your application. To begin with jQuery is available in this form, but we are now adding all our own libraries in the same way – and can add more external libraries too. The Libraries list and the libraries themselves are hosted online just like the examples are.


The way you add or remove a library to an application is through the new Edit button which opens up a dialog where you can edit metadata for the app, and configure what libraries to use. When adding a library this way it’s also added as a script tag in the index.html file, right before the closing head tag.

Extended metadata for Apps

We have added several new fields in evothings.json for Apps:

  • name – a short name used in tools and as directory name etc.
  • description – a one paragraph description of the app.
  • version – a version string not containing spaces.
  • tags – string tags of different types (license, vendor, platform, comm, protocol)
  • libraries – a name + version pair representing a used Library in your application

The mentioned Edit button opens a dialog to modify these metadata, although all of these fields are not yet in the dialog.

Several new examples

Since the stable version 2.0.0 a bunch of new examples have been created:

  • Three new micro:bit examples
  • Two new Adafruit Bluefruit LE UART examples
  • An example for Arduino 101
  • Three new Dialog examples
  • One new MediaTek LinkIt Smart 7688 Duo example
  • One new Raspberry Pi 3 example

Each example has its own documentation page, so just click the “Doc” button to find out details.

Repository URLs

We have also added the ability for Evothings Studio to load Examples and Libraries from additional online repositories in addition to our own at Evothings.com. There is a setting called “Repository URLs” and there you can add one or more extra base URLs where examples and libraries are hosted. More details on how you can host apps and libraries are forthcoming, but until then contact us on gitter for instructions on how to do this.

A new Support portal

In order to better serve our open community as well as our commercial customers we decided to use Freshdesk for support tickets, discussion forums, knowledge base and more – you can find our support portal at https://evothings.freshdesk.com. It doesn’t matter if you are a paying customer or not – the support portal is open for all and you can easily login using Facebook, Google or Twitter or just make a regular email based signup.


However, if you do decide to get a commercial subscription we have SLAs to govern our support process for your tickets.

All relevant entry points to our support portal can also be found conventiently inside Evothings Studio in the Help->Support sub menu.

Several smaller improvements

And we’ve also done some housekeeping;

  • Added a “Disconnect all viewers” function in the menu
  • Added a “Doc” button to all apps and libraries that opens a documentation URL in the external browser
  • Made so that the “Code” button opens up the folder of the app itself, and not its parent folder
  • Improved error handling when network is bad or offline
  • Improved look and feel of main Workbench window using Bootstrap tabs
  • About dialog now shows build timestamp and license including limits.

Coming next…

We have a lot of ideas on where to go next with Evothings Studio, but do come and talk to us with your ideas too! The best place to reach us live is gitter, but we also have a brand new forum up which you can also use.

Hope you like this release of Evothings Studio!

regards, The Evothings Team

Questions & Answers? – Visit the Evothings Forums

Our Gitter chat room, where we hang out, all developers welcome to join!

Our IRC channel on Freenode (old school and may be empty!)