intel - workshop html5

80
HTML5 WORKSHOP

Upload: barcelona-digital-technology-centre

Post on 28-Jan-2015

149 views

Category:

Documents


1 download

DESCRIPTION

BDigital Apps 2011 - Workshop HTML5

TRANSCRIPT

Page 1: INTEL - Workshop HTML5

HTML5 WORKSHOP

Page 2: INTEL - Workshop HTML5

Mr. Rafael Gimenez

| Senior ResearcherMobility & Energy R&D Mobility & Energy R&D

Barcelona Digital Technology Centre

Page 3: INTEL - Workshop HTML5

Mr. Hernán Alijo

| Community & Marketing ManagerIntel App Up Developer Program

Page 4: INTEL - Workshop HTML5

Intel AppUpSM Application Lab

Hernán Alijo, Intel® Corporation

Page 5: INTEL - Workshop HTML5

Antes de comenzar

• Pongan sus celulares en modo silencioso• Conversaciones telefónicas o en persona que sea

necesario mantener durante la duración del AppLab porfavor, mantenerlas afuera

• El hashtag de Twitter del evento de hoy es #AppUp

Page 6: INTEL - Workshop HTML5

Legal Disclaimer• INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OFSALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALEAND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, ORINFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for use in medical, life-saving, lifesustaining, critical control or safety systems, or in nuclear facility applications.

• Intel products may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Currentcharacterized errata are available on request.

• Intel may make changes to dates, specifications, product descriptions, and plans referenced in this document at any time, without notice.

• This document may contain information on products in the design phase of development. The information here is subject to change without notice. Donot finalize a design with this information.

• Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for futuredefinition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them.

• Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to thepresented subject matter. The furnishing of documents and other materials and information does not provide any license, express or implied, by estoppelor otherwise, to any such patents, trademarks, copyrights, or other intellectual property rights.

• Wireless connectivity and some features may require you to purchase additional software, services or external hardware.

• Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intelproducts as measured by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers shouldconsult other sources of information to evaluate the performance of systems or components they are considering purchasing. For more information onperformance tests and on the performance of Intel products, visit Intel Performance Benchmark Limitationsconsult other sources of information to evaluate the performance of systems or components they are considering purchasing. For more information onperformance tests and on the performance of Intel products, visit Intel Performance Benchmark Limitations

• Intel, the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

Copyright © 2011 Intel Corporation. All rights reserved.Intel Confidential - Customer NDA Use Only* Other Names and Brands maybe claimed as the property of others. All dates, plans and features are preliminary and subject to change without notice.

Page 7: INTEL - Workshop HTML5

Agenda• Presentación general del Intel AppUp(sm) Developer

Program & Intel AppUp(sm) Center • HTML5, cómo embarcarte, experiencias multi-

dispositivo. • Charla técnica:

– HTML5, un poco de historia, features, librerías y un poco de – HTML5, un poco de historia, features, librerías y un poco de código

– Intel AppUp Encapsulator– SDKs & SDKs plug-in– Cómo subir tu App a la tienda/Validación

• Consejos y trucos• Preguntas

Page 8: INTEL - Workshop HTML5

Presentación del programa paradesarrolladoresIntel AppUpSMIntel AppUpSM

Page 9: INTEL - Workshop HTML5

La economía de lasaplicaciones

2010

2011

2014

2010

Source: Gartner Worldwide Mobile Application Store Revenue Forecast

Page 10: INTEL - Workshop HTML5

Intel AppUpSM program

Múltiples dispositivos. Múltiples OS’s. Múltiples app stores. Un programa.

Page 11: INTEL - Workshop HTML5

Intel AppUpSM developer programHerramientas y recursos para llegar a los consumidores en todo el mundo

Multi-dispositivo =

mayor mercado

Herramientasde uso simple

Procesoalineado

+soporte

Visibilidad y monetización

Page 12: INTEL - Workshop HTML5

Modelo ‘end-to-end’

Intel AppUpSM

developer programIntel

AppUpSM

center

Consuidores

Promoción y marketing de la tienda para hacerllegar las apps a los usuarios finales.

12

Desarrollo y validación

Infraestructura de la tienda y de su red de tiendas asociadas

Tiendasasociadas

Page 13: INTEL - Workshop HTML5

Múltiples tiendas, múltiples dispositivos, múltiplesplataformas y lenguajes y un sólo catálogo.

And more, with more coming!

Y muchasmás!

Desktops

Laptops Netbooks

Personal Devices

Smartphones Smart TVs Embedded

Page 14: INTEL - Workshop HTML5

www.appup.es

Page 15: INTEL - Workshop HTML5

¡Oportunidades!

La nueva generación de estrellas

Programas de promoción de tus

aplicacionesCompetencias mundiales y desafíos que premian a lasmejores aplicaciones.

15

appdeveloper.intel.com/es-es/opportunities

Programa de asignaciónde fondos paradesarrolladoresPremios y

reconocimientosCapacitación y

desarrollo

mejores aplicaciones.

Page 16: INTEL - Workshop HTML5
Page 17: INTEL - Workshop HTML5

UltrabookTM

Transformando la PC

• Hoy se venden billones de

PCs

• Ultrabook en los próximos

años será el 40% de ese

mercado

Crear experiencias para el mercadode la PC y en especial de lasUltrabooks son una oportunidadpara developers.

Page 18: INTEL - Workshop HTML5

HTML5* permite desarrollarpara múltiples plataformas

Recent Headlines

Apple adoptó HTML5

Las compañías se vuelcan a HTML5

2.1BILLION

Installed Base Mobile Devices with HTML5 Browsers World Market, Forecast, By Device: 2011 to 2016 ABI Research

Dispositivos móviles con browser que soportan

HTML5

Apple adoptó HTML5

Microsoft pone el foco en HTML5

109MILLION

Page 19: INTEL - Workshop HTML5

Do you think this is hot?

Page 20: INTEL - Workshop HTML5

Think again.

Page 21: INTEL - Workshop HTML5

¡Súmate!

• www.appup.es

• Únete

http://appdeveloper.intel.com/es-es/

• Comunícate• Comunícate

@_alijo | Community Manager, Hernán Alijo@develop4appUpEU

Page 22: INTEL - Workshop HTML5

HTML5 WORKSHOP

Page 23: INTEL - Workshop HTML5

Mr. Francisco Rueda

| CTO| CTOGenera Interactive

Page 24: INTEL - Workshop HTML5

Intel AppUpSM Application Lab

Francisco Rueda, Genera Interactive

Page 25: INTEL - Workshop HTML5
Page 26: INTEL - Workshop HTML5

Evolución & Revolución

Page 27: INTEL - Workshop HTML5

<canvas>

Page 28: INTEL - Workshop HTML5

<audio> & <video>

Page 29: INTEL - Workshop HTML5

Drag & Drop, Off-Line Content, SQL,

Workers, Sockets, Acceso a HardWare

(GPS, Files, camera,…)

Page 30: INTEL - Workshop HTML5

Distribución Tradicional Vs Distribución Digital

Page 31: INTEL - Workshop HTML5

HTML5 WORKSHOP

Page 32: INTEL - Workshop HTML5

Mrs. Sulamita Garcia

| Technical MarketingIntel App Up Developer Program

Page 33: INTEL - Workshop HTML5

Intel AppUpSM Application Lab

Sulamita García, Intel® Corporation

Page 34: INTEL - Workshop HTML5

Empowering HTML5 with AppUp

• HTML5 Basics– W3C and WhatWG– What’s new

• Distributing HTML5 Applications– Intel AppUp Encapsulator

• Talk is cheap, show me the code• Talk is cheap, show me the code

Page 35: INTEL - Workshop HTML5

Basics

Page 36: INTEL - Workshop HTML5

W3C and HTML

• “Implementations and specifications have to do a delicate dance together.”

• Board overseeing draft• Board overseeing draft• Dynamic circular work

– Browsers implement features in draft

– Draft implements features used in browsers

Page 37: INTEL - Workshop HTML5

Enters WhatWG

Page 38: INTEL - Workshop HTML5

What’s new - Big picture

• HTML5– New tags

• Javascript

<html><head>

<title>Sample Web Page</title><script> var context = canvas_area.getContext(“2d”);</script>• Javascript

– New libraries

• CSS3

</script></head><body>

<canvas id=“canvas_area” width=300 height=200>

</canvas></body>

</html>

Page 39: INTEL - Workshop HTML5

What’s new – new resources

• <video>, <audio>, <canvas>, <section>, <article>, <nav>, <ruby>, <time>, <header>, <footer>, <progress>…

• <input> new types: tel, search, url, email, date, number, color...number, color...

• Geolocation, offline storage, webgl…

Page 40: INTEL - Workshop HTML5

What’s New - Simplifying XHTML

Original HTML5

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!DOCTYPE html> <html lang="en"> <head> D/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<head> <meta charset="utf-8" /> <meta name="robots" content="noindex" />

Page 41: INTEL - Workshop HTML5

Basics

• HTML5 Definition is overseen by W3C together with developers and browsers, dinamically

• HTML5 ~= HTML + CSS + JS• HTML5 ~= HTML + CSS + JS

• Simplyfying and new tags

Page 42: INTEL - Workshop HTML5

Distributing HTML5 Applications

Page 43: INTEL - Workshop HTML5

Intel AppUp

• Distribution channel for web applications– Plus C/C++, Java, Flash, .Net

and Adobe Air

• +30 co-branded stores worldwide

• Open source applications

• Developer Program– SDK, documents, plug-ins

• English, French, German, Italian, Spanish

Page 44: INTEL - Workshop HTML5

Intel AppUp Encapsulator

• Supports many HTML5 features

• Integrated with AppUp• Asks for GUI and info• Asks for GUI and info• Provides .msi and

.rpm packages

Page 45: INTEL - Workshop HTML5

Encapsulator features support

Encapsulator• Forms• Storage• Canvas• Canvas• Web Applications...

http://appdeveloper.intel.com/en-us/article/html5-feature-compatibility-intel-

appup-encapsulator-beta

Page 46: INTEL - Workshop HTML5

WebKit

• Engine: what renders code

• Open Source

• Example of other engines: Gecko(Firefox), Trident(IE), • Example of other engines: Gecko(Firefox), Trident(IE), Presto(Opera)

• Currently version 2.2

Page 47: INTEL - Workshop HTML5

Distributing HTML5 Applications -Summary • Intel AppUp offers a unique distribution channel

• AppUp Encapsulator has support to many features and will continue to improvewill continue to improve

• WebKit is an open source engine where many projects use, like Encapsulator

Page 48: INTEL - Workshop HTML5

Talk is cheap, show me the code

Page 49: INTEL - Workshop HTML5

Detection techniques

• Check if a certain property exists on a global object (such as window or navigator).

return !!navigator.geolocation;

• Create an element, then check if a certain property • Create an element, then check if a certain property exists on that element.

return !!document.createElement('canvas').getContext;

Page 50: INTEL - Workshop HTML5

Detection techniques

• Create an element, check if a certain method exists on that element, then call the method and check the value it returns.var v = document.createElement("video");

return v.canPlayType('video/mp4;

codecs="avc1.42E01E, mp4a.40.2"');

• Create an element, set a property to a certain value, then check if the property has retained its value.var i = document.createElement("input");

i.setAttribute("type", "color");

return i.type !== "text";

Page 51: INTEL - Workshop HTML5

New HTML5 interesting tags

• Canvas

• Geolocation

• Video, Audio• Video, Audio

• Section tags

Page 52: INTEL - Workshop HTML5

Canvas Template

<html><head><script type="text/javascript">var context;function draw(){

context=myApp.getContext('2d'); } }

</script></head><body onLoad="draw()">

<canvas id="myApp" width="1000" height="1000"></canvas> </body></html>

Page 53: INTEL - Workshop HTML5

Canvas

ctx.beginPath();ctx.moveTo(x,y);ctx.lineTo(x+50,y);ctx.lineTo(x+25,y+50);ctx.closePath();ctx.fillStyle = "#ffc821"; ctx.fillStyle = "#ffc821"; ctx.fill();

ctx.beginPath();ctx.rect(x,y,w,h);ctx.closePath();ctx.fill();

Page 54: INTEL - Workshop HTML5

40,0

-5,-5 5,-5

10x10 Square

Coordinates in pixels

Origin of screen

context.save();

context.translate(100,100);

context.strokeStyle=red;

context.beginPath();

context.moveTo(5,5);

5,5-5,5

Origin of object

context.translate(x,y)context.restore

context.moveTo(5,5);

context.lineTo(-5,5);

context.lineTo(-5,-5);

context.lineTo(5,-5);

context.lineTo(5,5);

context.endPath();

context.stroke();

context.restore();

Page 55: INTEL - Workshop HTML5

Canvas Drawing Process

1. Save Origin Coordinates– context.save()

2. Move & Rotate Origin– context.translate(x,y), context.rotate(radian)

3. Draw Object4. Restore Origin

– context.restore()

Page 56: INTEL - Workshop HTML5

context.moveTo(-3, 2);

context.lineTo(-4, -1);

context.lineTo(1, 4);

context.lineTo(0, 5);

context.lineTo(-1, 4);

context.lineTo(4, -1);

context.lineTo(3, 2);

context.moveTo(-4, -1);

context.lineTo(3, -5);

context.lineTo(0, 3);

context.lineTo(-3, -5);

context.lineTo(4, -1);

context.moveTo(shipSize*-.3, shipSize*.2);

context.lineTo(shipSize*-.4, shipSize*-.1);

context.lineTo(shipSize*.1, shipSize*.4);

context.lineTo(0, shipSize*.5);

context.lineTo(shipSize*-.1, shipSize*.4);

context.lineTo(shipSize*.4, shipSize*-.1);

context.lineTo(shipSize*.3, shipSize*.2);

context.moveTo(shipSize*-.4, shipSize*-.1);

context.lineTo(shipSize*.3, shipSize*-.5);

context.lineTo(0, shipSize*.3);

context.lineTo(shipSize*-.3, shipSize*-.5);

context.lineTo(shipSize*.4, shipSize*-.1);

context.lineTo(4, -1);

context.stroke();

Page 57: INTEL - Workshop HTML5

Canvas Animation Example -AltMegaRace

http://youtu.be/qc0tSdJOifA

Page 58: INTEL - Workshop HTML5

Geolocationnavigator.gelocation.getCurrentPosition(show_map, error_f); <!--- callback --->

function show_map(position) {

var latitude = position.coords.latitude;

var longitude = position.coords.longitude;

var latlng = new google.maps.LatLng(latitude, longitude);

var myOptions = {

zoom: 15,

center: latlng,

mapTypeId: google.maps.MapTypeId.ROADMAP

););

var map = new google.maps.Map(document.getElementById(“mapcanvas”), myOptions);

var marker = new google.maps.Marker ( {

position : latlng,

map: map,

title: “You are here!”

} ) ;

}

Page 59: INTEL - Workshop HTML5

Geolocation - results

Page 60: INTEL - Workshop HTML5

Geolocation - Permissions

Ask for user permission:

function error_f() {

if (err.code == 1) {if (err.code == 1) {

// user said no, show map default location

} elseif (err.code == 2) {

// position unavailable

} elseif (err.code == 3) {

// timeout

} else {

// error unknown (0)

}

}

Page 61: INTEL - Workshop HTML5

Video

• It’s complicated...• Codecs and patents making everything difficult• Supporting <video> not necessarily means supporting MPEG-4 or

H.264

<video src=“video.mp4” width=320 height=240 autoplay> </video>

<video width=320 height=240 controls>

<source src=“video.mp4” type=‘video/mp4; codecs=“avc1.42E01E, mp4a.40.2”’>

<source src=“video.webm type=‘video/webm; codecs=“vp8, vorbis”’>

<source src=“video.ogv” type=‘video/ogg; codecs=“theora, vorbis”’>

</video>

Page 62: INTEL - Workshop HTML5

Audio

<audio src=“audio.ogg" controls="controls">

Your browser does not support the audio element.

</audio>

<audio controls="controls">

<source src=“audio.ogg" type="audio/ogg" /><source src=“audio.ogg" type="audio/ogg" />

<source src=“audio.mp3" type="audio/mpeg" />

Your browser does not support the audio element.

</audio>

Page 63: INTEL - Workshop HTML5

Section tags

• Great for syndication and dynamically compounding• Avoiding confusions with <h1>-<h6>section|+--h1 (first heading, child of section)| || || +--text node "Hello WebWorld"|+--p (child of section, sibling of h1)

|+--text node "This is your text"

Page 64: INTEL - Workshop HTML5

Section tags

• No more <div>s• <section>• <article>• <aside>• <header>• <header>• <hgroup>• <figure><figcaption>• <nav>• <footer>

Page 65: INTEL - Workshop HTML5

Section tags - <section>

<body><p> Some text paragraph, pretend it’s long...</p><section>

<h1>This is the first section</h1><p> This is the section text</p><p> This is the section text</p>

</section>

Page 66: INTEL - Workshop HTML5

Section tags – <article>

<article>

<header>

<h1>How we got here</h1><h2>Hot Topic</h2>

<h2>Who defines HTML5</h2>

<h2>A bit of history</h2>

<nav>

<ul>

<li><a href=“#”>home</a></li>

<li><a href=“#”>home</a></li><li><a href=“#”>home</a></li>

<li><a href=“#”>home</a></li>

<li><a href=“#”>home</a></li>

</ul>

</nav>

</header>

<p>Lorem ipsum … </p>

<footer>

<p> That’s all folks!</p>

</footer>

</article>

Page 67: INTEL - Workshop HTML5

APPUP SDK AND PLUGINS

Page 68: INTEL - Workshop HTML5

Download Intel AppUpTM SDK Plug-In

• Don’t have Web app, use Windows* native SDK

• SDK Integration easy and simple

• Step by Step Wizards• Step by Step Wizards

• Automated Package Builder

• Beta Test

• Submit

Page 69: INTEL - Workshop HTML5

Supported Technologies

• Java– Eclipse

• Air– Flex Builder– Flex Builder

• .NET and C/C++– Visual Studio 2010 and 2008

Page 70: INTEL - Workshop HTML5

• Authorization

– verify that end-user device is authorized to run the application– verify that application is authorized to use the component

• Instrumentation

– record application’s usage statistics and post it on developer’s dashboard1

• Crash Reporting

SDK Services

– registering all crashes– attempting to collect crash data (such as call stack)– reporting statistics and crash data on developer’s dashboard

• In-App Upgrade

• Development Tools

– various utilities to facilitate application’s testing, packaging and submission

Page 71: INTEL - Workshop HTML5

• Improves overall quality of the Intel AppUpSM center, helps guarantee quality apps

• Better apps means better user experience• Helps reduce virus or malicious software in the store. • Need to sign new apps and updated apps as well• Certificates: Chosen Security, Verisign, Globalsign, • Thawte, Trust Center, Go Daddy Secure Certification Authority

and Comodo

App Signing

• Certificate Tutorial: http://appdeveloper.intel.com/en-us/article/how-do-i-get-code-signing-certificate-certifying-authority

• Manual Process: • http://appdeveloper.intel.com/en-us/video/signing-jar-file-video-

tutorial• http://appdeveloper.intel.com/en-us/video/signing-msi-file-video-

tutorial• App Signing Tool: http://appdeveloper.intel.com/en-us/article/app-

signing-tool-download

71

Page 72: INTEL - Workshop HTML5

App Signing Utility

http://appdeveloper.intel.com/en-us/article/app-signing-tool-download

Page 73: INTEL - Workshop HTML5

• Beta allows you to test app like a real end user.

• Need to join Intel AppUpSM center, which is different than Intel AppSM

developer program

• Up to 50 beta testers allowed per app

Beta, Beta, Beta

• No need to buy app as beta tester

• Nearly all rejections could have been caught at beta testing

• Significantly speeds up validation since you know it works

• Always test on clean machine and factory reset.

73

Page 74: INTEL - Workshop HTML5

Summary

• AppUp supports and offer SDKs and Plugins for .Net, C/C++(Visual Studio), Adobe Air (Flex Builder) and Java(Eclipse)

• Signing apps improves quality and security overall; AppUp helps you sponsoring the certificate and offering AppUp helps you sponsoring the certificate and offering tools

• Beta testing helps to improve your app and fasten your validation

Page 75: INTEL - Workshop HTML5

Tips and TricksTips and Tricks

Page 76: INTEL - Workshop HTML5

• Screen resolution is too small/big screen, app should dynamically resize to any device screen size

• At the least, app must work on 1024X600• UI failures such as buttons or menus are partially hidden • Even if app performs slow, it will be passed if its still usable

Common App Submission Pit Falls

• Even if app performs slow, it will be passed if its still usable and doesn’t crash

• Cannot advertise method to purchase app and avoid store• No Intel advertising, partners will rebrand store• App will launch from the desktop and NOT from the AppUp

Center• Check all apps on 32 bit and 64 bit before app submission.

76

Page 77: INTEL - Workshop HTML5

• Email developer on app rejection or acceptance, but exact failure is on Intel AppSM

developer program website

• Application section in My Dashboard will have link to exact failure with step by step

App Validation Failure

exact failure with step by step process

• Look under “Test Results”

• Both Binary and Meta violations in app rejection can occur, typical rejection occurs in Binary Validation

77

Page 78: INTEL - Workshop HTML5

Links

• http://appup.com/• http://appdeveloper.intel.com/• http://appdeveloper.intel.com/en-us/article/html5-feature-

compatibility-intel-appup-encapsulator-beta• http://appdeveloper.intel.com/en-us/article/html5-game-

development-appup-part-1• diveintohtml5.info / HTML5 Up and Running• html5test.com – score/support check• html5test.com – score/support check• Head First HTML5 • http://evolutionofweb.appspot.com/• http://html5demos.com/

• Specification: http://www.whatwg.org/html• http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML5

)

Page 79: INTEL - Workshop HTML5

@bdigital@bdigitalHashtag: #bdigitalapps

Page 80: INTEL - Workshop HTML5

HTML5 WORKSHOP