Advanced webOS

2,313 views

Published on

Justin Tulloss goes in-depth with JavaScript and webOS.

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,313
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
114
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide


  • Leaving a lot of time for Q&A.













  • Works for both dashboards and popups















  • Advanced webOS

    1. 1. Advanced webOS Justin Tulloss Sr. Software Engineer April 24, 2010
    2. 2. Overview • Multi-Stage basics • Dashboards • Popups • Relaunching • The Future • Q&A
    3. 3. 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.
    4. 4. Multi-Stage Basics
    5. 5. 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?
    6. 6. Basic APIs
    7. 7. From a Scene Assistant
    8. 8. Stage Types • Card • Dashboard • Popup
    9. 9. Dashboards and Banners
    10. 10. Example: MainAssistant
    11. 11. Example: DashboardStageAssistant
    12. 12. Example: Message View
    13. 13. Example: MessageAssistant
    14. 14. Popups
    15. 15. 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
    16. 16. Example: New ChildStageAssistant
    17. 17. Example: Pushing Dashboard Scene Moved
    18. 18. Example: Creating a Popup
    19. 19. Example: Popup Scene
    20. 20. Example: Popup Assistant
    21. 21. Example: Very Simple Popup
    22. 22. Relaunching
    23. 23. 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
    24. 24. AppAssistant • Shared across all child stages • Handles relaunching • Convenient place to stick shared state • Try not to share state
    25. 25. Example: App Assistant
    26. 26. Example: Setting Default Stage
    27. 27. Example: Launch Parameters in Banner
    28. 28. The Future
    29. 29. 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
    30. 30. Q &A

    ×