Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez [email protected] Universidad de Deusto Universidad de Deusto . . . . . . . . . Contenidos • Particularidades del desarrollo para dispositivos móviles • Tipos de aplicaciones y servicios, y su problemática. • .NET Mobile Internet Toolkit • .NET CF para PocketPC y Smartphone • Conclusiones Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 1 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . Desarrollo para dispositivos móviles (I) • ¿Qué diferencia un dispositivo móvil de otras plataformas? • Se entiende por dispositivo móvil aquel “que disfruta de autonomía de movimiento y está libre de cableado”. • Es autónomo en cierta medida: – Dispone de una batería – La batería necesita recargarse, periódicamente anulando la movilidad. Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . Desarrollo para dispositivos móviles (II) • La batería y la miniaturización obligan a que la potencia esté limitada: – Procesador más simple – Menor cantidad de memoria – Componentes más pequeños, pero posiblemente menos capaces • Como consecuencia las aplicaciones móviles serán menos potentes “a priori”. • Una forma de evitar esta limitación es dotando al dispositivo de capacidades de comunicación. Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 2 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . Desarrollo para dispositivos móviles (III) • Ello permitiría: – Depositar mayor cantidad de lógica de proceso en servidores centrales muy potentes – Gestión de información centralizada • Inconvenientes: – Encarecimiento del dispositivo – Mayor consumo de energía • Si movemos toda la lógica hacia servidores centrales y dejamos sólo interfaz en el dispositivo ? Web ? Web móvil ? Internet móvil Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . Desarrollo para dispositivos móviles (IV) • Repartamos la lógica de proceso de una manera u otra, la interfaz siempre estará en el lado del usuario: en el dispositivo móvil. • ¿De qué capacidades de interacción disponemos en un terminal pequeño? – Una pantalla reducida, quizá monocromo – Un mecanismo de entrada de datos complicado: • Teclado numérico de teléfono • Reconocimiento de escritura / teclado virtual • Reconocimiento de voz (aún no muy desarrollado y no adecuado para muchas tareas) Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 3 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . Desarrollo para dispositivos móviles (V) • Conclusiones preliminares: – La interfaz a diseñar debe ser relativamente simple sin solicitar entrada masiva de datos. – Se deberá estudiar cuidadosamente el diseño de la misma. – Existen recomendaciones y guías de estilo al respecto • Entonces, ¿qué ventaja tienen los dispositivos móviles? – Son móviles ? portables – Acceso a información y servicios “dónde estés y a la hora que estés”(efecto Martini), potenciado por capacidades de comunicación Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . Tipos de dispositivos móviles (I) • Básicamente existen dos tipos de terminales móviles o plataformas de computación portables: –Teléfonos móviles –PDAs (PocketPC, Palm) • Hay otras como ordenadores portátiles, TabletPCs, etc.. pero no se guardan en el bolsillo. Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 4 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . Tipos de dispositivos móviles (II) • Teléfonos móviles – Pros: • Muy extendidos • Ligeros y transportables • Económicos • Capacidades de comunicación innatas – Contras: • Poca potencia de proceso • Poca memoria • Capacidades de visualización limitada • Interacción avanzada difícil Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . Tipos de dispositivos móviles (III) • PDAs (Personal Digital Assistant), ordenadores de bolsillo (PocketPC, Palm, ...) – Pros: • Visualización mejorada (pantallas más grandes y a color) • Interacción avanzada (pantalla táctil, comandos de voz,..) • Mayor capacidad de computación que un teléfono móvil – Contras: • Necesita accesorio para comunicaciones • Mayor precio que un teléfono móvil Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 5 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . Tipos de dispositivos móviles (IV) • ¿Qué pasa si diseñamos un híbrido entre PDA y teléfono móvil? • ¿De qué mundo vienes? – Del de PDAs ? PDA + módulo de comunicación integrado (HP Compaq, Toshiba) – De la telefonía móvil ? teléfono móvil con mayor capacidad de computación e interacción (Nokia, Sony-Ericsson) • Plataformas de Microsoft: – PocketPC Phone Edition – SmartPhone Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . Tipos de dispositivos móviles (V) • Otras formas de tener capacidad de comunicación en un PocketPC: – Cable conectado a un teléfono móvil – IR – Bluetooth – WLAN (Wi-Fi, 802.11b) • Otras tecnologías complementarias: – Localización • DEMO: terminales móviles en acción Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 6 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . Problemática • Básicamente existen dos tipos de aplicaciones para dispositivos móviles: –Aplicaciones web: accesibles a través de un navegador, con la lógica de procesamiento en un servidor web –Aplicaciones autónomas (standalone): con la lógica residiendo en la propia aplicación instalada en el terminal móvil Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . Problemática Aplicaciones Web (I) • En sobremesa hay dominancia de un navegador, estándar de facto: IE • En los terminales móviles hay múltiples plataformas, navegadores y lenguajes de presentación (WML, cHTML, HTML): – Pocket IE – Sony-Ericsson – Nokia – Openwave – ... Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 7 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . Problemática Aplicaciones Web (II) • En sobremesa se ha estandarizado un tamaño de pantalla • Cada terminal móvil tiene diferente tamaño de pantalla, capacidades y forma de interacción • Debido a estos factores el desarrollo de aplicaciones para Internet móvil es tedioso: – Diferentes versiones de la sede web para cada lenguaje de presentación – Diferentes versiones de la sede web para cada dispositivo específico según sus capacidades Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . Problemática Aplicaciones Web (III) • El trabajo de los diseñadores y desarrolladores se multiplica por n=nº de versiones diferentes de la sede web • El proceso de mantenimiento es costoso y fomenta errores e incoherencias • ¿Cómo hacer que una sede web se visualice en sobremesa y en dispositivo móvil? • ¿Cómo hacer servicios de Internet móvil que se visualicen correctamente y de forma optima en todos los dispositivos? Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 8 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . .NET MIT (I) • Eso es lo que nos permite el .NET Mobile Internet Toolkit (MIT) • Consta de dos módulos: – Mobile Internet Designer: diseñador que se acopla al VS.NET y permite diseñar las páginas web móviles de manera independiente del dispositivo de acceso, como si de un “formato neutro”de tratase – Mobile Internet Controls Runtime: módulo que se acopla al IIS y que trasforma las páginas diseñadas en el “formato neutro”a uno específico y optimizado para el dispositivo que realizó la petición Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . .NET MIT (II) WML/HTTP HTTP + Cabeceras IIS Plataforma .NET Mobile Internet Controls Runtime Capacidades de dispositivos Iñaki Vázquez .NET Day 2002 HolaMundo.aspx Técnicas de desarrollo para dispositivos móviles con .NET 9 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . .NET MIT (III) HTML/HTTP HTTP + Cabeceras IIS Plataforma .NET Mobile Internet Controls Runtime HolaMundo.aspx Capacidades de dispositivos Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . .NET MIT (IV) • Ejemplo de petición HTTP: GET GET // HTTP/1.1 HTTP/1.1 Host: Host: wap.deusto.es wap.deusto.es accept-charset: accept-charset: US-ASCII, US-ASCII, ISO-8859-1, ISO-8859-1, UTF-16 UTF-16 Accept: Accept: application/vnd.wap.wmlscriptc, application/vnd.wap.wmlscriptc, application/vnd.wap.wbxml, application/vnd.wap.wbxml, application/vnd.wap.wmlc, application/vnd.wap.wmlc, image/vnd.wap.wbmp, image/vnd.wap.wbmp, image/jpeg, image/jpeg, image/gif, image/gif, text/vnd.wap.wmlscript, text/vnd.wap.wmlscript, text/html, text/html, text/plain, text/plain, text/vnd.wap.wml text/vnd.wap.wml user-agent: user-agent: Nokia-MIT-Browser/3.0 Nokia-MIT-Browser/3.0 accept-language: accept-language: en en Via: Via: Nokia Nokia Activ Activ Server Server 2.0 2.0 Professional Professional (build (build 2451A) 2451A) X-Network-Info: X-Network-Info: UDP,127.0.0.1,security=0 UDP,127.0.0.1,security=0 Connection: Connection: Close Close Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 10 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . .NET MIT (V) • Extracto de página web móvil (Mobile Web Form): <mobile:Form <mobile:Formrunat="server"> runat="server"> <mobile:Label <mobile:Labelrunat=“ runat=“server"> server"> Hola, mundo Hola, mundomóvil móvil </mobile:Label> </mobile:Label> </mobile:Form> </mobile:Form> Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . .NET MIT (VI) • Extracto de capacidades (machine.config): [...] [...] <case <case match="Sony match="Sony CMD-Z5" CMD-Z5" with="${deviceID}"> with="${deviceID}"> mobileDeviceManufacturer mobileDeviceManufacturer == "Sony" "Sony" mobileDeviceModel mobileDeviceModel == "CMD-Z5" "CMD-Z5" screenPixelsWidth screenPixelsWidth == "96" "96" screenPixelsHeight screenPixelsHeight == "60" "60" screenCharactersWidth screenCharactersWidth == "20" "20" screenCharactersHeight screenCharactersHeight == "4" "4" screenBitDepth screenBitDepth == "2" "2" requiresOutputOptimization requiresOutputOptimization == "true" "true" </case> </case> [...] [...] Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 11 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . .NET MIT (VII) • El .NET MIT identifica el dispositivo móvil y genera la presentación optimizada, según: – Lenguaje de presentación – Tipo y dimensiones de la pantalla – Otras capacidades del dispositivo (frames, imágenes) • Proceso: – El dispositivo móvil genera la petición HTTP, que llega al servidor – Éste determina el adaptador adecuado para el control según el lenguaje (WML, HTML cHTML, ...) – El adaptador obtiene las capacidades del dispositivo, y genera la salida más optimizada... – ...que llega al terminal móvil en la respuesta HTTP Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . .NET MIT (VIII) • ¿Es bueno tanto automatismo? • ¿Se puede mantener algo de control? • .NET MIT permite cierto grado de personalización mediante diversos mecanismos: – Filtros de dispositivos, que permiten definir el contenido a generar cuando el dispositivo solicitante dispone de una característica concreta – Controles de usuario: permite crear controles móviles reutilizables, por ejemplo una barra de menú. Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 12 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . .NET MIT (IX) • Combinando estos dos mecanismos un desarrollador puede crear sus propios controles que generan una determinada salida según el tipo de terminal. Por ejemplo, una barra de menú optimizada según dispositivo. • DEMO: MIT en acción Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . .NET MIT (X) Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 13 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . .NET CF (I) • Aplicaciones autónomas: –Desarrollar una aplicación capaz de ejecutarse en dispositivos con tipos de procesador diferentes. –Necesidad de una plataforma común. • La plataforma .NET es demasiado pesada... • ...pero si creamos una versión reducida... • .NET Compact Framework (.NET CF) Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . .NET CF (II) • Versiones: – .NET CF para PocketPC (Windows CE.NET) – .NET CF para SmartPhone (bajo desarrollo) – Otros dispositivos (WebPad, Cámaras, ..) Iñaki Vázquez .NET Day 2002 .NET Sobremesa .NET PocketPC .NET SmartPhone Técnicas de desarrollo para dispositivos móviles con .NET 14 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . .NET CF (III) • Consideraciones respecto a la versión de sobremesa: – No todas las librerías están incluidas – No todas las clases de una librería están incluidas – No todos los métodos de una clase están incluidos, y el comportamiento de los que están puede variar • Es necesario experimentar y la reutilización de librerías de clases es posible, pero de manera limitada Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . .NET CF (IV) • ¿Qué permite .NET CF? – – – – – – – Diseño de interfaz gráfica basada en ventanas Acceso al sistema de ficheros Acceso a BD locales y remotas Comunicación por red Acceso a Web Services y soporte limitado para proceso XML Uso de librerías nativas del dispositivo Misma seguridad, eficiencia y robustez que .NET Framework • La versión SmartPhone está más limitada gráficamente y con menores capacidades de proceso XML Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 15 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . .NET CF (V) Button CheckBox ComboBox HScrollBar ListBox RadioButton TextBox TrackBar Label VScrollBar ColorDialog ContextMenu DataGrid DateTimePicker ErrorProvider FontDialog GroupBox HelpProvider LinkLabel ListView MainMenu MonthCalendar NumericUpDown OpenFileDialog Panel PictureBox SaveFileDialog StatusBar TabControl Timer ToolTip TreeView DomainUpDown ImageList NotifyIcon ProgressBar ToolBar CheckedListBox PageSetupDialog PrintPreviewDialog Splitter MdiClient PocketPC Sobremesa RichTextBox Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . Smart Phone . .NET CF (VI) • Posibles aplicaciones con .NET CF: –Juegos –Sistemas de gestión con envío o consulta periódica de datos contra servidores centrales: agentes comerciales, encuestas y recogida de datos, toma de pedidos –Control y visualización remota de cámaras y televigilancia: telemetría y telecontrol –Integración con sistemas de localización Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 16 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . .NET CF (VII) • A tener en cuenta: –Estas aplicaciones sí se van a ejecutar en el dispositivo móvil, consumen su memoria y procesador –Debemos ser más cuidadosos que nunca con la gestión de estos recursos muy limitados –Por lo tanto las aplicaciones deben ser ligeras Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . SmartPhone • La versión de .NET CF está bajo desarrollo. • Arquitectura: Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 17 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . Conclusiones (I) • Necesidades de comunicación: –Aplicaciones web móvil: constante –Aplicaciones autónomas: •Ninguna: solitario, programa de cálculo •Periódica: recogida y consulta de datos •Constante: juego distribuido, chat, mensajería instantánea Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . . Conclusiones (II) • Uso de Web Services: –Aplicaciones web móvil: desde el servidor, nunca desde el cliente –Aplicaciones autónomas: •Con comunicación periódica bajo demanda del usuario •Con comunicación constante (en menor medida, puesto que posiblemente hagan uso de un protocolo específico: IRC, Multimedia, ...) Iñaki Vázquez .NET Day 2002 Técnicas de desarrollo para dispositivos móviles con .NET 18 Universidad de Deusto Facultad de Ingeniería - ESIDE Universidad de Deusto . . . . . . . . . Conclusiones (III) • El .NET MIT hace viable la gestión de sedes web multidispositivio con todas la potencia adicional de la plataforma .NET, de una forma sencilla y pontente. • El .NET CF permite el desarrollo de aplicaciones avanzadas interactivas para dispositivos, con la posibilidad adicional de acceder a sistemas de información mediante Web Services. Técnicas de desarrollo para dispositivos móviles con .NET Iñaki Vázquez Universidad de Deusto . . . . . . . . Iñaki Vázquez .NET Day 2002 . Técnicas de desarrollo para dispositivos móviles con .NET 19