Developing Desktop Applications using HTML and Javascript

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

1 comments

Comments 1 - 1 of 1 previous next Post a comment

Post a comment
Embed Video
Edit your comment Cancel

5 Favorites

Developing Desktop Applications using HTML and Javascript - Presentation Transcript

  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#\"1/04.) G\"/22) T<F) >$'B45A)#4/=)89.0($) /.=)<4=9#$%)\"S).4')#41/#) UG<F) >$') W44') 6V) ,.%'/##$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%) @$%A'42) <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

+ Jeff HaynieJeff Haynie, 6 months ago

custom

2207 views, 5 favs, 1 embeds more stats

Presentation given by Jeff Haynie, CEO of Appcelera more

More info about this document

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Go to text version

  • Total Views 2207
    • 2195 on SlideShare
    • 12 from embeds
  • Comments 1
  • Favorites 5
  • Downloads 43
Most viewed embeds
  • 12 views on http://disole.wordpress.com

more

All embeds
  • 12 views on http://disole.wordpress.com

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories