InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Template-Based Development on Mobile Platforms

IP.com Disclosure Number: IPCOM000234925D
Publication Date: 2014-Feb-16
Document File: 7 page(s) / 68K

Publishing Venue

The IP.com Prior Art Database


Software developers prefer to use workstations with large screens. Sometimes, however, they find themselves in situations where these are not available, and they need to program on smaller devices, such as mobile phones and tablets. This is quite difficult on both input and output. On input, these devices usually have no keyboards (or soft kebyoards that are very cumbersome to use), and need to use touch or voice. On output, the screen sizes are very small, and can only show very small amounts of code, requiring a lot of scrolling. There are various attempts to solve this problem, but they mostly focus on creating new programming languages for these platforms. These is unlikely to find a large following in the developer communities, since developers will not limit themselves to small devices and will not switch languages for this purpose. This paper describes a way of using templates to enter new code and edit existing code in mainstream languages such as Java and Javascript. Templates allow the system to show code in a very concise way, so that more can be shown on small screens. They can also be descrbied very concisely in speech, making it very effective as an input mechanism. Templates can be customized by individual developers, making the process fit individual tastes.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 19% of the total text.

Page 01 of 7


The Problem

Programming for mobile platforms is becoming increasingly important. Most developers have their mobile phone with them more often than they have their laptops, and will

wish to perform some of their program development tasks directly on their phones or tablets, and switch back to a desktop or laptop when they reach home or office. This presents two major obstacles: first, the lack of a keyboard; and second, the small screen space, which limits the amount of code that can be shown simultaneously.

Some have advocated the creation of new programming languages for mobile platforms, but commercial adoption of new languages is very rare, and requires a very large investment in infrastructure. Instead we focus on easy ways to use existing languages, such as Java* and Javascript*, on mobile devices. This paper addresses both challenges, and offers a method to enable programming on mobile and other devices with limited input and output capabilities, by using templates to make voice and touch input very effective for programming, and showing much more code in a limited space.The context of this paper is program editing, including the initial composition of a piece of code, as well as making changes. It does not address other activities such as debugging, performance monitoring, etc. This idea is also relevant to programming on laptop and desktop systems, for people with disabilities such as repetitive-stress injuries (RSI) that limit keyboard usage, and partial vision loss, which requires the use of very

large fonts.

Programming by Voice and Touch

Dictation systems exist today, but their use for programming is limited. Because they have no understanding of the domain, most of the program needs to be dictated letter by letter, which is impractical. By building an understanding of program syntax and some semantics a dictation tool, it is possible to make this process much more efficient. For example, the spoken words "for i from 0 to n" can be interpreted as the Java* structure

for (int i = 0; i < n; i++) {


The current insertion point would be left at the body of the loop. Furthermore, the system will know that this place in the template is called "the body," so that a further instruction to edit "the body of the for loop" will return to that point. Alternatively, touch can be used for the same purpose.Other "places" can also be associated with templates. For example, the template above can define "the loop index" as referring to the variable i, so that the developer can later say "rename the loop variable to j". The general form of a Java* for statement can define the "initialization", "test", and "update" parts, referring to the three parts inside the parentheses. A conditional template may

have three places, referring to the condition, the consequent, and alternative.Similarly,

-Based Development on Mobile Platforms

Based Development on Mobile Platforms

Page 02 of 7

an "iterate" template can be defined to generaliz...