EDIT: I’m still trying to conceptualize a mobile OS IDE that can be used from within a mobile OS rather than the desktop.
I mean sure, extending a mobile OS to take on even more capabilities and interact with or control other devices is a good thing, but should software development for mobile device operating systems only reside on desktop operating system IDEs?
But if it shouldn’t, then how does one turn the mobile devices like the iPhone and iPod touch from perpetual receivers and consumers of software code into tools for production of software code?
Just like graphic and audio editing software, IDEs usually take up a number of windows on a desktop in order to keep the various options and functions perpetually within the relative periphery vision of the editing user. Furthermore, like the bare-bones text editors, they are also intensive upon the keyboard for input of source code into the text area.
On mobile devices, however, there is very little screen real estate for windowed applications. Even on the current iPhone OS, which has no physical keyboard, the virtual keyboard which pops up every time that one needs to type in a text field (say, for Google or Yahoo search) tends to take up around half of the screen from the bottom up.
So I look at the keyboard metaphor, and I wonder about how it could be best applied in the creation of content, or even software code.
What if the virtual keyboard in the iPhone OS can have dynamically-added extra buttons for code preset templates?
It could work similarly to how wiki articles on Wikipedia or Wetpaint allow one to highlight a word or set of words and choose a way to format the highlighted section, such as Bold, Italics, Underline, Strikethrough, <ref></ref> or Soft Redirect. The graphical cues for creating page templates are even more apparent on Wetpaint and Pbwiki, which uses alot more Ajax to generate such cues.
Even in desktop IDEs, code templates are selected for any new project through graphical means, as shown in the most recent iteration of Dashcode.
So graphical code template buttons are one way to extend the virtual keyboard’s functionality into creative territory. Such buttons could, upon being tapped, indicate the placing of an entire snippet of code for each tapped button in the top text area.
Another approach to developing software on the iPhone OS from within the iPhone OS is to develop brand new computer languages that would be entirely “graphical” or “non-textual”: in other words, while being rendered by software that was written and compiled in textual form, the code that would be tapped from the virtual keyboard’s dynamically-added symbol buttons would not result in a placing of text code, but rather a placing of graphical symbol code.
It’s alot like how one can talk to someone using symbol language, like “Eye Heart U” (with the respective symbols to indicate pronunciation) to say “I Love You”, or how keys on a game controller are marked with symbols to indicate the order by which the next secret move of your character will take place.
The downside of creating an entire computer language out of graphical symbols is that one must be familiar with what each symbol may indicate as an instruction in the greater source code. Does it indicate a single equivalent of a human language word, or does it indicate an entire idea that may be represented by a thousand human language words, such as the code template button idea that I suggested earlier?
Finally, a third idea to “create” something that can be installed on any iPhone OS device or within any pertinent iteration of an iPhone OS application as a “script” in order to render a same or similar action would be to “record” a workflow. This could be determined in a hypothetical “file type options” dialog box.
This would work by asking you exactly what you want to do with a file type or file tagged with a keyword: do you want to save an archive of each file at this time every few hours/days, and do you then want to publish your file’s stats on a local or external database?
However, this approach would demand that the application or OS provides as many properly laid out options as can be thought possible within an application. I’d favor the previous two anyway.
Anyway, just a few ideas on the perfect touchscreen mobile IDE on the iPhone OS.