start blog post

Adobe AIR vs Appcelerator Titanium: Round One

There's been a fair amount of recent hype about Titanium, at least in certain circles. We use Adobe AIR on a daily basis at work, so my coworkers and I have been very eager to see how the new Titanium beta compares, for better or worse. You can download the Titanium Desktop developer app here. Since this is still beta software, there are wrinkles the Appcelerator team is ironing out on a daily basis, but what I've seen so far is very promising.

(click screenshots for full-sized images)

Titanium Developer

The modestly named Titanium Developer is where you create, launch, and package apps. It also ties in the Appcelerator's cloud services so you can distribute (and update) your app to Windows, Mac, and Linux platforms, track download statistics, connect to the Titanium web community, and more. However, it is not where you actually write your code.

Titanium Developer's Edit Project tab Titanium Developer's Edit Project tab, which generates an application descriptor in a format similar to Adobe AIR.

Once your project is created, you have to hop over to an editor such as Notepad or Aptana, then hop back to Titanium Developer to test and package the application. Not so convenient. However, Marshall Culpepper has created an Eclipse plugin which helps integrate the Titanium SDK with Eclipse-based IDEs. According to the comments on that page, it may not play nicely with Aptana, so I haven't tried it yet.

Packaging Cross-Browser Applications

Building your application is easier than in Adobe AIR, as you don't have to deal with certificates during development or production. More importantly, no Adobe AIR red dialogs of doom. In my opinion, this can tip the scales strongly in Titanium's favor with regard to audience adoption — I've said before that only a developer would see a bunch of big red warnings and still hit Install; end users don't know enough about how their computer works to understand that it's OK if your desktop application actually runs like a desktop application.

This dialog sucks. No bigger screenshot here, sorry. Trust me, this AIR dialog sucks.
Cross-platform packaging options Versatile packaging options include whether you prefer to include the Titanium runtime in your installer, whether you want your application to be available to the general public, and whether you want updates to be distributed to existing users.

Life in the Appcelerator Cloud

Titanium Developer packages and distributes your application in Appcelerator's cloud. Cloud computing is becoming more and more prevalent in the modern software development life cycle, and it's nice to have this functionality built in.

Appcelerator quotas According to the Quotas tab, resources are "free during beta". No word quite yet on what the limits or rates will be once Titanium is out of beta, but presumably you will still be able to package and distribute applications on your own via the command line interface.

It Takes a Village

Built-in community features abound in Titanium Developer. You can read what people are saying via Twitter and FriendFeed right in the Developer application, and there's also an integrated IRC client where you can talk to the Appcelerator team and other Titanium developers to get help or just chat.

Integrated Twitter and FriendFeed results Integrated Twitter and FriendFeed results talking about Titanium.
Integrated IRC client Integrated IRC client to get realtime answers.

So How Does Titanium Stack Up?

Since Titanium is barely into its beta phase, there's still work to be done before a fair and complete comparison can be made. That said, here are some things I really like about Titanium:

  • No Sandbox — Your desktop app is now a real boy. No untrusted content, no sandbox bridges. However, this opens Titanium apps up to scrutiny by the programmng public; because the source files are freely available on the end user's computer, there is a risk that malicious third party applications can edit your source. While this is technically true of applications written in ANY language, the fact that we're dealing with interpreted (rather than compiled) languages can raise a few eyebrows.
  • Multilingual — JavaScript works in HTML, no surprise there. However, now you can write Python and Ruby code, right in your HTML's script tags. Interaction between JavaScript, Python, and Ruby methods is pretty seamless, and extensions to Titanium's own code can be written in C++ in addition to the above languages. Future releases will include support for PHP, Java, and possibly other languages.
  • Run external programs — Adobe AIR provides no built-in methods of running a third-party application, unless you count opening the system's default browser. Titanium provides two: Titanium.Desktop.openApplication(path) and Titanium.Process.launch(command). Very cool.
  • Titanium.Process.restart() — Short and sweet, that's how your program restarts itself. Since our deliverables at work typically end up on unattended systems that may run (and consume resources) 24/7, we have had to come up with strange and creative ways for our applications to restart automatically. In Titanium it's a non-issue.

What Do YOU Think?

Do you use Adobe AIR? Appcelerator Titanium? Both? Please leave a comment, let me know what you like or don't like about these technologies.

var tags = [, , ];

  • share this post:
  • email a friend
  • float this post
  • digg this post
  • share on stumbleupon
  • submit to technorati
  • tweet this post

end blog post

most viewed this week

least viewed this week