Table of Contents

DroidScript 2.50

These are the most notable changes:

1. Premium users can now create a new type of app called 'Node Native' which allows you to combine the power of NodeJS directly into your apps! Under the hood, this means the main scripting engine will be NodeJS and not the Android WebView. However you can still use the native UI controls you that you would normally use, including the MUI.* controls.

This makes building apps that use a lot of Node functionality much easier as you don't need to send and receive lots of messages to a separate background node thread as you would have to do when using app.CreateNode().

You can do most things in Node Native apps that you would normally do, however you must use the require() function instead of the app.Script() method to include other scripts from your project. Scripts that are called in via require are scoped slightly differently, which means functions and objects declared like the following will not be seen by your main app -

function MyTest() { return “Hello” }

If you want a function to be global you need declare it like this -

MyTest = function() { return “Hello” }

Similarly with variables, don't use the var keyword if you want them to be visible globally.

Note: This is actually a safer way of working as it prevents name clashes and libraries overwriting each other's functions and variables accidentally. Ideally you should put your code into objects or classes for better protection and avoid using many globals.

2. The Wifi IDE now has much better code-completion for the MUI.* controls and you can jump right into the help docs from the code-completion tooltips.

3. The DS main app icon list is now much faster and this is partly due to the use of a new method for controls called Batch() which allows the batching of control methods into a single shot. This is particularly useful when writing your own components and you need to call ctrl.Set* methods lots of times but don't want to impact performance.

Here is the complete list of changes since the last official release -

(We bumped the number up to 2.50 as the new NodeJS support is a very significant change that warrants a major version number)

DS 2.50p1 (patch)

DS 2.50

DS 2.17b1

DS 2.14b1

DS 2.13b1

DS 2.12b1

DS 2.11b2

DS 2.11b1

DS 2.10b1