SlideShare ist ein Scribd-Unternehmen logo
1 von 62
Navigator-AS3
      /navigation/made/f/*/simple/




http://github.com/epologee/navigator-as3
Worth listening?

■ Introduction to Navigator
■ Example I - Simple Navigator
■ Example II - RobotLegs Navigator
Don’t repeat yourself?
Don’t repeat yourself?
■ Every multi-view app needs navigation
Don’t repeat yourself?
■ Every multi-view app needs navigation
■ Most multi-view apps need transitions
Don’t repeat yourself?
■ Every multi-view app needs navigation
■ Most multi-view apps need transitions
■ How many times have you written code for
  handling async transitions?
Don’t repeat yourself?
■ Every multi-view app needs navigation
■ Most multi-view apps need transitions
■ How many times have you written code for
  handling async transitions?
■ How many exceptions were implemented
  afterwards, that should’ve been known up
  front? (deeplinks, anyone?)
Don’t repeat yourself?
■ Every multi-view app needs navigation
■ Most multi-view apps need transitions
■ How many times have you written code for
  handling async transitions?
■ How many exceptions were implemented
  afterwards, that should’ve been known up
  front? (deeplinks, anyone?)
■ March 2010...
Navigation State
Navigation State

■ A state looks /like/a/url/
Navigation State

■ A state looks /like/a/url/
■ /we/call/these/segments/
Navigation State

■ A state looks /like/a/url/
■ /we/call/these/segments/
■ Words, numbers or wildcard *
NavigationState.as
NavigationState.as
■ Fancy wrapper for dealing with string paths
NavigationState.as
■ Fancy wrapper for dealing with string paths
■ “aa//b B/C/5” → /aa/b-b/c/5
NavigationState.as
■ Fancy wrapper for dealing with string paths
■ “aa//b B/C/5” → /aa/b-b/c/5
■ /a/ .add(“b”) → /a/b/
NavigationState.as
■ Fancy wrapper for dealing with string paths
■ “aa//b B/C/5” → /aa/b-b/c/5
■ /a/ .add(“b”) → /a/b/
■ /a/b/c/ .contains(“/a/”) → true
NavigationState.as
■ Fancy wrapper for dealing with string paths
■ “aa//b B/C/5” → /aa/b-b/c/5
■ /a/ .add(“b”) → /a/b/
■ /a/b/c/ .contains(“/a/”) → true
■ /a/b/c/ .contains(“/c/”) → false (errr. what?)
Current State
Current State
■ One state at any time, application wide
Current State
■ One state at any time, application wide
■ Component + Behavior = Responder
Current State
■ One state at any time, application wide
■ Component + Behavior = Responder
■ Responders are added to states
Current State
■ One state at any time, application wide
■ Component + Behavior = Responder
■ Responders are added to states
■ Navigator will let the responders behave
Current State
■ One state at any time, application wide
■ Component + Behavior = Responder
■ Responders are added to states
■ Navigator will let the responders behave
■ No redundant responses, brrr!
State Containment
    /don-t/act/like/urls/
/

/a/d/         /a/e/         /*/f/


        /a/           /b/           /c/


                      /
/a/

/a/d/         /a/e/         /*/f/


        /a/           /b/           /c/


                      /
/a/d/

/a/d/         /a/e/           /*/f/


        /a/            /b/            /c/


                       /
/a/e/

/a/d/         /a/e/           /*/f/


        /a/            /b/            /c/


                       /
/b/

/a/d/         /a/e/         /*/f/


        /a/           /b/           /c/


                      /
/b/f/

/a/d/         /a/e/           /*/f/


        /a/            /b/            /c/


                       /
/c/

/a/d/         /a/e/         /*/f/


        /a/           /b/           /c/


                      /
/c/f/

/a/d/         /a/e/           /*/f/


        /a/            /b/            /c/


                       /
Behavior interfaces
Behavior interfaces
■ Transition (show=in, hide=out)
Behavior interfaces
■ Transition (show=in, hide=out)
■ Update
Behavior interfaces
■ Transition (show=in, hide=out)
■ Update
■ Swap (galleries, anyone?)
Behavior interfaces
■ Transition (show=in, hide=out)
■ Update
■ Swap (galleries, anyone?)
■ Validate (sync and async)
Behavior interfaces
■ Transition (show=in, hide=out)
■ Update
■ Swap (galleries, anyone?)
■ Validate (sync and async)
■ Redirect (combined with validation)
Behavior interfaces
■ Transition (show=in, hide=out)
■ Update
■ Swap (galleries, anyone?)
■ Validate (sync and async)
■ Redirect (combined with validation)
■ Initialization (combined with any above)
Project examples

■ http://rss.dev/ing-sail/development/public/
■ http://rss.dev/het-jaar-van/development/
  public/
■ Very fresh, from Random.nu:
  http://www.quick-step.com/flooradvisor/
Exampe I
Simple Navigator
Integration
Integration

■ SWFAddress *duh!*
Integration

■ SWFAddress *duh!*
■ PureMVC *meh...*
Integration

■ SWFAddress *duh!*
■ PureMVC *meh...*
■ Singleton Navi.gator() *boo!*
Integration

■ SWFAddress *duh!*
■ PureMVC *meh...*
■ Singleton Navi.gator() *boo!*
■ RobotLegs *awesome!*
Why RobotLegs?
Why RobotLegs?
■ Super mediator stage magic
Why RobotLegs?
■ Super mediator stage magic
■ Awesome actor wizardry
Why RobotLegs?
■ Super mediator stage magic
■ Awesome actor wizardry
■ PureMVC workflow flipped upside-down
Why RobotLegs?
■ Super mediator stage magic
■ Awesome actor wizardry
■ PureMVC workflow flipped upside-down
■ Question: “So how do you put it on stage?”
Why RobotLegs?
■ Super mediator stage magic
■ Awesome actor wizardry
■ PureMVC workflow flipped upside-down
■ Question: “So how do you put it on stage?”
 ■ Answer robotlegs.org: “Errrr....”
Why RobotLegs?
■ Super mediator stage magic
■ Awesome actor wizardry
■ PureMVC workflow flipped upside-down
■ Question: “So how do you put it on stage?”
 ■ Answer robotlegs.org: “Errrr....”
 ■ Answer epologee.com: “Navigator baby!”
RobotLegs integration
RobotLegs integration
■ NavigatorContext, NavigatorSignalContext
RobotLegs integration
■ NavigatorContext, NavigatorSignalContext
 ■ stateActorMap
RobotLegs integration
■ NavigatorContext, NavigatorSignalContext
 ■ stateActorMap
 ■ stateViewMap
RobotLegs integration
■ NavigatorContext, NavigatorSignalContext
 ■ stateActorMap
 ■ stateViewMap
 ■ stateControllerMap
RobotLegs integration
■ NavigatorContext, NavigatorSignalContext
  ■ stateActorMap
  ■ stateViewMap
  ■ stateControllerMap
■ Just-in-time instantiation of actors, views
  and commands (RL does the rest)
Example II
RobotLegs Navigator
      ***branch warning***
Thanks!
■ http://github.com/epologee/navigator-as3
■ RobotLegs integration is fresh, feedback!
■ Unit Testing step by step, bug reports!



               epologee.com

Weitere ähnliche Inhalte

Andere mochten auch (11)

616
616616
616
 
Avian Influenza Brief
Avian Influenza BriefAvian Influenza Brief
Avian Influenza Brief
 
Thurgood
ThurgoodThurgood
Thurgood
 
Report
ReportReport
Report
 
M. obama
M. obamaM. obama
M. obama
 
Landuseplan
LanduseplanLanduseplan
Landuseplan
 
Innovacion en las Políticas Públicas
Innovacion en las Políticas PúblicasInnovacion en las Políticas Públicas
Innovacion en las Políticas Públicas
 
DEVELOPMENT PLAN FOR KARAIKALFINAL
DEVELOPMENT PLAN FOR KARAIKALFINALDEVELOPMENT PLAN FOR KARAIKALFINAL
DEVELOPMENT PLAN FOR KARAIKALFINAL
 
Muhammad Ali
Muhammad AliMuhammad Ali
Muhammad Ali
 
Humanism's many faces
Humanism's many facesHumanism's many faces
Humanism's many faces
 
Report
ReportReport
Report
 

Ähnlich wie Robot legs workshop extra session navigator-as3

Web Teaching Tools
Web Teaching ToolsWeb Teaching Tools
Web Teaching Tools
chiarellic
 
みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」
 みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」 みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」
みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」
techtalkdwango
 
1111 companies for good career
1111 companies for good career1111 companies for good career
1111 companies for good career
Anand Balaji
 

Ähnlich wie Robot legs workshop extra session navigator-as3 (20)

Evaluate r1 0-3
Evaluate r1 0-3Evaluate r1 0-3
Evaluate r1 0-3
 
Veyfinalfilterspread
VeyfinalfilterspreadVeyfinalfilterspread
Veyfinalfilterspread
 
VR Without Borders RIVER WebVR April 2015
VR Without Borders RIVER WebVR April 2015VR Without Borders RIVER WebVR April 2015
VR Without Borders RIVER WebVR April 2015
 
Web Teaching Tools
Web Teaching ToolsWeb Teaching Tools
Web Teaching Tools
 
儲かるドキュメント
儲かるドキュメント儲かるドキュメント
儲かるドキュメント
 
Enabling the Perforce Administrator via Mobile Device
Enabling the Perforce Administrator via Mobile Device  Enabling the Perforce Administrator via Mobile Device
Enabling the Perforce Administrator via Mobile Device
 
SEA Links for Campers
SEA Links for CampersSEA Links for Campers
SEA Links for Campers
 
Browser-Based Virtual Reality April 2015
Browser-Based Virtual Reality April 2015Browser-Based Virtual Reality April 2015
Browser-Based Virtual Reality April 2015
 
Beyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive DesignBeyond Squishy: The Principles of Adaptive Design
Beyond Squishy: The Principles of Adaptive Design
 
Vim Hacks
Vim HacksVim Hacks
Vim Hacks
 
Vim Hacks
Vim HacksVim Hacks
Vim Hacks
 
Automate Yo'self -- SeaGL
Automate Yo'self -- SeaGL Automate Yo'self -- SeaGL
Automate Yo'self -- SeaGL
 
はじめて学ぶバージョン管理とGit
はじめて学ぶバージョン管理とGitはじめて学ぶバージョン管理とGit
はじめて学ぶバージョン管理とGit
 
みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」
 みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」 みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」
みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」
 
1111 companies for good career
1111 companies for good career1111 companies for good career
1111 companies for good career
 
Sprockets
SprocketsSprockets
Sprockets
 
Linux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareLinux & Open Source - Alternative Software
Linux & Open Source - Alternative Software
 
Introduction to JAX-RS
Introduction to JAX-RSIntroduction to JAX-RS
Introduction to JAX-RS
 
SaaS Boilerplate.pptx
SaaS Boilerplate.pptxSaaS Boilerplate.pptx
SaaS Boilerplate.pptx
 
Arduino programming of ML-style in ATS
Arduino programming of ML-style in ATSArduino programming of ML-style in ATS
Arduino programming of ML-style in ATS
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Robot legs workshop extra session navigator-as3

Hinweis der Redaktion

  1. \n
  2. \n
  3. Background information on why the Navigator came into existence.\nWritten something like this a 1000 times.\n
  4. Background information on why the Navigator came into existence.\nWritten something like this a 1000 times.\n
  5. Background information on why the Navigator came into existence.\nWritten something like this a 1000 times.\n
  6. Background information on why the Navigator came into existence.\nWritten something like this a 1000 times.\n
  7. Background information on why the Navigator came into existence.\nWritten something like this a 1000 times.\n
  8. Don’t explain everything at once. Let’s start with the state concept.\n
  9. Don’t explain everything at once. Let’s start with the state concept.\n
  10. Don’t explain everything at once. Let’s start with the state concept.\n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. Before explaining state containment, break away to behaviorism\n
  17. Before explaining state containment, break away to behaviorism\n
  18. Before explaining state containment, break away to behaviorism\n
  19. Before explaining state containment, break away to behaviorism\n
  20. Before explaining state containment, break away to behaviorism\n
  21. Alright, let’s do this.\n
  22. 1/8- empty paths default to the root paths “/”\n
  23. 2/8- Any responder added to the root, will be considered for a response.\n
  24. 3/8-keep up the speed!\n
  25. 4/8\n
  26. 5/8-nothing surprising here. Let’s go see the wildcard!\n
  27. 6/8-BAM! Wildcards will match any segment.\n
  28. 7/8\n
  29. 8/8-“So what do you do with these states?” Up next are the Behaviors.\n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n