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.jsonCode language: JavaScript (javascript)

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.jsCode language: CSS (css)

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

python.exe genapidoc.py > Titanium.jsCode language: CSS (css)

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 permissionsCode language: PHP (php)

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    deviceCode language: PHP (php)

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

Your email address will not be published. Required fields are marked *

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)