Top Banner
www.interlat.co – [email protected] h2p://www.facebook.com/interlat www.twi2er.com/interlat PBX: 57(1) 658 2959 Bogotá Colombia Aula Virtual: h2p://www.interlat.co/moodle/ Miércoles de Profundización en e-business Tema : Construyendo y publicando nuestra primera App multiplataforma. Conferencista: Carlos Alonso Pérez País: España
49

Construyendo y publicando nuestra primera app multiplataforma

Jan 13, 2017

Download

Mobile

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Construyendo y publicando nuestra primera app multiplataforma

www.interlat.co  –  [email protected]  -­‐    h2p://www.facebook.com/interlat  -­‐  www.twi2er.com/interlat  -­‐  PBX:  57(1)  658  2959    -­‐  Bogotá  -­‐  Colombia  Aula  Virtual:  h2p://www.interlat.co/moodle/

Miércoles de Profundización en  e-business  

Tema : Construyendo y publicando nuestra primera App multiplataforma.  

Conferencista: Carlos Alonso Pérez  País: España

Page 2: Construyendo y publicando nuestra primera app multiplataforma

Índice de la presentación

• Planeando nuestra aplicación

• Construcción

• Publicación

• Conclusiones

Page 3: Construyendo y publicando nuestra primera app multiplataforma

Planeando nuestra aplicación

• Objetivos

• Problemas

• Soluciones

• Viabilidad

• Decisión final

Page 18: Construyendo y publicando nuestra primera app multiplataforma

Fragmentación: Conclusión

Equilibrio

Capacidades utilizadas

Clientes Potenciales

vs

Page 20: Construyendo y publicando nuestra primera app multiplataforma

Solución: Una única aplicación multiplataforma

Page 21: Construyendo y publicando nuestra primera app multiplataforma

Estudio de la solución: Tecnologías disponibles

Page 22: Construyendo y publicando nuestra primera app multiplataforma

HTML 5. Potencia y capacidades para tu browser

E"quetas  semán"cas

<header>

<nav> <section>

<article>

<figure>

<footer>

<menu>

Acceso  Hardware

Filesystem SensoresAlmacenamiento  local

Funcionamiento  offline

Comunicaciones  en  "empo  realNoQficaciones

WebSockets

Web  workers

Mul"media  y  Gráficoscanvas  2D  y  3D

gráficos  vectoriales  (SVG)

audio  y  vídeo

Page 23: Construyendo y publicando nuestra primera app multiplataforma

Javascript. El lenguaje de programación de la web.

prototype

eval

isFunction

typeof

instanceof

Object

new Function()

Object.isPrototypeOf()

Clases y objetos

Page 24: Construyendo y publicando nuestra primera app multiplataforma

CSS 3. Experiencia de usuario de última generación

Selectores

TipograZas  personalizadas

Efectos  en  textos  

Organización  en  columnasSemi  Transparencias

Colores  personalizados

Esquinas  redondeadas

GradientesSombras

Animaciones

Transformaciones

Page 25: Construyendo y publicando nuestra primera app multiplataforma

jQuery Mobile. Desarrollo móvil rápido y sencillo

Javascript  no  intrusivo

Plugins

Máxima  compaQbilidad

Muy  ligero

Ampliamente  usado‘write  less,  do  more’

Documentación

Page 26: Construyendo y publicando nuestra primera app multiplataforma

Viabilidad técnica

SI•  Geolocalización  (GPS)  •  Reproducción  mulQmedia  •  Sensores  de  movimiento  •  Almacenar  datos  locales  •  Acceso  offline

NO•  Otros  sensores  •  Cámara  •  NoQficaciones  •  Web  GL    •  Alto  rendimiento

h2p://mobilehtml5.org/

Page 28: Construyendo y publicando nuestra primera app multiplataforma

Construyendo nuestra aplicación multiplataforma

• Primeros pasos

• Componentes UI

• Capacidades HTML 5

• Diseño personalizado

• Demos

Page 29: Construyendo y publicando nuestra primera app multiplataforma

Primeros pasos. El documento

<!DOCTYPE html> <html> <head>

<meta charset="utf-8" /><title>HTML 5 Demo</title> <!-- CSS --><link rel="stylesheet"

href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" /><!-- jQuery Core --><script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> <!-- jQuery Mobile --><script type="text/javascript"

src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"> </script> </head> <body> </body></html>

Page 30: Construyendo y publicando nuestra primera app multiplataforma

Primeros pasos. El viewport

<head>....

<meta name=”viewport” content=”width=device-width, initial-scale=1”></head>

<!-- Sin Zoom --><meta .... user-scalable=no”>

Page 31: Construyendo y publicando nuestra primera app multiplataforma

Primeros pasos. Estructura de la aplicación

<body> <div data-role="page">

<div data-role="header"> <h1>Header</h1></div><div data-role="content"> <p>Content</p></div><div data-role="footer"

data-position="fixed"> <h4>Footer</h4></div>

</div></body>

Page 36: Construyendo y publicando nuestra primera app multiplataforma

Componentes UI. Menu y Toolbar

<div data-role="content"> <ul data-role="listview"> <li><a href="#geolocation">Geolocation API</a></li> <li><a href="#canvas">Canvas</a></li> <li><a href="#storage">Offline Storage</a></li> </ul></div>

<div data-role="footer" data-position="fixed"> <div data-role="navbar"> <ul> <li><a href="#main-menu">Home</a></li> <li><a href="#geolocation">GPS</a></li> <li><a href="#canvas">Canvas</a></li> <li><a href="#storage">Storage</a></li> </ul> </div></div>

Page 37: Construyendo y publicando nuestra primera app multiplataforma

Capacidades HTML5. Geolocalización

<div data-role="page" id="geolocation" data-add-back-btn="true">

... Header ...

<div data-role="content">

<p>Wait for the map...</p>

</div>

... Footer ...

</div>

<script type="text/javascript">

$('#geolocation').live('pageinit', function(){

navigator.geolocation.getCurrentPosition (function(pos) {

var lat = pos.coords.latitude;

var lng = pos.coords.longitude;

... Lógica de invocación del mapa Google ...

</script>

Page 38: Construyendo y publicando nuestra primera app multiplataforma

Capacidades HTML5. Canvas

<div data-role="page" id="canvas" data-add-back-btn="true">

... Header ...

<div data-role="content">

<canvas id=”theCanvas”></canvas>

</div>

... Footer ...

</div>

var context = $('#theCanvas')[0].getContext('2d');

context.beginPath();

context.rect(20, 20, 200, 100);

context.fillStyle = context.createLinearGradient(20, 20, 220, 120);

context.fill();

Page 39: Construyendo y publicando nuestra primera app multiplataforma

Capacidades HTML5. Almacenamiento de datos

<div data-role="page" id="storage" data-add-back-btn="true">

... Header ...

<input type="text" id="item" placeholder="Add Item..." value=""/>

<input type="button" id="add_btn" value="Add Item" data-icon="plus"/>

<ol data-role="listview" data-inset="true"></ol>

... Footer ...

</div>

var $input = $('#item');

var arr = localStorage.items ? JSON.parse(localStorage.items) : [];

arr.push($input.val());

localStorage.items = JSON.stringify(arr);

... Lógica jQuery para refrescar la lista ...

Page 40: Construyendo y publicando nuestra primera app multiplataforma

Diseño personalizado.

• CSS

• jQuery Theme Roller

• Fireworks Theme editor

<head>...<link rel="stylesheet" href="css/custom_css.min.css" />...</head>

Page 42: Construyendo y publicando nuestra primera app multiplataforma

Publicando nuestra aplicación multiplataforma

• Como aplicación nativa

• Como aplicación híbrida

• Como aplicación web

Page 45: Construyendo y publicando nuestra primera app multiplataforma

Como aplicación web. Instalación

<head>

...

<link rel="apple-touch-icon" href="icons/icon57.png" sizes="57x57"> <link rel="apple-touch-icon" href="icons/icon114.png" sizes="114x114"> <link rel="apple-touch-icon" href="icons/icon72.png" sizes="72x72"> <link rel="apple-touch-icon" href="icons/icon80.png" sizes="80x80" > <link rel="apple-touch-icon-precomposed" href="icons/icon57.png" sizes="android-only">

...

</head>

Page 46: Construyendo y publicando nuestra primera app multiplataforma

Como aplicación web. Funcionamiento offline

CACHE MANIFEST: # version 1.0

# Archivos jQuery http://code.jquery.com/jquery-1.6.1.min.js http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js ...

# Archivos de la aplicación icons/*

NETWORK:# Archivos que no se deben cachear

<html manifest="offline.appcache">

...

</html>

Page 48: Construyendo y publicando nuestra primera app multiplataforma

Conclusión

Buena solución...

... pero no definitiva.

Page 49: Construyendo y publicando nuestra primera app multiplataforma

www.interlat.co  –  [email protected]  -­‐    h2p://www.facebook.com/interlat  -­‐  www.twi2er.com/interlat  -­‐  PBX:  57(1)  658  2959    -­‐  Bogotá  -­‐  Colombia  Aula  Virtual:  h2p://www.interlat.co/moodle/

Gracias!

Carlos Alonso Pérez  Senior Developer - Unkasoft [email protected] Twitter: @calonso https://www.linkedin.com/in/mrcalonso