Your SlideShare is downloading. ×
0
Desktop ApplicationsUsing HTML and JavaScript (and Python and Ruby)Jeff Haynie@jhaynie
JEFF HAYNIECEO, AppceleratorOpen Source DeveloperTwitter: jhaynieBlog: blog.jeffhaynie.us
Why?Why would I want to build a desktop applicationinstead of a web application?
The experienceFor the same reasons you’re building a mobileapplication instead of running it in the browseron the device
The user experienceThe experience is richer             Drag and Drop                         Filesystem                  ...
The interactionDesktop applications typically have deeperinteraction and user affinity
Desktop DevelopmentWindows: Win32 API, MFC, AFC, .NETMacintosh: Cocoa, CarbonLinux: GTK+Cross-platform toolkits:Java Swing...
Why web technologies?Speed (and thus, cost) of developmentLots of people know them                      Why not?Great tool...
Appcelerator Titanium• Open source SDK, Tools (Apache)• Cross-platform (Win32, OSX, Linux)• Based on WebKit• Modular and e...
What about AIR?• Adobe AIR is a great product• Different architecture• Not open source• Very strong (and rigid) security m...
Desktop API• Filesystem - read, write• Process - start/stop/control• UI - menus, trays, drag-drop, etc• Media - sound, vid...
Titanium Architecture                                          X495)                       G"/22)             *22#"1/04.) ...
Kroll microkernel• Cross-platform C++• Small boot kernel which dynamically loads  modules• Cross-language, in-process bind...
You focus on app• We’ll focus on complexities of packaging,  installation, updating, analytics, etc• Apps are packaging in...
Your happy place• You can use your-favorite-javascript-  framework  • JQuery, Dojo, Mootools, Prototype, etc.  • Capuccino...
HTML 5 ++• Database support (we also have Sync DB  API)• CSS animation, transitions, gradients• Custom CSS scrollbars• Web...
Titanium Apps• Focus on writing HTML/JavaScript etc  which runs natively on the desktop  machine• Resources are bundled wi...
Performance• Titanium runs on various architectures  (Intel, PPC, 32-bit, 64-bit)• Running on EFIKA 5200 B (PPC 128MB) • h...
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
Upcoming SlideShare
Loading in...5
×

Desktop Applications Using HTML & JavaScript (and Python & Ruby

2,797

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,797
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
41
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Desktop Applications Using HTML & JavaScript (and Python & Ruby"

  1. 1. Desktop ApplicationsUsing HTML and JavaScript (and Python and Ruby)Jeff Haynie@jhaynie
  2. 2. JEFF HAYNIECEO, AppceleratorOpen Source DeveloperTwitter: jhaynieBlog: blog.jeffhaynie.us
  3. 3. Why?Why would I want to build a desktop applicationinstead of a web application?
  4. 4. The experienceFor the same reasons you’re building a mobileapplication instead of running it in the browseron the device
  5. 5. The user experienceThe experience is richer Drag and Drop Filesystem Notifications True offline Backgrounding App-to-app interaction
  6. 6. The interactionDesktop applications typically have deeperinteraction and user affinity
  7. 7. Desktop DevelopmentWindows: Win32 API, MFC, AFC, .NETMacintosh: Cocoa, CarbonLinux: GTK+Cross-platform toolkits:Java Swing, Eclipse SWT, Mono, GTK+Adobe AIR *
  8. 8. Why web technologies?Speed (and thus, cost) of developmentLots of people know them Why not?Great toolingLots of librariesHTML/CSS are good enough for UIPlenty of online resources, trainingMix of great languages: JavaScript, Python, Ruby
  9. 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. 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. 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. 12. Titanium Architecture X495) G"/22) *22#"1/04.) T<F) >$B45A)#4/=)89.0($) UG<F) /.=)<4=9#$%)"S).4)#41/#) >$) 6V) W44) ,.%/##$5) CVV) <4=9#$) </."S$%) V/5)*22#"1/04.)4.1$)89.0($) F$K$.=) /.=)<4=9#$%)25$%$.) 5$Y9"5$=) 4204./#) *11$%%)(4=9#$%)7"/)6VL)89:&)/.=)+&;4.) G"/."9()89.0($)/.=)<4=9#$%)6/7/%15"2) +#/345() -,) <$="/) +541$%%) C9%4()P) 89:&) !"#$%&%$() *22) >40?1/04.) >$B45A) C9%4()Q) +&;4.) *+,) *./#&01%) @$%A42) <4.A$&) C9%4()R) C4((4.)D:E$1)F/&$5) G;"5=H2/5&)F":5/5"$%))I$JKJL)M$:N"O)
  13. 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. 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. 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. 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. 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. 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. 19. Demo• It’s usually easier to demonstrate
  20. 20. Where to get it?• Download: • http://titaniumapp.com/download• Currently Preview Release 3• Beta coming very soon
  21. 21. Please talk to me• Looking for feedback, input and help• jeff@appcelerator.com• @jhaynie• #titanium_app on irc.freenode.net
  22. 22. Big Thanks!• Thanks to Jonathan Snook for demo code and inspiration• http://snook.ca• @snookca
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×