DAN GLEGG
UI AS A SERVICE RIOT
GAMES @RIOTJUL ESFERN
UI AS A GLEGG SERVICE RIOT GAMES @RIOTJUL ESFERN TEAM ORIENTED - - PowerPoint PPT Presentation
DAN UI AS A GLEGG SERVICE RIOT GAMES @RIOTJUL ESFERN TEAM ORIENTED 100+ CHAMPIONS MODERN FANTASY LEAGUE OF LEGENDS STATS MORE THAN MORE THAN MORE THAN 67MILLI 27MILLI 7.5MILL ON ON ION MONTHLY DAILY ACTIVE PEAK PLAYERS
DAN GLEGG
GAMES @RIOTJUL ESFERN
LEAGUE OF LEGENDS STATS
PEAK CONCURRENT PLAYERS
STATS RELEASED JANUARY 2014MONTHLY ACTIVE PLAYERS MORE THAN
DAILY ACTIVE PLAYERS MORE THAN MORE THAN
TH E
DATA SERV ICE UI SERV ICE DATA
OV ER
DATA SERV ICE
DATA SERV ICE UI SERV ICE DATA UI
SOON-TO-BE- REVEALED MAGIC
OV ER
IN THE FIELD OF RENDERING STUFF FROM OTHER APPS
WITHOUT NECESSARILY KNOWING OR CARING WHAT THAT STUFF IS
OR HOW IT SHOULD LOOK OR ANYTHING LIKE THAT
<!DOCTYPE HTML> <html> <head> … <link rel=“alternate” type=“application/json+oembed” href=“/path/to/oembed.json” /> … </head> …
{ “title”: “League of Legends…”, “type”: “rich”, “thumbnail_url”: “https://…”, “width”: 1920, “height”: 1080, “html”: “<div …> OMG STUFF </div>” }
<!DOCTYPE HTML> <html> <head> <title>League of Legends…</title> <link rel=“alternate” type=“application/json+oembed” href=“/path/to/oembed.json” /> … </head> …
1ST PARTY CODE 3RD PARTY CODE
I WANT TO SHOW A THING, NOT JUST A LINK
I HAVE THIS MUCH SPACE, TELL ME HOW TO DISPLAY IT
KTHX
?URL=$FULL_URL_OF_THING_I _WANT
&MAXWIDTH=$WIDTH&MAXHEIGHT=$H EIGHT&FORMAT=JSON
RESPONSE FOLLOWS
IS
AND OTHER HOT CONFERENCE TOPICS
<SELECT> <OPTION NAME=“1”>ONE</OPTIO N> <OPTION NAME=“2”>TWO</OPTIO N> </SELECT> ONE
AND OTHER SCOPE- ENLARGING INCANTATIONS
<SELECT CLASS=“CUSTOM- SELECT”> <OPTION NAME=“1”>ONE</LI> <OPTION NAME=“2”>TWO</LI>
<SELECT CLASS=“CUSTOM- SELECT”>…</SELECT>
document.querySelectorAll(„.custom- select‟).forEach(…); DIV DIV DIV DIV DIV DIV DIV DIV DIV DIV DIV DIV DIV SPAN DIV DIV A DIV SPAN DIV IMG DIV IMG DIV SPAN A DIV A DIV DIV DIV DIV DIV SPAN DIV DIV SPAN IMG A DIV
<CUSTOM-SELECT>…</CUSTOM- SELECT>
document.registerElement(„custom- select‟, proto); proto.createdC allback CUSTOM-SELECT DIV DIV DIV DIV DIV DIV DIV DIV DIV SPAN DIV DIV A DIV SPAN DIV IMG DIV IMG DIV SPAN A DIV A DIV DIV DIV
DIV DIV IMG SPAN FOO A DIV IMG IMG DIV DIV DIV IMG SPAN BAR A DIV IMG IMG DIV DISPLA Y DOM NODE <OPTION NAME=“FOO”>FOO</OP TION> <OPTION NAME=“BAR”>BAR</OPT ION> CONTE NT
document.registerElement(„custom- select‟, proto); proto.createdC allback var shadow = this.createShadowRoot(); shadow.appendChild(awesomeness);
<OPTION NAME=“FOO”>FOO</OPTI ON> <OPTION NAME=“BAR”>BAR</OPTI ON> <OPTION NAME=“NEW”>NEW</OPT ION> NODE INSERTE D myCompo nent.js DIV DIV IMG SPAN FOO A DIV IMG IMG DIV DIV DIV IMG SPAN BAR A DIV IMG IMG DIV DIV DIV IMG SPAN NEW UPDATE SHADOW DOM
(BUT BRING YOUR OWN CONTENT)
polymer-project.org
CLICK HERE
<a href=“http://awesome.com”> Click here </a>
<lasso-embed url=“http://awesome.com”> Loading your stuff now… </lasso-embed>
“html”: “ <script type=“text/javascript”> alert(„LOL PWNED‟); </script>”
“html”: “ <script type=“text/javascript”> $(„#login-form‟).submit( stealPlayerAccount ); </script>”
HARMONIOUS AND CONSIDERATE ALWAYS
(BUT BRING YOUR OWN CONTENT)
ACROSS THE WEB
<custom-tag><including-content /></custom-tag> <script type=“text/javascript”> var ns = window.Riot || {}; if(!ns.CustomTagDependency) { // inject compiled JS script tag } </script>
<div class=“custom-thing”>…</div> <script type=“text/javascript”> var ns = window.Riot || {}; if(!ns.CustomThingEnhancer) { // inject compiled JS script tag } </script>
IS
DELICIOUS, DELICIOUS FEEDBACK
QUESTIONS AND FEEDBACK TO: