appcelerator Titanium Framework

By | 2 Apr 2010

Generate JSDoc file for your IDE

To get auto-completion for the Titanium framework, you have to let your IDE know of all available methods and properties. Most IDEs can do this by parsing a JavaScript file. If you add JSDoc tags to it, you will even have descriptions, parameter hints, etc.

For more information about JSDoc, take a look at these links:

My very first try was with the 0.8.3 API and I created a JSDoc tagged JavaScript file by hand. The file is still available here: titanium.js

Now there’s a file apicoverage.json available from the Titanium Mobile Git repository which contains names and descriptions of all the functions. You just have to get this into JavaScript code for your IDE to understand.

I wrote a Python3 script, which parses the JSON of the apicoverage.json file and generates a dummy JavaScript file for your IDE. To get that file, first run:

wget -N http://github.com/appcelerator/titanium_mobile/raw/master/site_scons/apicoverage.json

After that, download this script, put it into the same directory and on Linux make it executable (chmod a+x genapidoc.py):

Now you only have to run this command:

genapidoc.py > Titanium.js

or on Windows run this (make sure you installed Python 3.x.x):

python.exe genapidoc.py > Titanium.js

Problems in Linux

Doesn’t start on Lucid

If Titanium Developer doesn’t start on Ubuntu Lucid complaining about /usr/lib/libgtk-x11-2.0.so.0, go to $TITANIUM/runtime/linux/1.0.0 and delete the files libgobject*, libglib*, libgio* and libgthread*. Maybe repeat that in older versions of the Runtime.

See support.appcelerator.net.

Can’t install to device

If you can’t install apps to your device connected via USB, check the list of attached devices running the following command (from the Android SDK):

$ ./adb devices
List of devices attached 
????????????    no permissions

If you get a device listed as ???????????? no permissions, do the following:

$ sudo ./adb kill-server
$ sudo ./adb start-server
$ ./adb devices
List of devices attached 
HT9CVPxxxxxx    device

See this thread for details.

5 thoughts on “appcelerator Titanium Framework

  1. Joacim Boive

    Brilliant stuff!

    Didn’t work with the default Python installation on Mac (Snow Leopard), but that’s not the fault of this script but because of the old Python version (2.61).

    Upgrade to the latest version (I used 3.1.2) from here:
    http://www.python.org/download/releases/

    To use the new version on OS X:

    Open terminal
    python3 genapidoc.py > Titanium.js

    Keep up the great work!

    /J

    Reply
  2. Joacim Boive

    The api at github.com is the old 0.8 as far as I can tell. I do know it’s missing a lot of methods and function from 1.3 at least. I checked the original apicoverage.json file to verify this.

    The updated api.json is available from: http://developer.appcelerator.com/apidoc/mobile/1.3/api.json

    However… Your script doesn’t work with this new version as they’ve seem to have reworked the structure totally! In my humble opinion the new structure is incorrect as it’s too flat (no parent/child relationship between objects in the JSON, ex; Titanium & Titanium.API instead of Titanium{ API{

    Could you please rewrite your script to make it work with the latest version?

    Keep up the great work!

    /J

    Reply

Leave a Reply