1. WebMatrix y JQueryMobile Gonzalo “Chalalo” Pérez Correa Microsoft MVP ASP/ASP.NET www.chalalo.cl @chalalo
2. Agenda ¿Porquecon WebMatrix? Introduccion a jQueryMobile Anatomía de unapágina Elementosvisuales Elementos de gráficos de navegación Elementos de formulario Listas 2.0 Tips Utiles PhoneGap Microsoft Confidential 2
3. ¿Por qué utilizar WebMatrix? Gratis y centrado en el código Template compatible HTML5 Generación limpia de código Fácil inclusión de frameworsJavascript Sintaxis Razor simplificada Creación de Helpers Manejo simplificado de base de datos(Sql CE 4.0) Descargalo en http://www.asp.net/webmatrix ASP.NET MVC 4.0 RoadMap indica que tendrá un template de JQueryMobile, a aprender! Microsoft Confidential 3
6. Mobile Web Framework Microsoft Confidential 6 El objetivo es proporcionar herramientas para crear interfaces dinámicas que nos permitan utilizar dispositivos touch. JM ofrece dos tipos de layouts(listas, paneles y overlays) y un conjunto de controles de formulario & UI Widgets(tlggles,slides,tabs) .
22. DEMO Anatomía de una Página Múltiples Vistas Microsoft Confidential 12
23. Características de las Páginas Transiciones: data-transition="pop“ Animaciones disponibles para las transiciones de una pagina o vista: Slide,SlideUp,SlideDown,pop,face,flip(*) Flip no funciona bien en dispositivos Android ya que carece de capacidades 3D CSS Transform Dialogs Cualquier página se puede presentar como una ventana modal, agregando data-rel="dialog“ el cual puede ir en combinación con data-transition, se recomienda las transiciones pop,slidedown y flip Microsoft Confidential 13
24. Características de las Páginas Ajax: Los vínculos a paginas en el mismo dominio se transforman automáticamente en peticiones Ajax y se muestran con una transición. Enlaces que apuntan a otros dominios o que tienen los atributos target, rel="external" , data-ajax="false“ se hará una actualización completa de la página Microsoft Confidential 14
26. Elementos Gráficos -Barras Elemento “themeables” generalmente utilizados como comandos de navegación en appsmóbiles: Barra de titulo: Barra de pie de página Widget de barra de navegación Microsoft Confidential 16
28. ElementosGráficos - Botones El framework de JM, mediante data-role=“button” agregaautomaticamentelos estilosnecesariosparaconseguirque los links tenga la gráfica de un botón Microsoft Confidential 18 <a href="index.html" data-role="button">Link button</a> Los botones de formulario, como typesubmit, reset, button o imagen se convierten a un estilo como del de enlace, y el original se oculta, sin embargo, cuando se activa con un click, se ejecuta el evento del boton original
29. Elementos gráficos - Botones data-inline="true" para establer botones en linea, por defecto, in-block Posibilidad de establer un icono predefinido o personalizado, y su posición dentro del botón: <a href="index.html" data-role="button" data-icon="delete" data-iconpos="right" >Borrar</a> Microsoft Confidential 19 <a href="index.html" data-role="button" data-icon="delete" data-iconpos="notext">Borrar</a>
32. Elementos de formulario Por defecto JM automáticamente redenriza los controles de formulario a controles optimizados para dispositivos touch. Una vez inicializados, se pueden abordar mediante programación mediante la jQueryUI widgetAPI. Desactivar Ajax (data-ajax="false“ en form) Existe la posibilidad de evitar el render, con data-role="none“ o programáticamente: Microsoft Confidential 22 $(document).bind('mobileinit',function(){ $.mobile.page.prototype.options.keepNative = "select, input.foo”;});
33. Elementos de Formulario 1/5 Text Inputs Microsoft Confidential 23 <div data-role="fieldcontain"> <label for="name">Text Input:</label> <input type="text" name="name" id="name" value="" /> </div> Search Inputs <div data-role="fieldcontain"> <label for="search">Search Input:</label> <input type="search" name="password" id="search" value="" /> </d
40. La personalización tiene costo de rendimiento!Microsoft Confidential 27 <div data-role="fieldcontain"> <label for="sc1" class="select">Choose shipping method:</label> <select name=“sc1" id="select-choice-1"> <option value="standard">Standard: 7 day</option> <option value="rush">Rush: 3 days</option> <option value="express">Express: next day</option> <option value="overnight">Overnight</option> </select> </div>
41. Elementos de Formulario 6/6 Selects Para Select personalizados utilizar data-native-menu=“false”o: Si la lista de valores de demasiado grande ,JM automáticamente genera una nueva “pagina”. Selección múltiple solo para personalizados con atributo multiple Inclusión de Placeholders Microsoft Confidential 28 $(document).bind('mobileinit',function(){ $.mobile.selectmenu.prototype.options.nativeMenu = false; });
43. Listview – UL 2.0 Microsoft Confidential 30 Utilización de Listas <ul> vinculadas a un atributo data-role=“lisview” JQ Aplicará los estilos necesarios para transformar la lista en una lista móvil amigable, con el indicador de flecha a la derecha, ocupando todo el ancho de la ventana del navegador Al hacer click sobre un elemento se hará una petición ajax para la url , se crea la nueva pagina en el DOM y se realiza la transación.
44. Posibilidad de incluir separadores, imágenes, contadores, searchfilters y más! Microsoft Confidential 31 Listview – UL 2.0
45. TipsUtilesjQueryMobile Evento mobileinit $(document).bind( "mobileinit", function () { $.mobile.ajaxLinksEnabled = false; $.mobile.loadingMessage = 'Cargando...'; $.mobile.page.prototype.options.backBtnText = "Atras"; }); Botón Atrás Texto Cargando Desactivar Ajax Debe ser ubicado entre la inclusión de la librería jquery y jquerymobile. Microsoft Confidential 32
47. Microsoft Confidential 34 PhoneGap ¿Qué es Phonegap? Es una plataforma abierta, basada en HTML5 y JavaScript, Permite desarrollar aplicaciones para móviles que compilará las aplicaciones creadas con su entorno para sistemas operativos Móviles : Apple iOS, Google Android, BlackberryOS, WebOS, Windows Phone 7(*) y Symbian. La idea es solo un desarrollo, múltiples plataformas Se prepara este 21 de julio para la version 1.0
48. PhoneGapBuild Evitar instalar múltiples SDK en la maquina local. No es necesario agregar el manifiesto Escribir la app una sola vez Compilar en la nube Correr en todos lados!!!! Microsoft Confidential 35
51. Links ( si o si) http://www.asp.net/webmatrix http://www.jquerymobile.com/ http://www.phonegap.com/ Si te queda tiempo: www.chalalo.cl Microsoft Confidential 38