Advanced webOS, Stanford

Preview:

Citation preview

Advanced webOSJustin Tulloss

Sr. Software EngineerApril 24, 2010

Overview

• Multi-Stage basics• Dashboards• Popups• Relaunching• The Future• Q&A

Why is this so complicated?

• 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.

The web isn’t designed for multi-window apps

Multi-Stage

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?

Basic APIs

From a scene assistant

Stage Types

• Card• Dashboard• Popup

Dashboards and

Example: MainAssistant

Example: DashboardStageAssistant

Example: Message View

Example: MessageAssistant

Popups

Some new twists

• Refactor child stage assistant to be generic• Not all stylesheets are loaded

• Some styles are changed to assume a notification• Popups can have their height specified• Closing child windows is easy

Example: New ChildStageAssistant

Example: Pushing dashboard scene moved

Example: Creating a popup

Example: Popup scene

Example: Popup assistant

Example: Very simple popup

Relaunching

Relaunching basics

• Certain actions cause your app to be “relaunched”• The appManager service passes in arguments• Your AppAssistant can change default launch

behavior• You should never have to worry about whether or

not your app was already open

AppAssistant

• Shared across all child stages• Handles relaunching• Convenient place to stick shared state

• Try not to share state.

Example: App Assistant

Example: Setting Default Stage

Example: Launch Parameters in banner

The Future

Upcoming API improvements

• Default dashboards no longer require markup boilerplate• Just provide an icon, some text, and a count• Handles going from single item to multiple

• SingletonStages• No more stageProxy shenanigans.• Failure cases are handled more elegantly

&Q A

Recommended