Touch IDE

Touch IDE

by Daniel Schlieckmann

App

A mobile development environment to create apps and scripts right on your phone.

About Touch IDE

Touch IDE is a touch-optimized, mobile-friendly development environment. Its programming language is easy to use and doesn't require tedious keyboard input. You can create and run your scripts on your mobile device without using a PC. The scripts are converted to pure HTML/JavaScript-based applications in the background and are therefore executed on your device immediately, without further compilation.

Touch IDE is a pure HTML/JavaScript app that should run quite well on your Ubuntu Touch device. Feel free to put an issue if you ran into problems.

Recent Changes

2.1.1:
You can now comment-out and comment-in commands and blocks. To comment-out, swipe to the right. To comment-in again, swipe to the left.
If you swipe on an if-, for-, foreach-, while- or loop-block, the whole block will be commented. Otherwise, the single command you've swiped on will be commented.

New commands:
“string" -- “to object”: Converts a JSON-string to an object.
“string” -- “download”: Stores the contents of a string as a file on the device.
“list” -- “to string”: Returns the JSON-string of a list.
“device” -- “get language”: Returns the current language (e.g. en, de, fr...).
“dictionary” -- “add object”: Adds an object to a dictionary (instead of a string).
“dictionary” -- “get object by key”: Returns a dictionary item as object (instead of a string).

2.1.0:
You can now publish your apps written in Touch IDE directly to the OpenStore! You can set the app icon, the version number (which will be counted automatically) and also a description.
There is also a general setting where you can store your API Key from OpenStore as well as your name and e-mail for the app manifest. So these data are reused for every app you develop in Touch IDE.
So, you can develop and publish apps right on your mobile Ubuntu Touch device without the need to install any kind of third-party tools.
See documentation (wiki) for details.

Further changes:
- added options dialog for projects
- “buttonbar” -- “add” updates the buttonbar if it's already visible on the screen.
- Fixed size of input boxes in modal dialogs
- Omit duplicate variable names when creating new class objects

2.0.4:
- New namespace “buttonbar”: Create a horizontal-oriented list of buttons.
- New commands “get first” and “get last” for collections and lists.
- New commands for “storage” namespace: “upload”, “download”, “set global mode”, “set session mode”: Offers cloud-sync of storage values. See documentation for details.
- New commands for an “app menu” in “page” namespace: You can now create an app menu which you can use to perform actions. See documentation of “page” namespace for more details.
- “Add string” asks for string content immediately. Before, you had to click on “Edit string”.
- Improved command reference (see https://www.touchide.net/doc)
- Corrected date format in data grids when displaying datetime properties.

2.0.3:
- New command: “image” -- “is pointer down": Returns true if the mouse button or the finger is pressed down on an image.
- Implemented modulo operator for numbers.
- “Options” dialog where you can set some options for the app (see menu in project selection screen).

2.0.2:
- New command: “image” -- “qrcode”: Creates a QR code for an image object.
- New command: “device” -- “scan code”: Opens a barcode- and qr code scanner and returns the scanned code as a string value.
- New command: “device" -- “open url”: Opens a url in the default web browser of the device.
- New command: “image” -- “zoom”: Zoom an image to a given percentage.
- New command: “image” -- "resize": Set a new width and height for an image in pixels.
- New command: “image” -- "left": Gets the left position (X) of an image in pixels.
- New command: “image” -- "top": Gets the top position (Y) of an image in pixels.
- New command: “image” -- "move to": Sets an image to a new position.
- New command: “page” -- “width”: Gets the width of the screen.
- New command: “page” -- “height”: Gets the height of the screen.

Bugfixes:
- Fixed problem with function params with spaces
- “image” -- “width” and “image” -- “height” now return a number instead of a string

2.0.1:
- New namespace: json
- New command “parse”: you can now parse json strings and convert them to objects with one command. So, you can e.g. fetch the result of a REST service and parse it easily.
- New command “to string”: convert any object to a json string.
- Fixed overhead in downloaded files
- Fixed a problem with “add var” command

2.0.0:
You can now create classes. Like in most other programming languages, a class can contain properties of different types which can be set by creating an object of this class. First, create a new class by clicking on the “c”-button. Then, create a new class object inside a function by clicking on “new..." -- “class object” and select the desired class you've created before. So you can now code more complex data types and store more information. You can also create a list of class objects which you can iterate by a foreach loop.

New object: data grid. You can show your list of objects as a data grid view. It will parse the properies automatically. You can ask for selected row and cell index. See documentation for more details.

Functions can now return different types: number, string, boolean and also a class.

The variables list now shows also the type of the variable. This makes it easier to pick the right variable. For objects, you can now select the desired property.

New namespace: storage. You can now store and get data from local storage. So your app can now persist data.

New namespace: check box. You can now add check boxes as controls.

New “set” command for boolean: you can now set variable values for boolean.

Touch IDE now sets more meaningful variable names by default when you create a new variable.

Bugfix:
Fixed delete button on comment lines

Focal-ready!

1.2.1:
This is a bugfix release with no new features:
- Repaired cloud sync
- Repaired file selection dialog

1.2.0:
Support for cloud synchronization (BETA!):
You can now use Touch IDE in the browser as well! You can create an account on touchide.net and sync your scripts that you have created on your device to touchide.net.
When you've created an account, you can enter the credentials in the Touch IDE app. After that, you can enable sync for every single script (it is disabled by default).
If you enable sync for a script, it will be pushed into the cloud when going back to the projects overview.
If you open a script with sync enabled, the app will fetch the current state from the cloud.
Please be aware that I declare it as “BETA” because it's new and errors might happen. If you have any problems, open an issue on GitLab or contact me on touchide.net (click on copyright link in the footer and contact me directly).

1.1.0:
Support for convergence / landscape mode: you now have a real desktop experience on landscape screens. You'll see the code window and the built app the same time. Every time you change something on the code, you'll see the result immediately. I call this feature “Live execution”. Of course, you can disable it by ticking a checkbox on the upper right side.

When you download your script as HTML/JS, Touch IDE will also create a .desktop file which you can copy to start your script from the UT launcher like a real app. See the wiki on gitlab for instructions on how to do this.

We also have these new features:
- new “button”, “text input”, “number input” and “text box” commands to create some controls you can interact with.
- new namespace “app” with two new commands:
-- “restart”: restarts the app
-- “duration”: contains the duration in seconds the app is already running
- new commands for geo location:
-- “activate tracking”: gets the current position permanently in the background.
-- “update geolocation”: changed behavior - gets the current position that was fetched by tracking. Does not ask for location permission anymore.
-- “update map”: updates an already shown map with the current position (map will be centered and the marker will be placed). In combination with these commands, you can create an app which shows the current position on a map.
- Possibility to backup and restore all projects: save a json file on your device and restore it every time (see new menu button on project selection screen).
- Optimized code editing: when the command bar pops up, the editor will scroll so that the selection will not go out of view.
- Optimized paste: you can now select an empty line to paste code.

1.0.2:
New functions:
- "string -- contains"
Checks if string contains of a portion of another string
- "string -- starts with"
Checks if string starts with a special string
- "string -- ends with"
Checks if a string ends with a special string
- "page -- pointer is down"
Checks if mouse or finger is down
- "page -- get pointer x"
Gives x position of mouse or finger
- "page -- get pointer y"
Gives y position of mouse or finger
- "image -- show at"
Shows an image on a specified screen position

New IDE features:
- "Function List" and "Variables List" are now in fullscreen on smartphone screens
- "New function" button was transferred into function list, therefore, more space for a "Selection Mode"-Button
- Selection Mode with Cut/Copy/Paste features

Bugfix:
Fixed squeezed button in top button bar

1.0.1:
Attention: I've changed the behavior of some data types and namespaces to create a unique, frequent structure. If you used collections, images, geo locations or web requests, you have to remove and recreate the script lines where these objects are created.
Also, the string functions (to lowercase, to uppercase etc.) behave different and have to be refactored in existing scripts.

- Hide buttons while script is running
- Set name of project as default top bar title instead of "Top-Bar"
- Command bar optimizations
- New commands:
- "image -- from file"
Allows to select an image from the device.
- "page -- ask"
Displays a confirmation dialog with buttons.
- "dictionary" implemented
Allows using a collection of key/value-pairs.
- Changed behavior of default datatypes "string", "number" and "boolean", new functions and methods for these datatypes
- Several bug fixes

1.0.0:
Initial release

Permissions

  • Webview
  • Networking
  • Location
  • Content Exchange
  • Content Exchange Source

Community Built

This app has been released under the GNU GPL v3 license. It is developed in the open and you can review the source code.

Content Rating

This app has not been rated

Self reported rating using Open Age Rating Service

Info

  • Published Date

    May 19, 2022

  • Updated Date

    Dec 14, 2023

  • Current Version

    2.1.1

  • Total Downloads

    4,383

  • Latest Version Downloads

    1,289

  • Supported Architectures

    all

Links

Reviews

xcx

Reviewed Mar 5, 2026 for version 2.1.1

There's a small learning curve but havin something like this on my device itself is pretty amazing

Matteo

Reviewed Sep 15, 2022 for version 1.1.0 (older version)

Top class app!

ManuelBoe

Reviewed Jun 14, 2022 for version 1.0.1 (older version)

Finally a modern and simple IDE for UT. It works perfectly on my asus-flo with a wireless keyboard.