SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Desktop Applications
Using HTML and JavaScript (and Python and Ruby)



Jeff Haynie
@jhaynie
JEFF HAYNIE

CEO, Appcelerator
Open Source Developer




Twitter: jhaynie
Blog: blog.jeffhaynie.us
Why?

Why would I want to build a desktop application
instead of a web application?
The experience

For the same reasons you’re building a mobile
application instead of running it in the browser
on the device
The user experience
The experience is richer

             Drag and Drop                         Filesystem


                                 Notifications
     True offline

                                                Backgrounding

                   App-to-app interaction
The interaction

Desktop applications typically have deeper
interaction and user affinity
Desktop Development
Windows: Win32 API, MFC, AFC, .NET
Macintosh: Cocoa, Carbon
Linux: GTK+

Cross-platform toolkits:
Java Swing, Eclipse SWT, Mono, GTK+

Adobe AIR *
Why web technologies?
Speed (and thus, cost) of development
Lots of people know them                      Why not?

Great tooling
Lots of libraries
HTML/CSS are good enough for UI
Plenty of online resources, training
Mix of great languages: JavaScript, Python, Ruby
Appcelerator Titanium
• Open source SDK, Tools (Apache)
• Cross-platform (Win32, OSX, Linux)
• Based on WebKit
• Modular and extensible
• Supports JavaScript, Python, Ruby
                                  (more coming)


• http://github.com/marshall/titanium
What about AIR?
• Adobe AIR is a great product
• Different architecture
• Not open source
• Very strong (and rigid) security model
• Mature
• Requires Flash
• Requires pre-installed Runtime
Desktop API
• Filesystem - read, write
• Process - start/stop/control
• UI - menus, trays, drag-drop, etc
• Media - sound, video, camera, mic
• Database - online, offline
• Notifications - user notifications
• Network - robust access and protocols
Titanium Architecture
                                          X495)
                                          *22#quot;1/04.)
                       Gquot;/22)
                       T<F)                                   >$'B45A)#4/=)89.0($)
                                                              /.=)<4=9#$%)quot;S).4')#41/#)
    UG<F)                                                                                   >$')
                                                 W44')
      6V)                                                                                 ,.%'/##$5)
     CVV)            <4=9#$)
                     </.quot;S$%')                       V'/5')*22#quot;1/04.)4.1$)89.0($)                F$K$.=)
                                                     /.=)<4=9#$%)25$%$.')                         5$Y9quot;5$=)
                                                                                                  4204./#)
       *11$%%)(4=9#$%)7quot;/)6VL)89:&)/.=)+&';4.)

                                                                       Gquot;'/.quot;9()89.0($)/.=)<4=9#$%)

6/7/%15quot;2')         +#/345()              -,)              <$=quot;/)           +541$%%)        C9%'4()P)

  89:&)            !quot;#$%&%'$()           *22)            >40?1/04.)        >$'B45A)         C9%'4()Q)

 +&';4.)               *+,)            *./#&01%)          @$%A'42)         <4.A$&)          C9%'4()R)


               C4((4.)D:E$1')F/&$5)                              G;quot;5=H2/5'&)Fquot;:5/5quot;$%))I$JKJL)M$:Nquot;'O)
Kroll microkernel
• Cross-platform C++
• Small boot kernel which dynamically loads
  modules
• Cross-language, in-process binding
  technology (C++, JS, Ruby, Python)
• All APIs in Titanium are kroll modules
• Separate Github open source project:
 • http://github.com/jhaynie/kroll
You focus on app
• We’ll focus on complexities of packaging,
  installation, updating, analytics, etc
• Apps are packaging in a cross-platform
  specific manner
• Developers control their packaging
• Apps look and feel “native”
Your happy place
• You can use your-favorite-javascript-
  framework
  • JQuery, Dojo, Mootools, Prototype, etc.
  • Capuccino, ExtJS, Entourage, etc.
  • Import existing modules/gems (Py/Ruby)
• Even Flash/Flex, Silverlight (and maybe Java/
  Java FX)
HTML 5 ++
• Database support (we also have Sync DB
  API)
• CSS animation, transitions, gradients
• Custom CSS scrollbars
• Web workers
• Custom Fonts (@font-face)
• SVG
Titanium Apps
• Focus on writing HTML/JavaScript etc
  which runs natively on the desktop
  machine
• Resources are bundled with application and
  are local (but can remotely use resources)
• No cross-domain restrictions (except
  remote resources origin touching Titanium)
• Benefit from shared runtime
  Supports Flash, Silverlight and other plugins
Performance
• Titanium runs on various architectures
  (Intel, PPC, 32-bit, 64-bit)
• Running on EFIKA 5200 B (PPC 128MB)
 • http://www.genesi-usa.com/efika
• Yahoo Sideline port uses 1/4 memory of
  AIR app
• Pandora AIR app pegs CPU at 100%,
  Titanium 8-10%
Demo


• It’s usually easier to demonstrate
Where to get it?

• Download:
 • http://titaniumapp.com/download
• Currently Preview Release 3
• Beta coming very soon
Please talk to me

• Looking for feedback, input and help
• jeff@appcelerator.com
• @jhaynie
• #titanium_app on irc.freenode.net
Big Thanks!

• Thanks to Jonathan Snook for demo code
  and inspiration
• http://snook.ca
• @snookca

Contenu connexe

Similaire à Developing Desktop Applications using HTML and Javascript

[Muir] Seam 2 in practice
[Muir] Seam 2 in practice[Muir] Seam 2 in practice
[Muir] Seam 2 in practicejavablend
 
Web API Directory: Statistics, Trends and Good Practices
Web API Directory: Statistics, Trends and Good PracticesWeb API Directory: Statistics, Trends and Good Practices
Web API Directory: Statistics, Trends and Good Practicesmashups
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009Christopher Judd
 
Client-side JavaScript Vulnerabilities
Client-side JavaScript VulnerabilitiesClient-side JavaScript Vulnerabilities
Client-side JavaScript VulnerabilitiesOry Segal
 
OSGI workshop - Become A Certified Bundle Manager
OSGI workshop - Become A Certified Bundle ManagerOSGI workshop - Become A Certified Bundle Manager
OSGI workshop - Become A Certified Bundle ManagerSkills Matter
 
Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09Steve Souders
 
Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Jess Chadwick
 
Танки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
Танки_в_Лунапарке: нагрузочное_тестирование_в_ЯндексеТанки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
Танки_в_Лунапарке: нагрузочное_тестирование_в_ЯндексеYandex
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersTodd Anglin
 
Dealing with Legacy Perl Code - Peter Scott
Dealing with Legacy Perl Code - Peter ScottDealing with Legacy Perl Code - Peter Scott
Dealing with Legacy Perl Code - Peter ScottO'Reilly Media
 
Migrating To Ruby1.9
Migrating To Ruby1.9Migrating To Ruby1.9
Migrating To Ruby1.9tomaspavelka
 
Introduction to iPhone Development
Introduction to iPhone DevelopmentIntroduction to iPhone Development
Introduction to iPhone DevelopmentDermot Daly
 
Introduction to iPhone Development
Introduction to iPhone DevelopmentIntroduction to iPhone Development
Introduction to iPhone Developmentdermdaly
 
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013Amazon Web Services
 
XML-Free Programming
XML-Free ProgrammingXML-Free Programming
XML-Free ProgrammingStephen Chin
 
Hello, Drupal? Building Drupal sites that make and receive phone calls
Hello, Drupal? Building Drupal sites that make and receive phone callsHello, Drupal? Building Drupal sites that make and receive phone calls
Hello, Drupal? Building Drupal sites that make and receive phone callsLeo Burd
 

Similaire à Developing Desktop Applications using HTML and Javascript (20)

PHP for Grown-ups
PHP for Grown-upsPHP for Grown-ups
PHP for Grown-ups
 
[Muir] Seam 2 in practice
[Muir] Seam 2 in practice[Muir] Seam 2 in practice
[Muir] Seam 2 in practice
 
Web API Directory: Statistics, Trends and Good Practices
Web API Directory: Statistics, Trends and Good PracticesWeb API Directory: Statistics, Trends and Good Practices
Web API Directory: Statistics, Trends and Good Practices
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009
 
AppengineJS
AppengineJSAppengineJS
AppengineJS
 
Client-side JavaScript Vulnerabilities
Client-side JavaScript VulnerabilitiesClient-side JavaScript Vulnerabilities
Client-side JavaScript Vulnerabilities
 
OSGI workshop - Become A Certified Bundle Manager
OSGI workshop - Become A Certified Bundle ManagerOSGI workshop - Become A Certified Bundle Manager
OSGI workshop - Become A Certified Bundle Manager
 
Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09Even Faster Web Sites at jQuery Conference '09
Even Faster Web Sites at jQuery Conference '09
 
Sinatra
SinatraSinatra
Sinatra
 
Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!Leveraging Continuous Integration For Fun And Profit!
Leveraging Continuous Integration For Fun And Profit!
 
Танки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
Танки_в_Лунапарке: нагрузочное_тестирование_в_ЯндексеТанки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
Танки_в_Лунапарке: нагрузочное_тестирование_в_Яндексе
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack Middleware
 
Dealing with Legacy Perl Code - Peter Scott
Dealing with Legacy Perl Code - Peter ScottDealing with Legacy Perl Code - Peter Scott
Dealing with Legacy Perl Code - Peter Scott
 
Migrating To Ruby1.9
Migrating To Ruby1.9Migrating To Ruby1.9
Migrating To Ruby1.9
 
Introduction to iPhone Development
Introduction to iPhone DevelopmentIntroduction to iPhone Development
Introduction to iPhone Development
 
Introduction to iPhone Development
Introduction to iPhone DevelopmentIntroduction to iPhone Development
Introduction to iPhone Development
 
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
Zero to Sixty: AWS Elastic Beanstalk (DMG204) | AWS re:Invent 2013
 
XML-Free Programming
XML-Free ProgrammingXML-Free Programming
XML-Free Programming
 
Hello, Drupal? Building Drupal sites that make and receive phone calls
Hello, Drupal? Building Drupal sites that make and receive phone callsHello, Drupal? Building Drupal sites that make and receive phone calls
Hello, Drupal? Building Drupal sites that make and receive phone calls
 

Plus de Jeff Haynie

How to build great teams
How to build great teamsHow to build great teams
How to build great teamsJeff Haynie
 
#Startup lessons
#Startup lessons#Startup lessons
#Startup lessonsJeff Haynie
 
Ti AppCamp 2 : Atlanta
Ti AppCamp 2 : AtlantaTi AppCamp 2 : Atlanta
Ti AppCamp 2 : AtlantaJeff Haynie
 
TiConf Australia 2013
TiConf Australia 2013TiConf Australia 2013
TiConf Australia 2013Jeff Haynie
 
Titanium Conf Baltimore Keynote 2013
Titanium Conf Baltimore Keynote 2013Titanium Conf Baltimore Keynote 2013
Titanium Conf Baltimore Keynote 2013Jeff Haynie
 
TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013Jeff Haynie
 
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)Jeff Haynie
 
TiTokyo conference in Tokyo, Japan for Appcelerator community
TiTokyo conference in Tokyo, Japan for Appcelerator communityTiTokyo conference in Tokyo, Japan for Appcelerator community
TiTokyo conference in Tokyo, Japan for Appcelerator communityJeff Haynie
 
Mobile Monday Hamburg, Germany
Mobile Monday Hamburg, GermanyMobile Monday Hamburg, Germany
Mobile Monday Hamburg, GermanyJeff Haynie
 
Mobile Developer Conference 2012 Hamburg, Germany Keynote
Mobile Developer Conference 2012 Hamburg, Germany KeynoteMobile Developer Conference 2012 Hamburg, Germany Keynote
Mobile Developer Conference 2012 Hamburg, Germany KeynoteJeff Haynie
 
SoCon 12 : Where are you in your mobile maturity?
SoCon 12 : Where are you in your mobile maturity?SoCon 12 : Where are you in your mobile maturity?
SoCon 12 : Where are you in your mobile maturity?Jeff Haynie
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAJeff Haynie
 
CommNexus San Diego Presentation
CommNexus San Diego PresentationCommNexus San Diego Presentation
CommNexus San Diego PresentationJeff Haynie
 
Appcelerator Overview
Appcelerator OverviewAppcelerator Overview
Appcelerator OverviewJeff Haynie
 
DFW Wordpress February Meetup - Appcelerator Titanium
DFW Wordpress February Meetup  - Appcelerator TitaniumDFW Wordpress February Meetup  - Appcelerator Titanium
DFW Wordpress February Meetup - Appcelerator TitaniumJeff Haynie
 
Building a sustainable, cross-platform mobile application strategy - SoCon 20...
Building a sustainable, cross-platform mobile application strategy - SoCon 20...Building a sustainable, cross-platform mobile application strategy - SoCon 20...
Building a sustainable, cross-platform mobile application strategy - SoCon 20...Jeff Haynie
 
What's great in Appcelerator Titanium 0.8
What's great in Appcelerator Titanium 0.8What's great in Appcelerator Titanium 0.8
What's great in Appcelerator Titanium 0.8Jeff Haynie
 
The Mobile Opportunity
The Mobile OpportunityThe Mobile Opportunity
The Mobile OpportunityJeff Haynie
 
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumMobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumJeff Haynie
 

Plus de Jeff Haynie (20)

How to build great teams
How to build great teamsHow to build great teams
How to build great teams
 
#Startup lessons
#Startup lessons#Startup lessons
#Startup lessons
 
TiConf NYC 2014
TiConf NYC 2014TiConf NYC 2014
TiConf NYC 2014
 
Ti AppCamp 2 : Atlanta
Ti AppCamp 2 : AtlantaTi AppCamp 2 : Atlanta
Ti AppCamp 2 : Atlanta
 
TiConf Australia 2013
TiConf Australia 2013TiConf Australia 2013
TiConf Australia 2013
 
Titanium Conf Baltimore Keynote 2013
Titanium Conf Baltimore Keynote 2013Titanium Conf Baltimore Keynote 2013
Titanium Conf Baltimore Keynote 2013
 
TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013TiConf.eu -- Titanium Developer Conference in Europe, 2013
TiConf.eu -- Titanium Developer Conference in Europe, 2013
 
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)
TiTokyo conference in Tokyo, Japan for Appcelerator community (日本)
 
TiTokyo conference in Tokyo, Japan for Appcelerator community
TiTokyo conference in Tokyo, Japan for Appcelerator communityTiTokyo conference in Tokyo, Japan for Appcelerator community
TiTokyo conference in Tokyo, Japan for Appcelerator community
 
Mobile Monday Hamburg, Germany
Mobile Monday Hamburg, GermanyMobile Monday Hamburg, Germany
Mobile Monday Hamburg, Germany
 
Mobile Developer Conference 2012 Hamburg, Germany Keynote
Mobile Developer Conference 2012 Hamburg, Germany KeynoteMobile Developer Conference 2012 Hamburg, Germany Keynote
Mobile Developer Conference 2012 Hamburg, Germany Keynote
 
SoCon 12 : Where are you in your mobile maturity?
SoCon 12 : Where are you in your mobile maturity?SoCon 12 : Where are you in your mobile maturity?
SoCon 12 : Where are you in your mobile maturity?
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
 
CommNexus San Diego Presentation
CommNexus San Diego PresentationCommNexus San Diego Presentation
CommNexus San Diego Presentation
 
Appcelerator Overview
Appcelerator OverviewAppcelerator Overview
Appcelerator Overview
 
DFW Wordpress February Meetup - Appcelerator Titanium
DFW Wordpress February Meetup  - Appcelerator TitaniumDFW Wordpress February Meetup  - Appcelerator Titanium
DFW Wordpress February Meetup - Appcelerator Titanium
 
Building a sustainable, cross-platform mobile application strategy - SoCon 20...
Building a sustainable, cross-platform mobile application strategy - SoCon 20...Building a sustainable, cross-platform mobile application strategy - SoCon 20...
Building a sustainable, cross-platform mobile application strategy - SoCon 20...
 
What's great in Appcelerator Titanium 0.8
What's great in Appcelerator Titanium 0.8What's great in Appcelerator Titanium 0.8
What's great in Appcelerator Titanium 0.8
 
The Mobile Opportunity
The Mobile OpportunityThe Mobile Opportunity
The Mobile Opportunity
 
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumMobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
 

Dernier

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 

Dernier (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 

Developing Desktop Applications using HTML and Javascript

  • 1. Desktop Applications Using HTML and JavaScript (and Python and Ruby) Jeff Haynie @jhaynie
  • 2. JEFF HAYNIE CEO, Appcelerator Open Source Developer Twitter: jhaynie Blog: blog.jeffhaynie.us
  • 3. Why? Why would I want to build a desktop application instead of a web application?
  • 4. The experience For the same reasons you’re building a mobile application instead of running it in the browser on the device
  • 5. The user experience The experience is richer Drag and Drop Filesystem Notifications True offline Backgrounding App-to-app interaction
  • 6. The interaction Desktop applications typically have deeper interaction and user affinity
  • 7. Desktop Development Windows: Win32 API, MFC, AFC, .NET Macintosh: Cocoa, Carbon Linux: GTK+ Cross-platform toolkits: Java Swing, Eclipse SWT, Mono, GTK+ Adobe AIR *
  • 8. Why web technologies? Speed (and thus, cost) of development Lots of people know them Why not? Great tooling Lots of libraries HTML/CSS are good enough for UI Plenty of online resources, training Mix of great languages: JavaScript, Python, Ruby
  • 9. Appcelerator Titanium • Open source SDK, Tools (Apache) • Cross-platform (Win32, OSX, Linux) • Based on WebKit • Modular and extensible • Supports JavaScript, Python, Ruby (more coming) • http://github.com/marshall/titanium
  • 10. What about AIR? • Adobe AIR is a great product • Different architecture • Not open source • Very strong (and rigid) security model • Mature • Requires Flash • Requires pre-installed Runtime
  • 11. Desktop API • Filesystem - read, write • Process - start/stop/control • UI - menus, trays, drag-drop, etc • Media - sound, video, camera, mic • Database - online, offline • Notifications - user notifications • Network - robust access and protocols
  • 12. Titanium Architecture X495) *22#quot;1/04.) Gquot;/22) T<F) >$'B45A)#4/=)89.0($) /.=)<4=9#$%)quot;S).4')#41/#) UG<F) >$') W44') 6V) ,.%'/##$5) CVV) <4=9#$) </.quot;S$%') V'/5')*22#quot;1/04.)4.1$)89.0($) F$K$.=) /.=)<4=9#$%)25$%$.') 5$Y9quot;5$=) 4204./#) *11$%%)(4=9#$%)7quot;/)6VL)89:&)/.=)+&';4.) Gquot;'/.quot;9()89.0($)/.=)<4=9#$%) 6/7/%15quot;2') +#/345() -,) <$=quot;/) +541$%%) C9%'4()P) 89:&) !quot;#$%&%'$() *22) >40?1/04.) >$'B45A) C9%'4()Q) +&';4.) *+,) *./#&01%) @$%A'42) <4.A$&) C9%'4()R) C4((4.)D:E$1')F/&$5) G;quot;5=H2/5'&)Fquot;:5/5quot;$%))I$JKJL)M$:Nquot;'O)
  • 13. Kroll microkernel • Cross-platform C++ • Small boot kernel which dynamically loads modules • Cross-language, in-process binding technology (C++, JS, Ruby, Python) • All APIs in Titanium are kroll modules • Separate Github open source project: • http://github.com/jhaynie/kroll
  • 14. You focus on app • We’ll focus on complexities of packaging, installation, updating, analytics, etc • Apps are packaging in a cross-platform specific manner • Developers control their packaging • Apps look and feel “native”
  • 15. Your happy place • You can use your-favorite-javascript- framework • JQuery, Dojo, Mootools, Prototype, etc. • Capuccino, ExtJS, Entourage, etc. • Import existing modules/gems (Py/Ruby) • Even Flash/Flex, Silverlight (and maybe Java/ Java FX)
  • 16. HTML 5 ++ • Database support (we also have Sync DB API) • CSS animation, transitions, gradients • Custom CSS scrollbars • Web workers • Custom Fonts (@font-face) • SVG
  • 17. Titanium Apps • Focus on writing HTML/JavaScript etc which runs natively on the desktop machine • Resources are bundled with application and are local (but can remotely use resources) • No cross-domain restrictions (except remote resources origin touching Titanium) • Benefit from shared runtime Supports Flash, Silverlight and other plugins
  • 18. Performance • Titanium runs on various architectures (Intel, PPC, 32-bit, 64-bit) • Running on EFIKA 5200 B (PPC 128MB) • http://www.genesi-usa.com/efika • Yahoo Sideline port uses 1/4 memory of AIR app • Pandora AIR app pegs CPU at 100%, Titanium 8-10%
  • 19. Demo • It’s usually easier to demonstrate
  • 20. Where to get it? • Download: • http://titaniumapp.com/download • Currently Preview Release 3 • Beta coming very soon
  • 21. Please talk to me • Looking for feedback, input and help • jeff@appcelerator.com • @jhaynie • #titanium_app on irc.freenode.net
  • 22. Big Thanks! • Thanks to Jonathan Snook for demo code and inspiration • http://snook.ca • @snookca