Desktop Applications Using HTML & JavaScript (and Python & Ruby

  • 2,530 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,530
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
38
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Desktop ApplicationsUsing HTML and JavaScript (and Python and Ruby)Jeff Haynie@jhaynie
  • 2. JEFF HAYNIECEO, AppceleratorOpen Source DeveloperTwitter: jhaynieBlog: blog.jeffhaynie.us
  • 3. Why?Why would I want to build a desktop applicationinstead of a web application?
  • 4. The experienceFor the same reasons you’re building a mobileapplication instead of running it in the browseron the device
  • 5. The user experienceThe experience is richer Drag and Drop Filesystem Notifications True offline Backgrounding App-to-app interaction
  • 6. The interactionDesktop applications typically have deeperinteraction and user affinity
  • 7. Desktop DevelopmentWindows: Win32 API, MFC, AFC, .NETMacintosh: Cocoa, CarbonLinux: GTK+Cross-platform toolkits:Java Swing, Eclipse SWT, Mono, GTK+Adobe AIR *
  • 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. 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) 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. 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