Titanium Project Lead / Hacker Extraordinaire
• What is Titanium?
• High Level Architecture, Runtime
• API Overview
• Guided Lab: Screengrabber
What is Titanium?
• An open source framework for building native apps
using web technologies
• Titanium Desktop: Windows, OSX, Linux
• Titanium Mobile: iPhone, Android
#titanium_app on irc.freenode.net
• Single Site Browsers (Fluid, Prizm)
• Adobe AIR
• Cross platform GUI toolkits (Qt, wxWidgets, XUL,
• Next gen web tech: HTML5, Gears, CSS3
• ... And lots of caffeine!
• UI with HTML5, CSS, Canvas. The best of the open web.
• Languages can be intermixed automatically.
• Native desktop functionality at your ﬁngertips.
• Titanium.* APIs are available in all languages
• Windows (XP/SP2 -> 7), OSX (10.5->10.6, Universal), Linux
(Debian based distros, Fedora, SuSE)
The Desktop Runtime
• Fully conﬁgurable distribution options:
• “Bundled” : Runtime is packaged with your app, no seperate
• “Network Install”: A native installer downloads dependencies
• Remove modules you don’t need to cut down on binary size
• Reuse the runtime already on the user’s machine
• Runtime size: OSX: ~17MB, Win32: ~15MB
Synchronous and Asynchronous (HTML5) APIs
Launch processes, read/write from pipes
And much more..
• Desktop: Take screenshots, open URLs, applications
• Comprehensive language support:
• Ruby 1.8.6 (1.9 with GVL coming soon)
• Python 2.5.4 (2.6 coming soon)
• PHP 5.3 (in development)
• Lua (in development)
• C/C++ Native bindings
• Java / C# planned post-1.0
• Check out some of my demo apps:
• http://github.com/marshall/quicksnap (Uses Ruby)
• Desktop testsuite (Drillbit)
• Full API doc: http://codestrong.com
• Support forums: http://support.appcelerator.net
• Used for creating, managing, packaging and testing
your native apps.
• Requires sign-up for Appcelerator Network (forum
support, e-mail list, other services)
• Is actually a Titanium app!
Obligatory “Hello World”
Using the sandbox to quickly test and run code
Screengrabber: Our ﬁrst app
• An app that takes a screenshot, and shows it to the user
• App walkthrough:
• Create the project in Developer
• Overview of conﬁg ﬁles, manifest, app layout
• Quickly roundtrip prototype, show off debugging, etc
Step 1: Conﬁguration
• Conﬁgure Windows, and their properties
Step 2: HTML, CSS, JS
• clean out $ROOT/index.html
• make a JS script, a CSS stylesheet
Step 3: Write the JS
• APIs we need from Titanium:
• Titanium.Filesystem.getFile() / getDesktopDirectory()
• Once your app is written, you can use our cloud services to
package and distribute your app.
• Automatically packages with the conﬁg you specify, for
the platforms you want to support
• Built-in analytics to track who’s using your app,
Wrapping it up
• Current release: 0.6
• 0.7 scheduled for end of Sept., 1.0 GA soon after
• Come visit IRC for help, or to chat us up
• #titanium_app on irc.freenode.net
• Extra credit: using Python, Ruby during the hack session
• And now, Lunch!