Using web apps inside desktop apps

Introduction:

I would like to explore the concept outlined in Mozilla’s web app initiative and try to apply it to other desktop applications besides the browser.

Process:

  • The desktop application developer would create their own web app store.
  • The desktop application would have an embedded browser that points to the online store.
  • The embedded browser would define what data from the desktop application is available to the web application via a JS API.
  • Developers would create applications.
  • Desktop app users can install applications.

Data available to Web Apps from Desktop Apps:

The desktop app would be able to provide data to the web app. For instance, if the app was a text editor, some JS calls available to the web app could be:

  • navigator.appHost.selectedText
  • navigator.appHost.fullText
  • navigator.appHost.language
  • navigator.appHost.fileName
  • navigator.appHost.filePath

Considering the text editor example, I could have an app that translates from one language to another. The web app, when activated, would get a string from navigator.appHost.selectedText, translate it, then set navigator.appHost.selectedText to the new value.

Possible Scenarios:

  • Terminal
    • git tools
    • Walkthroughs
      • Ever tried to build Imagemagick? What if there was an interactive walkthrough that would watch my commands, or maybe more importantly, my errors, and provide feedback as well as the next steps to take.
  • TextMate
    • Language Documentation
    • Stack Overflow information
    • Validators
  • Photoshop:
    • My Twitpic library (pull from or put to)
    • Google image search
    • Aviary integration
  • IM Client:
    • Save a conversation for reference later from any location
    • Interactive drawing tool for quick mockups between two people

Concerns:

  • Embedding a browser into a desktop app.
  • Others?

Finally:

Is this an idea that makes sense? Would you, as a developer, build an app for a Desktop app? If so, what desktop app and what would your extension to that desktop app do?

Advertisements