Rich Cross-Platform Desktop Applications Using Open-Source Titanium

The Titanium open-source platform lets Web developers leverage their Web skills for creating desktop applications.
Getting Started with Titanium Applications

Enough theory—it's time to get our gloves out and start working with Titanium. First, download the latest version of Titanium from, and execute the package:

$ chmod +x Titanium-PR3-SDK.bin
$ ./Titanium-PR3-SDK.bin

You'll be greeted by a window containing the License Agreement; click I Accept to continue. Wait for the installer to finish, and the next thing that pops up on your screen is the second tool that you'll use the most while developing applications for Titanium (aside from your favorite text editor): the Titanium Developer.

Titanium Developer is the main tool you need for developing Titanium applications. It features several tabs for different purposes, ranging from packaging your app, managing projects and discovering cool stuff from other developers (Figure 1).

Figure 1. Titanium Developer

The first tab is Projects, which helps you manage your Titanium projects. Here you can create new projects, run them for testing and package them for distribution (Figure 2).

Figure 2. Projects

The Sandbox is a very useful tool for testing code without having to create a new project. To see it in action, try typing the following snippet of code into the text area on the Sandbox tab, then press Launch (Figure 3):

<div id="output"> </div>
                        = "Hello World from Titanium";

Figure 3. Sandbox

Congratulations! You just launched your first Titanium application via the Sandbox. Titanium Developer takes the snippet of code and launches a Titanium app using that code. On the side of the text area for the snippets, there are buttons for popular JavaScript frameworks. You can click one of those to add them to your sandbox application for testing instead of having to include them yourself.

The next tab, Apps, is a tool for discovering other awesome Titanium applications. Titanium enables you to distribute your applications easily via a distribution and packaging cloud. Every app that's packaged as public will be featured in the Apps tab, making it easier for you to share and distribute applications to your users (Figure 4).

Figure 4. Apps

Up to this point, Titanium Developer probably seems like any other development tool. You use it to create new projects, test them and package them for distribution—normal development stuff. But it goes beyond that. Titanium Developer isn't merely a development tool, it's a social development tool. Social development harnesses the power of social media for engaging, learning and collaborating with a global community of developers. That's why Titanium Developer contains two other tabs: Community and Feeds.

The Community tab contains a full IRC client that connects to the official Titanium IRC Channel, enabling you to talk to other developers, get help with tricky code or even share tips and tricks. The Feeds tab features live Web feeds from Twitter and FriendFeed regarding Titanium, so you'll be up to date about everything that's going on with the platform. The same tool that you use to create, package and deploy projects is also a tool that connects you to the worldwide community of developers working with the same platform as you (Figure 5).

Figure 5. Community Feeds

And, the best thing about Titanium Developer? It's actually built using Titanium.

Titanium Project 101

It's easy to create new projects using Titanium Developer. The Projects tab takes you step by step into creating a new project. The first step asks you which JavaScript libraries you'd like to add to your project. You can add libraries by clicking on their logos, and you also can opt out by not clicking any. For this example, try adding MooTools.

Next, you need to input information about your project. Type anything you want for the Project Name, Project Description, Publisher Name and Publisher URL fields. For the Project Location, click on the small folder icon on the side of the text field, and select the directory on your system where the project will be placed. Finally, you need an icon for the project, so click on the small folder icon on the side of the field for Application Image, and browse for an image file. Click Create Project.

The Project tab now displays your project on the list and some project information on a window on the right. This window has three tabs: the first one displays your project's information, the second one displays links to your application packages, and the third one displays distribution and download statistics for your application (Figure 6).

Figure 6. Create Project

Select the project in the list, and click on the small box icon. This brings you to the Packager where you can run, package or install your application. Click on the Package and Launch button to launch your newly created project.

You now have your first project, but it doesn't really do much at this point. So, open your file manager and navigate to the directory you selected for the Project Location when you created your project.

Inside your project directory, you'll see several files and directories (Figure 7):

  1. dist: the directory where Titanium Developer stores your packaged app so you can launch it for testing.

  2. manifest: a file used by Titanium to determine settings for packaging your apps, like your app's information as well as settings and versions of the modules you're using on your application.

  3. tiapp.xml: the descriptor file for the application. This is used by Titanium to determine settings before running your application, such as settings for the initial window, version information and copyright information.

  4. Resources directory: where all your application files are stored—your HTML pages, stylesheets and scripts all should be kept here.

Figure 7. Project Directory

Titanium is very lenient when it comes to the structure of the Resources directory. You can create subdirectories to structure your project in any way you want, depending on your style.

Now, open the index.html file inside the Resources directory with your favorite editor. It should look like this:

<script type="text/javascript" src="mootools-1.2.1.js"></script>
Welcome to Titanium

As you can see, it's just a simple HTML page, and Titanium Developer already included a link to the MooTools script (which also is included inside the Resources directory). Now, edit the file so it looks like Listing 1.



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Titanium: good idea, bad implementation

Anonymous's picture

...except, the product is unreliable as stink (I am using 0.82). I am surprised you were able to get your example code running. Every corner I discover new show-stopper bugs that shouldn't even be in a beta product. On top of that, because you rely on their "cloud", you are at the mercy of their server code too - which is crazy unreliable. I would say 90% of the time I am not even able to get an installer built! And, once the installer is made, often it is corrupt - or doesn't install properly. Just go try to install some of the "example" apps on appcelerator's site - I only tried 3, but 2 wouldn't install properly. Geesh!

The idea is terrific: native apps with a UI in an embedded webkit. But the implementation is weird and unreliable. And, the whole so-called "cloud" bit to their development story is ridiculous. Let's hope 1.0 is dramatically better quality.

One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix