Why Is This So Complicated?
The web isn’t designed for multi-window apps
• Big departure from normal browser behavior
• webOS offers a lot of different interactions
• Performance issues led to complications
• Expected globals (document, window, etc.)
• Late recognition of the problem by Palm. Sorry.
Things to Consider
• Do you need another stage? Every time?
• What is the most appropriate stage type?
• How often do you rely on globals?
• Prototype, jquery, document?
• What state is shared between children?
Some New Twists
• Refactor child stage assistant to be generic
• Not all stylesheets are loaded
• Some styles are changed to assume a notiﬁcation
• Popups can have their height speciﬁed
• Closing child windows is easy
• Certain actions cause your app to be “relaunched”
• The appManager service passes in arguments
• Your AppAssistant can change default launch
• You should never have to worry about whether or
not your app was already open
• Shared across all child stages
• Handles relaunching
• Convenient place to stick shared state
• Try not to share state
Upcoming API Improvements
• Default dashboards no longer require markup
• Just provide an icon, some text, and a count
• Handles going from single item to multiple
• No more stageProxy shenanigans
• Failure cases are handled more elegantly