tizenporta/index.html

changeset 26
03660c8f542a
parent 25
aa352b378181
equal deleted inserted replaced
9:4e78a8bb74d4 10:95bc49c3863a
1 <!doctype html> 1 <!doctype html>
2 <html lang="en"> 2 <html lang="en">
3 <head> 3 <head>
4 <meta charset="utf-8" /> 4 <meta charset="utf-8" />
5 <meta name="viewport" content="width=1024" /> 5 <meta name="viewport" content="width=1080" />
6 <meta name="apple-mobile-web-app-capable" content="yes" /> 6 <meta name="apple-mobile-web-app-capable" content="yes" />
7 <title>Tizen Application Portability</title> 7 <title>Tizen Application Portability</title>
8 8
9 <meta name="description" content="Tizen Application Portability is a breakout presentation given at the Tizen Developer Conference in San Francisco on 9 May 2012. It explains portable development strategies relying on web frameworks like jQuery Mobile, Sencha Touch, DojoX, and perhaps one day Cordova (Phonegap.)" /> 9 <meta name="description" content="Tizen Application Portability is a breakout presentation given at the Tizen Developer Conference in San Francisco on 9 May 2012. It explains portable development strategies relying on web frameworks like jQuery Mobile, Sencha Touch, DojoX, and perhaps one day Cordova (Phonegap.)" />
10 <meta name="author" content="Michael Schloh von Bennewitz" /> 10 <meta name="author" content="Michael Schloh von Bennewitz" />
100 text-shadow: -1px -1px 2px rgba(100,100,100,0.5); 100 text-shadow: -1px -1px 2px rgba(100,100,100,0.5);
101 } 101 }
102 102
103 /* enable clicking on elements 'hiding' behind body in 3D */ 103 /* enable clicking on elements 'hiding' behind body in 3D */
104 body { pointer-events: none; } 104 body { pointer-events: none; }
105 #impress { pointer-events: auto; } 105 #impress { pointer-events: auto; }
106 106
107 /* COMMON STEP STYLES */ 107 /* COMMON STEP STYLES */
108 108
109 .step { 109 .step {
110 width: 1080px; 110 width: 1080px;
133 /* fade out inactive slides */ 133 /* fade out inactive slides */
134 .step:not(.active) { 134 .step:not(.active) {
135 opacity: 0.3; 135 opacity: 0.3;
136 } 136 }
137 137
138 /* completely fade to dark */
139 .dark:not(.active) {
140 opacity: 0;
141 }
142
138 /* STEP SPECIFIC STYLES */ 143 /* STEP SPECIFIC STYLES */
139 144
140 /* hint on the first slide */ 145 /* hint on the first slide */
141
142 .hint { 146 .hint {
143 position: fixed; 147 position: fixed;
144 left: 0; 148 left: 0;
145 right: 0; 149 right: 0;
146 bottom: 200px; 150 bottom: 200px;
194 } 198 }
195 199
196 #title { 200 #title {
197 background-size: 100% 100%; 201 background-size: 100% 100%;
198 background-image: url(masterhinterbay.png); 202 background-image: url(masterhinterbay.png);
199 background-repeat: no-repeat; 203 border: none;
200 background-attachment: fixed; 204 /*background-repeat: no-repeat;*/
201 background-position: top; 205 /*background-attachment: fixed;*/
206 /*background-position: top;*/
202 } 207 }
203 208
204 #title h1 { 209 #title h1 {
205 padding-left: 42px; 210 padding-left: 42px;
206 font-size: 76px; 211 font-size: 76px;
225 230
226 color: white; 231 color: white;
227 text-shadow: 4px 3px 8px black; 232 text-shadow: 4px 3px 8px black;
228 } 233 }
229 234
235 #vidsrc {
236 width: 100%;
237 height: 100%;
238 }
239
230 #contents { 240 #contents {
231 background-image: url('meefrauhand.svg'); 241 background-image: url('meefrauhand.svg');
232 background-position: 90% 80%; 242 background-position: 90% 80%;
233 background-repeat: no-repeat; 243 background-repeat: no-repeat;
234 color: #202020; 244 color: #202020;
329 -ms-transform: translateZ(50px); 339 -ms-transform: translateZ(50px);
330 -o-transform: translateZ(50px); 340 -o-transform: translateZ(50px);
331 transform: translateZ(50px); 341 transform: translateZ(50px);
332 } 342 }
333 343
334 #topnative:not(.active) {
335 opacity: 0;
336 }
337
338 #topnative:is(.active) {
339 opacity: 1;
340 }
341
342 #picnative:not(.active) {
343 opacity: 0;
344 }
345
346 #picnative:is(.active) {
347 opacity: 1;
348 }
349
350 #topweb .smalltext { 344 #topweb .smalltext {
351 font-size: 104px; 345 font-size: 104px;
352 position: absolute; 346 position: absolute;
353 top: 2em; 347 top: 2em;
354 left: 1.4em; 348 left: 1.4em;
370 -moz-transform: translateZ(50px); 364 -moz-transform: translateZ(50px);
371 -ms-transform: translateZ(50px); 365 -ms-transform: translateZ(50px);
372 -o-transform: translateZ(50px); 366 -o-transform: translateZ(50px);
373 transform: translateZ(50px); 367 transform: translateZ(50px);
374 } 368 }
375
376 #svgrich1:not(.active) {
377 opacity: 0;
378 }
379
380 #svgrich1:is(.active) {
381 opacity: 1;
382 }
383
384 /*#svgtizenarch1:not(.active) {
385 opacity: 0;
386 }
387
388 #svgtizenarch1:is(.active) {
389 opacity: 1;
390 }*/
391 369
392 #svgtizenarch1, #svgtizenarch2 { 370 #svgtizenarch1, #svgtizenarch2 {
393 width: 820px; 371 width: 820px;
394 padding-top: 48px; 372 padding-top: 48px;
395 margin-left: auto; 373 margin-left: auto;
396 margin-right: auto; 374 margin-right: auto;
397 } 375 }
398 376
399 #svgrich2:not(.active) {
400 opacity: 0;
401 }
402
403 #svgrich2:is(.active) {
404 opacity: 1;
405 }
406
407 #svgrich3:not(.active) {
408 opacity: 0;
409 }
410
411 #svgrich3:is(.active) {
412 opacity: 1;
413 }
414
415 #kitplethora:not(.active) {
416 opacity: 0;
417 }
418
419 #kitplethora:is(.active) {
420 opacity: 1;
421 }
422
423 #svgappflow:not(.active) {
424 opacity: 0;
425 }
426
427 #svgappflow:is(.active) {
428 opacity: 1;
429 }
430
431 #specases .smalltext { 377 #specases .smalltext {
432 font-size: 92px; 378 font-size: 92px;
433 line-height: 116px; 379 line-height: 116px;
434 position: absolute; 380 position: absolute;
435 top: 1.25em; 381 top: 1.25em;
479 -ms-transform: translateZ(50px); 425 -ms-transform: translateZ(50px);
480 -o-transform: translateZ(50px); 426 -o-transform: translateZ(50px);
481 transform: translateZ(50px); 427 transform: translateZ(50px);
482 } 428 }
483 429
484 #topchoose2:not(.active) {
485 opacity: 0;
486 }
487
488 #topchoose2:is(.active) {
489 opacity: 1;
490 }
491
492 #topchoose2 a { 430 #topchoose2 a {
493 font-size: 64px; 431 font-size: 64px;
494 position: relative; 432 position: relative;
495 top: 2em; 433 top: 2em;
496 left: 1.4em; 434 left: 1.4em;
513 blockquote { 451 blockquote {
514 text-align: justify; 452 text-align: justify;
515 font-weight: 300; 453 font-weight: 300;
516 font-style: italic; 454 font-style: italic;
517 line-height: 1.2; 455 line-height: 1.2;
518 margin-left: 72px; 456 margin-left: 32px;
519 margin-right: 72px; 457 margin-right: 32px;
520 position: relative; 458 position: relative;
521 top: 3.5em; 459 top: 3em;
522 } 460 }
523 461
524 blockquote .author { 462 blockquote .author {
525 display: block; 463 display: block;
526 text-align: right; 464 text-align: right;
567 } 505 }
568 506
569 #conclusion { 507 #conclusion {
570 background-size: 100% 100%; 508 background-size: 100% 100%;
571 background-image: url(schlusshintergrund.png); 509 background-image: url(schlusshintergrund.png);
572 background-repeat: no-repeat; 510 border: none;
573 background-attachment: fixed; 511 /*background-repeat: no-repeat;*/
574 background-position: top; 512 /*background-attachment: fixed;*/
513 /*background-position: top;*/
575 514
576 color: white; 515 color: white;
577 text-shadow: 8px 6px 12px black; 516 text-shadow: 8px 6px 12px black;
578 } 517 }
579 518
596 535
597 #conclusion img { 536 #conclusion img {
598 float: left; 537 float: left;
599 } 538 }
600 539
601 /* overview step */ 540 #overview { /* overview step */
602
603 #overview {
604 z-index: -1; 541 z-index: -1;
605 padding: 0; 542 padding: 0;
606 } 543 }
607 544
608 /* on overview step everything is visible */ 545 /* on overview step everything is visible */
609
610 .impress-on-overview .step { 546 .impress-on-overview .step {
611 opacity: 1; 547 opacity: 1;
612 cursor: pointer; 548 cursor: pointer;
613 } 549 }
614 550
626 width: 1200px; 562 width: 1200px;
627 height: 600px; 563 height: 600px;
628 564
629 padding: 40px 60px; 565 padding: 40px 60px;
630 566
631 border-radius: 10px; 567 border-radius: 20px;
632 568
633 background-color: white; 569 background-color: white;
634 570
635 box-shadow: 0 2px 6px rgba(0, 0, 0, .1); 571 box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
636 border: 1px solid rgba(0, 0, 0, .3); 572 border: 1px solid rgba(0, 0, 0, .3);
668 display: none; 604 display: none;
669 width: 780px; 605 width: 780px;
670 padding: 10px 10px 0; 606 padding: 10px 10px 0;
671 margin: 20px auto; 607 margin: 20px auto;
672 608
673 border-radius: 10px; 609 border-radius: 20px;
674 border: 1px solid #E4C652; 610 border: 1px solid #E4C652;
675 background: #EEDC94; 611 background: #EEDC94;
676 } 612 }
677 613
678 .fallback-message p { 614 .fallback-message p {
1083 <img src="mastervorderbay.png" width="65%" style="padding-left: 350px;" /> 1019 <img src="mastervorderbay.png" width="65%" style="padding-left: 350px;" />
1084 <h1>Tizen Application Portability</h1> 1020 <h1>Tizen Application Portability</h1>
1085 <h2>Michael Schloh von Bennewitz</h2> 1021 <h2>Michael Schloh von Bennewitz</h2>
1086 </div> 1022 </div>
1087 1023
1088 <div id="contents" class="step slide" data-x="1300" data-y="-1920"> 1024 <!--
1025 avconv -i <inputfile> -b:v 1200k -vcodec libx264 -pre slow -pre baseline -s hd480 -acodec libvo_aacenc -ab 128000 -g 30 <outputfile.mp4>
1026 avconv -i <inputfile> -b:v 1200k -vcodec libvpx -pre 360p -s hd480 -acodec libvorbis -ab 128000 -f webm -g 30 <outputfile.webm>
1027 ffmpeg -i <inputfile> -b:v 1200k -vcodec libtheora -s hd480 -acodec libvorbis -ab 128000 -g 30 <outputfile.ogv>
1028 -->
1029 <div id="vidful" class="step" data-x="1300" data-y="-1920">
1030 <!--<video id="vidsrc" src="tizportdev-768p.ogv" type='video/ogg; codecs="theora, vorbis"' autoplay loop controls />-->
1031 <video id="vidsrc" autoplay loop controls>
1032 <source src="tizportdev-768p.webm" type='video/webm; codecs="vp8, vorbis"' />
1033 <source src="tizportdev-768p.ogv" type='video/ogg; codecs="theora, vorbis"' />
1034 <source src="tizportdev-768p.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
1035 Video tag not supported. Download the video <a href="shouldlook.webm">here</a>.
1036 </video>
1037 <p>Example of correct display of this presentation</p>
1038 </div>
1039
1040 <div id="contents" class="step slide" data-x="1300" data-y="-2600">
1089 <h1>Contents</h1> 1041 <h1>Contents</h1>
1090 <ul> 1042 <ul>
1091 <li><a href="index.html#/topcat">Mobile App <b>Categories</b></a></li> 1043 <li><a href="index.html#/topcat">Mobile App <b>Categories</b></a></li>
1092 <li><a href="index.html#/topnative"><b>Native</b> App Architecture</a></li> 1044 <li><a href="index.html#/topnative"><b>Native</b> App Frameworks</a></li>
1093 <li><a href="index.html#/topweb"><b>Web</b> App Frameworks</a></li> 1045 <li><a href="index.html#/topweb"><b>Web</b> App Frameworks</a></li>
1094 <li><a href="index.html#/tophybrid"><b>Hybrid</b> App Frameworks</a></li> 1046 <li><a href="index.html#/tophybrid"><b>Hybrid</b> App Frameworks</a></li>
1095 <li><a href="index.html#/sdkprovide">Tizen SDK <b>Provision</b></a></li> 1047 <li><a href="index.html#/sdkprovide">Tizen SDK <b>Provision</b></a></li>
1096 <li><a href="index.html#/sdkinteg">Tizen SDK <b>Integration</b></a></li> 1048 <li><a href="index.html#/sdkinteg">Tizen SDK <b>Integration</b></a></li>
1097 <!--<li>Web App Frameworks</li> 1049 <!--<li>Web App Frameworks</li>
1102 <li>Typical Workflows</li> 1054 <li>Typical Workflows</li>
1103 <li>Demonstration</li>--> 1055 <li>Demonstration</li>-->
1104 </ul> 1056 </ul>
1105 </div> 1057 </div>
1106 1058
1107 <div id="topcat" class="step" data-x="800" data-y="-400" data-z="1000" data-scale="3"> 1059 <div id="topcat" class="step dark" data-x="800" data-y="-400" data-z="1000" data-scale="3">
1108 <span class="smalltext">Mobile Application</span> 1060 <span class="smalltext">Mobile Application</span>
1109 <h1>Categories</h1> 1061 <h1>Categories</h1>
1110 </div> 1062 </div>
1111 1063
1112 <div id="svgrich1" class="step" data-x="1052" data-y="-240" data-z="-1000" data-scale="0.125"> 1064 <div id="svgrich1" class="step dark" data-x="1200" data-y="-120" data-z="-1000" data-scale="0.125">
1113 <img src="richreach.svg" width="100%" /> 1065 <img src="richreach.svg" width="100%" />
1114 </div> 1066 </div>
1115 1067
1116 <div id="topnative" class="step" data-x="200" data-y="-570" data-z="-1000" data-scale="0.3"> 1068 <div id="topnative" class="step dark" data-x="200" data-y="-570" data-z="-1000" data-scale="0.3">
1117 <span class="smalltext">Development</span> 1069 <span class="smalltext">Development</span>
1118 <h1>Native App</h1> 1070 <h1>Native App</h1>
1119 </div> 1071 </div>
1120 1072
1121 <div id="svgrich2" class="step" data-x="-1815" data-y="-800" data-z="0" data-scale="1.5"> 1073 <div id="picnative" class="step dark" data-x="800" data-y="-540" data-z="-1000" data-scale="0.2">
1074 <img src="quickmeme.png" width="100%" />
1075 </div>
1076
1077 <div id="svgrich2" class="step dark" data-x="-1815" data-y="-800" data-z="0" data-scale="1.5">
1122 <img src="appsnative.svg" width="100%" /> 1078 <img src="appsnative.svg" width="100%" />
1123 </div> 1079 </div>
1124 1080
1125 <div id="svgtizenarch1" class="step" data-x="-1400" data-y="-1024" data-z="-1000" data-scale="0.4"> 1081 <div id="svgtizenarch1" class="step dark" data-x="-1400" data-y="-1024" data-z="-1000" data-scale="0.4">
1126 <img src="tizenarch.svg" width="100%" height="720px" /> 1082 <img src="tizenarch.svg" width="100%" height="720px" />
1127 </div> 1083 </div>
1128 1084
1129 <div id="picnative" class="step" data-x="-1800" data-y="-1100" data-z="-1000" data-scale="0.2"> 1085 <div id="svgrich3" class="step dark" data-x="-1815" data-y="-800" data-z="0" data-scale="1.5">
1130 <img src="quickmeme.png" width="100%" />
1131 </div>
1132
1133 <div id="svgrich3" class="step" data-x="-1815" data-y="-800" data-z="0" data-scale="1.5">
1134 <img src="appsweb.svg" width="100%" /> 1086 <img src="appsweb.svg" width="100%" />
1135 </div> 1087 </div>
1136 1088
1137 <div id="topweb" class="step" data-x="-2800" data-y="-2200" data-z="0" data-rotate="90" data-scale="2"> 1089 <div id="topweb" class="step" data-x="-2800" data-y="-2200" data-z="0" data-rotate="90" data-scale="2">
1138 <span class="smalltext">Frameworks</span> 1090 <span class="smalltext">Frameworks</span>
1139 <h1>Web App</h1> 1091 <h1>Web App</h1>
1140 </div> 1092 </div>
1141 1093
1142 <div id="kitplethora" class="step" data-x="-2755" data-y="-2320" data-z="-1000" data-rotate="90" data-scale="0.05"> 1094 <div id="kitplethora" class="step" data-x="-2755" data-y="-2320" data-z="-1000" data-rotate="90" data-scale="0.05">
1143 <q><b>Web App Frameworks</b></q> 1095 <q><b>JavaScript Libraries</b></q>
1144 <ul class="webfmwork"> 1096 <ul class="webfmwork">
1145 <li class="item fmwork-1" style="width: 120px; line-height: 40px;">jQuery Mobile</li> 1097 <li class="item fmwork-1" style="width: 120px; line-height: 40px;">jQuery Mobile</li>
1146 <li class="item fmwork-2" style="width: 120px; line-height: 40px;">Sencha Touch</li> 1098 <li class="item fmwork-2" style="width: 120px; line-height: 40px;">Sencha Touch</li>
1147 <li class="item fmwork-3">DojoX</li> 1099 <li class="item fmwork-3">DojoX</li>
1148 <li class="item fmwork-4">jQTouch</li> 1100 <li class="item fmwork-4">jQTouch</li>
1167 <li class="item fmwork-23">Rhomobile</li>--> 1119 <li class="item fmwork-23">Rhomobile</li>-->
1168 </ul> 1120 </ul>
1169 </div> 1121 </div>
1170 1122
1171 <div id="specases" class="step" data-x="-2755" data-y="-3700" data-z="-1000" data-rotate="180" data-scale=".5"> 1123 <div id="specases" class="step" data-x="-2755" data-y="-3700" data-z="-1000" data-rotate="180" data-scale=".5">
1172 <!-- Paul IRISH with best practices -->
1173 <!-- Principle of progressive enhancement -->
1174 <span class="smalltext">HTML5Boilerplate Modernizr</span> 1124 <span class="smalltext">HTML5Boilerplate Modernizr</span>
1175 <h1>Special Cases</h1> 1125 <h1>Special Cases</h1>
1176 </div> 1126 </div>
1177 1127
1178 <div id="topchoose1" class="step" data-x="-2755" data-y="-4550" data-z="-1000" data-rotate="180" data-scale="2"> 1128 <div id="topchoose1" class="step" data-x="-2755" data-y="-4550" data-z="-1000" data-rotate="180" data-scale="2">
1179 <span class="smalltext">a framework</span> 1129 <span class="smalltext">from JS libs</span>
1180 <h1>Choosing</h1> 1130 <h1>Choosing</h1>
1181 </div> 1131 </div>
1182 1132
1183 <div id="svgappflow" class="step" data-x="-2740" data-y="-4500" data-z="-1000" data-rotate="180" data-scale="0.1"> 1133 <div id="svgappflow" class="step" data-x="-2740" data-y="-4500" data-z="-1000" data-rotate="180" data-scale="0.1">
1184 <img src="newappflow.svg" width="100%" /> 1134 <img src="newappflow.svg" width="100%" />
1248 <h1>Thank You!</h1> 1198 <h1>Thank You!</h1>
1249 <img src="qrtizportdev.png" width="300px" /> 1199 <img src="qrtizportdev.png" width="300px" />
1250 <h2><span style="color: aqua;">Tizen</span> <span style="color: orange;">Application</span> <span style="color: red;">Portability</span></h2> 1200 <h2><span style="color: aqua;">Tizen</span> <span style="color: orange;">Application</span> <span style="color: red;">Portability</span></h2>
1251 </div> 1201 </div>
1252 1202
1253 <div id="overview" class="step" data-x="2500" data-y="-4200" data-scale="12"> 1203 <div id="overview" class="step" data-x="2500" data-y="-4000" data-scale="12" />
1254 </div>
1255 1204
1256 <!--<div id="midlabel" class="step" data-x="3700" data-y="-3000" data-scale="6"> 1205 <!--<div id="midlabel" class="step" data-x="3700" data-y="-3000" data-scale="6">
1257 <h1>Tizen</h1> 1206 <h1>Tizen</h1>
1258 </div>--> 1207 </div>-->
1259 1208
1262 </div> 1211 </div>
1263 <script> 1212 <script>
1264 if ("ontouchstart" in document.documentElement) { 1213 if ("ontouchstart" in document.documentElement) {
1265 document.querySelector(".hint").innerHTML = "<p>Tap on the left or right to navigate</p>"; 1214 document.querySelector(".hint").innerHTML = "<p>Tap on the left or right to navigate</p>";
1266 } 1215 }
1216
1217 var videostep = document.getElementById("vidful");
1218 var videofile = document.getElementById("vidsrc");
1219 videostep.addEventListener("impress:stepenter", function() {
1220 videofile.play();
1221 }, false);
1222 videostep.addEventListener("impress:stepleave", function() {
1223 videofile.pause();
1224 }, false);
1267 </script> 1225 </script>
1268 1226
1269 <script src="impress.js"></script> 1227 <script src="impress.js"></script>
1270 <script>impress().init();</script> 1228 <script>impress().init();</script>
1271 1229

mercurial