v2.80 · 1 Sep 2026
targetSdkVersion to SDK 36 and Billing Library 8.0.0 to keep Google Play happy.Introduced a new cfg.EdgeToEdge option to enable edge-to-edge features in your apps so that you can draw under the status bar and navigation bar if desired.
You will see that the Hybrid template apps are now using modules instead of simple include files. We will be moving towards the use of modules going forward as they are now supported by most phones and browsers and work on front-end (browser) as well as back-end (NodeJS) code. They provide better protection against clashing of variable names/class names and a uniform and portable approach to modularisation, encapsulation and code re-use (which is always good).
The correct matching version of the APKBuilder is automatically used when downloading via the 'Plugins' menu. No need to manually install it for beta versions of DS anymore :)
We've added support for ESP32 based microcontroller boards when running Micropython and included some useful samples. See here if you are interested in experimenting with digital electronics:
We've updated the obfuscator component, so you can use more modern js libs in your code and make use of useful newer js features like the ?. operator and default parameter values on functions. You can also call this in your code using ide.obfuscate( src, dest ) if you want to export protected code (for example when building DS extensions or plugins).
You might notice that if you add a new JS-Module file to your project, then the generated class will extend a class called Binder. Doing this is optional but will make your life much easier when dealing with native callbacks or timer callbacks because it automatically binds all your class methods to your class instance so that you don't have to worry about the current context (ie. the this keyword will always refer to the enclosing class, not some random context which can sometimes happen in JavaScript).
app.CreateShortcut bug in APKs.app.GetSafeArea() method with cutout and system option.app.EnableBackKey(false) in Android 16 APKs.app.ListPermissions( "all/internal/external/usb" ) now returns use-able URIs.app.SetScreenMode( "game" ) showing black bar at bottom..*android_webview/browser.* errors in NodeJS apps.app.GetPermissions/CheckPermissions (for X version).app.GetNavBarHeight method.targetSdkVersion to SDK 35.wbs.SetOnWsReceive, wbs.SetOnWsOpen, wbs.SetOnWsClose callbacks.cfg.EdgeToEdge mode to enable it if available on the device.app.IsEdgeToEdge() method.app.SetOptions to force CORS checks on Hybrid and Python apps.ide.Obfuscate modal._AddOptions("NotifyService") making project behave like HTML project.app.QueryContent() always asking for "Media" permissions (use _AddPermissions instead).app.IsTablet response for Pixel7 (and other large phones).cfg.ESM is now automatic if 'export' or 'import' statements are found.app.CreateWebView() methods (enables desktop mode).WebView.SetOptions method so that (most) options can be changed at runtime.app.SetOnError in Node apps.app.DiscoverBtDevices is used.app.UnzipFile failure on some devices.cfg.ESM mode for recent Android WebViews.ext.deviceName and ext.appType fields to extension object.ext_OnProject callback.app.CreateNode method inside services.PlayStore.GetPurchases() not returning 'IAP' types.SetWeight( weight, orient ) method to all controls.Layout.SetWeightSum( sum ).cfg.NodeESM mode.os.homedir() func to return same as app.RealPath("/Private").app.CopyFolder (keeps UI alive when copying large folders).!buildapk option from Wifi-IDE.!buildapk (user.keystore musts exist).!buildaab command to Wifi-IDE.app.SetOnError method for Node based apps (trap errors to prevent app exit).app.CreateCrypt for old method).