Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Titanium + Ruby: The good stuff


Published on

  • Be the first to comment

Titanium + Ruby: The good stuff

  1. 1. Titanium + Ruby, the good stuff. <ul><li>Using the language(s) you know and love to deliver cross-platform, native desktop apps. </li></ul>
  2. 2. About Me <ul><ul><li>@marshall_law </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul><ul><ul><li>#titanium_app, #titanium_dev on </li></ul></ul>i'm not a morning person
  3. 3. Titanium.kind_of? <ul><ul><li>Titanium Desktop: Write native desktop apps using web technologies </li></ul></ul><ul><ul><ul><li>UI with HTML5, CSS, Canvas. The best of the open web </li></ul></ul></ul><ul><ul><ul><li>Code your entire app in Javascript, Ruby, Python, PHP, whatever. Languages can be intermixed automatically. </li></ul></ul></ul><ul><ul><ul><li>Native desktop functionality at your fingertips. Titanium.* APIs are available in all languages </li></ul></ul></ul><ul><ul><ul><li>Windows (XP/SP2 -> 7), OSX (10.5->10.6, Universal), Linux (Debian based distros, Fedora, SuSE) </li></ul></ul></ul><ul><ul><li>Titanium Mobile: Native mobile apps for iPhone and Android using HTML5/CSS/Javascript </li></ul></ul><ul><ul><li>Titanium Developer: the one-stop deployment and testing tool for Titanium </li></ul></ul><ul><ul><ul><li>Create and manage Titanium projects </li></ul></ul></ul><ul><ul><ul><li>Launch Titanium apps from source </li></ul></ul></ul><ul><ul><ul><li>Package apps for all 3 desktop platforms (using the cloud) </li></ul></ul></ul>
  4. 4. Project Info <ul><li>Open Source, Apache 2.0 License </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li>#titanium_app on </li></ul></ul><ul><ul><li>@appcelerator </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li> </li></ul></ul><ul><ul><li>current release 0.6.0, GA coming mid-Sept. </li></ul></ul>
  5. 5. Motivation <ul><ul><li>Adobe AIR </li></ul></ul><ul><ul><li>Single Site Browsers (Fluid, Prizm, etc) </li></ul></ul><ul><ul><li>Cross platform GUI toolkits (Qt, wxWidgets, XUL, etc) </li></ul></ul><ul><ul><li>Dynamic Languages (Ruby, Python, Javascript, etc) </li></ul></ul><ul><ul><li>Binding layers (Jython, Rhino, JavaScriptCore, etc) </li></ul></ul><ul><ul><li>Next gen web tech: HTML5, Gears, CSS3 </li></ul></ul>and tons of caffeine
  6. 6. Ruby Integration (hot) <ul><ul><li>Mix and match Ruby with Javascript (or other languages we support) </li></ul></ul><ul><ul><ul><li>Manipulate the DOM directly with Ruby </li></ul></ul></ul><ul><ul><ul><li>Call Ruby APIs from Javascript </li></ul></ul></ul><ul><ul><ul><li>Rapidly prototype code </li></ul></ul></ul><ul><ul><li>A Ruby GUI that doesn't require you to learn a whole new UI </li></ul></ul><ul><ul><ul><li>RubyCocoa, Gtk/Ruby, Shoes, etc.. all very UI specific </li></ul></ul></ul><ul><ul><ul><li>You probably already know HTML+CSS+DOM (right?) </li></ul></ul></ul><ul><ul><ul><li>You still get native integration with Desktop services (full Titanium API availability) </li></ul></ul></ul>
  7. 7. Titanium.instance_eval &quot;self&quot; #let's wet your appetite
  8. 8. Titanium APIs <ul><ul><li>UI: Total control over desktop windows, native menus, the tray, the OSX dock, and more. </li></ul></ul><ul><ul><li>Process: Spawn processes, control Process I/O </li></ul></ul><ul><ul><li>Filesystem: Full access and control of the filesystem </li></ul></ul><ul><ul><li>Database: Synchronous DB API (SQLite) </li></ul></ul><ul><ul><li>Desktop: open apps, URLs, take screenshots </li></ul></ul><ul><ul><li>Network: Native sockets, server sockets, http client / server, IRC client </li></ul></ul><ul><ul><li>Monkey: Userscript support </li></ul></ul><ul><ul><li>Notifications: Create native notifications using Growl, Snarl, or fallback using HTML/CSS </li></ul></ul><ul><ul><li>Workers: multi-threaded web workers (see HTML5) </li></ul></ul><ul><ul><li>... And more </li></ul></ul>
  9. 9. puts Titanium.internals <ul><ul><li>Based on the Kroll microkernel (C++) </li></ul></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><ul><li>From the ground up, written with modules (extensions) in mind. </li></ul></ul><ul><ul><ul><li>All of Titanium's APIs are delivered via modules </li></ul></ul></ul><ul><ul><ul><li>Extend Titanium to your hearts content with any language we support (including C++) </li></ul></ul></ul><ul><ul><li>Comprehensive language support: </li></ul></ul><ul><ul><ul><li>Javascript (WebKit / close to trunk -- blazing fast) </li></ul></ul></ul><ul><ul><ul><li>Ruby 1.8.6 (1.9 with GVL coming soon) </li></ul></ul></ul><ul><ul><ul><li>Python 2.5.4 (2.6 coming soon) </li></ul></ul></ul><ul><ul><ul><li>PHP 5.3.1 (in development) </li></ul></ul></ul><ul><ul><ul><li>Lua (in development) </li></ul></ul></ul>
  10. 10. Quicksnap a screenshot snapper/cropper written in Ruby