SlideShare una empresa de Scribd logo
1 de 24
Titanium Desktop
writing native desktop apps with HTML, CSS, Javascript, and friends.
About Me

             Marshall Culpepper
Titanium Project Lead / Hacker Extraordinaire
                @marshall_law
           http://www.arcaner.com
       mculpepper@appcelerator.com
          http://github.com/marshall
Agenda

• 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
                http://appcelerator.com
            http://github.com/appcelerator
                     @appcelerator
          #titanium_app on irc.freenode.net
Motivation
• Single Site Browsers (Fluid, Prizm)
• Adobe AIR
• Cross platform GUI toolkits (Qt, wxWidgets, XUL,
  GTK)
• Dynamic Languages (Ruby, Python, Javascript)
• Binding layers (Jython, Rhino, JavaScriptCore)
• Next gen web tech: HTML5, Gears, CSS3
• ... And lots of caffeine!
Titanium Desktop


•   UI with HTML5, CSS, Canvas. The best of the open web.

•   Support for Javascript, Ruby, Python (PHP coming soon)

•   Languages can be intermixed automatically.

•   Native desktop functionality at your fingertips.

•   Titanium.* APIs are available in all languages

•   Windows (XP/SP2 -> 7), OSX (10.5->10.6, Universal), Linux
    (Debian based distros, Fedora, SuSE)
Desktop Architecture
The Desktop Runtime

•   Fully configurable distribution options:

    •   “Bundled” : Runtime is packaged with your app, no seperate
        installer

    •   “Network Install”: A native installer downloads dependencies
        on demand

•   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
UI and Notification APIs
Filesystem API
Network API
Database API
Synchronous and Asynchronous (HTML5) APIs
Process API
Launch processes, read/write from pipes
And much more..
•   Web Workers: Multi-threading for Javascript

•   Desktop: Take screenshots, open URLs, applications

•   Comprehensive language support:

    •   Javascript (WebKit / close to trunk -- blazing fast)

    •   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
Useful Resources

•   Check out some of my demo apps:

    •   http://github.com/marshall/screengrabber

    •   http://github.com/marshall/quicksnap (Uses Ruby)

•   Desktop testsuite (Drillbit)

•   Full API doc: http://codestrong.com

•   Support forums: http://support.appcelerator.net
Titanium Developer
• 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 first app


•   An app that takes a screenshot, and shows it to the user

•   App walkthrough:

    •   Create the project in Developer

    •   Overview of config files, manifest, app layout

    •   Quickly roundtrip prototype, show off debugging, etc
Step 1: Configuration
•   $ROOT/tiapp.xml

•   Configure 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.Desktop.takeScreenshot(“path/to/file”)

    •   Titanium.Filesystem.getFile() / getDesktopDirectory()
Step 4: App!
Packaging


•   Once your app is written, you can use our cloud services to
    package and distribute your app.

    •   Automatically packages with the config you specify, for
        the platforms you want to support

    •   Built-in analytics to track who’s using your app,
        downloads, etc
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!

Más contenido relacionado

La actualidad más candente

Dev/Stage/Prod Parity with Vagrant
Dev/Stage/Prod Parity with VagrantDev/Stage/Prod Parity with Vagrant
Dev/Stage/Prod Parity with VagrantMike Bybee
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with AnsibleCarlo Bonamico
 
Visnetwork package in R
Visnetwork package in R Visnetwork package in R
Visnetwork package in R Dr. Volkan OBAN
 
Guideline paper@rpi full_stack_python_arch
Guideline paper@rpi full_stack_python_archGuideline paper@rpi full_stack_python_arch
Guideline paper@rpi full_stack_python_archAnthony Le Goff
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development WorkflowVũ Nguyễn
 
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...Vũ Nguyễn
 
WebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebWebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebVũ Nguyễn
 
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Pantheon
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsJoseph Lust
 
Jenkins 101: Continuos Integration with Jenkins
Jenkins 101: Continuos Integration with JenkinsJenkins 101: Continuos Integration with Jenkins
Jenkins 101: Continuos Integration with JenkinsAll Things Open
 
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...Lucas Arruda
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesChristian Münch
 
WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesAlexandre Gouaillard
 
.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchester.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchestercitizenmatt
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitWittawas Wisarnkanchana
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Fwdays
 

La actualidad más candente (20)

Dev/Stage/Prod Parity with Vagrant
Dev/Stage/Prod Parity with VagrantDev/Stage/Prod Parity with Vagrant
Dev/Stage/Prod Parity with Vagrant
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with Ansible
 
Visnetwork package in R
Visnetwork package in R Visnetwork package in R
Visnetwork package in R
 
Guideline paper@rpi full_stack_python_arch
Guideline paper@rpi full_stack_python_archGuideline paper@rpi full_stack_python_arch
Guideline paper@rpi full_stack_python_arch
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development Workflow
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
 
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
New trends of web technology on mobile: HTML5, PhoneGap & NaCl - Barcamp Saig...
 
WebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebWebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the Web
 
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
 
Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOps
 
Jenkins 101: Continuos Integration with Jenkins
Jenkins 101: Continuos Integration with JenkinsJenkins 101: Continuos Integration with Jenkins
Jenkins 101: Continuos Integration with Jenkins
 
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
QCon SP - ShortTalk - Virtualização e Provisionamento de Ambientes com Vagr...
 
Jenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-PipelinesJenkins to Gitlab - Intelligent Build-Pipelines
Jenkins to Gitlab - Intelligent Build-Pipelines
 
WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differences
 
React Native Masterclass
React Native MasterclassReact Native Masterclass
React Native Masterclass
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchester.NET Core Blimey! Windows Platform User Group, Manchester
.NET Core Blimey! Windows Platform User Group, Manchester
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkit
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"
 
Gdg ionic 2
Gdg ionic 2Gdg ionic 2
Gdg ionic 2
 

Destacado

Native apps in html5 with chrome packaged apps
Native apps in html5 with chrome packaged appsNative apps in html5 with chrome packaged apps
Native apps in html5 with chrome packaged appsTom Wilson
 
Titanium SDK 2.0 Features update
Titanium SDK 2.0 Features updateTitanium SDK 2.0 Features update
Titanium SDK 2.0 Features updateHerxun Inc
 
Le Document Unique Aequalis Prévention
Le Document Unique Aequalis PréventionLe Document Unique Aequalis Prévention
Le Document Unique Aequalis PréventionNicolas PATRIS
 
Presupuesto de Ventas
Presupuesto de VentasPresupuesto de Ventas
Presupuesto de Ventasjennifergvv
 
Presupuesto de ventas
Presupuesto de ventasPresupuesto de ventas
Presupuesto de ventasgenesis26s
 
Bao gia dang bai pr tren Vietnamnet moi nhat 2016
Bao gia dang bai pr tren Vietnamnet moi nhat 2016Bao gia dang bai pr tren Vietnamnet moi nhat 2016
Bao gia dang bai pr tren Vietnamnet moi nhat 2016AsiaLink Media
 

Destacado (11)

Native apps in html5 with chrome packaged apps
Native apps in html5 with chrome packaged appsNative apps in html5 with chrome packaged apps
Native apps in html5 with chrome packaged apps
 
CV
CVCV
CV
 
Clothes (Yibing)
Clothes (Yibing)Clothes (Yibing)
Clothes (Yibing)
 
Titanium SDK 2.0 Features update
Titanium SDK 2.0 Features updateTitanium SDK 2.0 Features update
Titanium SDK 2.0 Features update
 
ModDesignsCo.Plan
ModDesignsCo.PlanModDesignsCo.Plan
ModDesignsCo.Plan
 
Le Document Unique Aequalis Prévention
Le Document Unique Aequalis PréventionLe Document Unique Aequalis Prévention
Le Document Unique Aequalis Prévention
 
Guia de actuacion moviles
Guia de actuacion movilesGuia de actuacion moviles
Guia de actuacion moviles
 
contable
contablecontable
contable
 
Presupuesto de Ventas
Presupuesto de VentasPresupuesto de Ventas
Presupuesto de Ventas
 
Presupuesto de ventas
Presupuesto de ventasPresupuesto de ventas
Presupuesto de ventas
 
Bao gia dang bai pr tren Vietnamnet moi nhat 2016
Bao gia dang bai pr tren Vietnamnet moi nhat 2016Bao gia dang bai pr tren Vietnamnet moi nhat 2016
Bao gia dang bai pr tren Vietnamnet moi nhat 2016
 

Similar a Titanium Desktop Intro

An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Androidnatdefreitas
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Pierre Joye
 
Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.Brent Noorda
 
Castles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App EngineCastles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App Enginecatherinewall
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsJohn M. Wargo
 
PhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Sacha Leprêtre
 
Try! Swift Tokyo2017
Try! Swift Tokyo2017Try! Swift Tokyo2017
Try! Swift Tokyo2017Amy Cheong
 
Living in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLiving in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLars Trieloff
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Igalia
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conferencedianacheng
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopmentgillygize
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected DevelopmentJim McKeeth
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraLINAGORA
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 

Similar a Titanium Desktop Intro (20)

Titanium Mobile Intro
Titanium Mobile IntroTitanium Mobile Intro
Titanium Mobile Intro
 
An Introduction To Android
An Introduction To AndroidAn Introduction To Android
An Introduction To Android
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18
 
Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.Java script anywhere. What Nombas was doing pre-acquisition.
Java script anywhere. What Nombas was doing pre-acquisition.
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
 
Castles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App EngineCastles in the Cloud: Developing with Google App Engine
Castles in the Cloud: Developing with Google App Engine
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
 
PhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile Hack
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
Chrome Dev Summit Summary 2013 part 1 - what’s hot ?
 
Try! Swift Tokyo2017
Try! Swift Tokyo2017Try! Swift Tokyo2017
Try! Swift Tokyo2017
 
Living in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLiving in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 Applications
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conference
 
State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
 
Apache cordova
Apache cordovaApache cordova
Apache cordova
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 

Último

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 

Último (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

Titanium Desktop Intro

  • 1. Titanium Desktop writing native desktop apps with HTML, CSS, Javascript, and friends.
  • 2. About Me Marshall Culpepper Titanium Project Lead / Hacker Extraordinaire @marshall_law http://www.arcaner.com mculpepper@appcelerator.com http://github.com/marshall
  • 3. Agenda • What is Titanium? • High Level Architecture, Runtime • API Overview • Guided Lab: Screengrabber
  • 4. What is Titanium? • An open source framework for building native apps using web technologies • Titanium Desktop: Windows, OSX, Linux • Titanium Mobile: iPhone, Android http://appcelerator.com http://github.com/appcelerator @appcelerator #titanium_app on irc.freenode.net
  • 5. Motivation • Single Site Browsers (Fluid, Prizm) • Adobe AIR • Cross platform GUI toolkits (Qt, wxWidgets, XUL, GTK) • Dynamic Languages (Ruby, Python, Javascript) • Binding layers (Jython, Rhino, JavaScriptCore) • Next gen web tech: HTML5, Gears, CSS3 • ... And lots of caffeine!
  • 6. Titanium Desktop • UI with HTML5, CSS, Canvas. The best of the open web. • Support for Javascript, Ruby, Python (PHP coming soon) • Languages can be intermixed automatically. • Native desktop functionality at your fingertips. • Titanium.* APIs are available in all languages • Windows (XP/SP2 -> 7), OSX (10.5->10.6, Universal), Linux (Debian based distros, Fedora, SuSE)
  • 8. The Desktop Runtime • Fully configurable distribution options: • “Bundled” : Runtime is packaged with your app, no seperate installer • “Network Install”: A native installer downloads dependencies on demand • 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
  • 12. Database API Synchronous and Asynchronous (HTML5) APIs
  • 13. Process API Launch processes, read/write from pipes
  • 14. And much more.. • Web Workers: Multi-threading for Javascript • Desktop: Take screenshots, open URLs, applications • Comprehensive language support: • Javascript (WebKit / close to trunk -- blazing fast) • 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
  • 15. Useful Resources • Check out some of my demo apps: • http://github.com/marshall/screengrabber • http://github.com/marshall/quicksnap (Uses Ruby) • Desktop testsuite (Drillbit) • Full API doc: http://codestrong.com • Support forums: http://support.appcelerator.net
  • 16. Titanium Developer • 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!
  • 17. Obligatory “Hello World” Using the sandbox to quickly test and run code
  • 18. Screengrabber: Our first app • An app that takes a screenshot, and shows it to the user • App walkthrough: • Create the project in Developer • Overview of config files, manifest, app layout • Quickly roundtrip prototype, show off debugging, etc
  • 19. Step 1: Configuration • $ROOT/tiapp.xml • Configure Windows, and their properties
  • 20. Step 2: HTML, CSS, JS • clean out $ROOT/index.html • make a JS script, a CSS stylesheet
  • 21. Step 3: Write the JS • APIs we need from Titanium: • Titanium.Desktop.takeScreenshot(“path/to/file”) • Titanium.Filesystem.getFile() / getDesktopDirectory()
  • 23. Packaging • Once your app is written, you can use our cloud services to package and distribute your app. • Automatically packages with the config you specify, for the platforms you want to support • Built-in analytics to track who’s using your app, downloads, etc
  • 24. 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!