180 likes | 257 Views
Manuel Rodríguez Rodríguez. Mobile Solutions Architect 29 de Octubre de 2013. Introducción a MobileFirst. Document number. Introducción. Distintos sistemas operativos Componentes Hardware dispares Desarrollo nativo vs híbrido vs web “time to market” muy agresivo
E N D
Manuel Rodríguez Rodríguez. Mobile Solutions Architect 29 de Octubre de 2013 Introducción a MobileFirst Document number
Introducción • Distintos sistemas operativos • Componentes Hardware dispares • Desarrollo nativo vs híbrido vs web • “time to market” muy agresivo • Rápida evolución de la tecnología • Incertidumbre tecnológica La realidad de un mercado heterogéneo
IntroducciónRetos del desarrollo • El ciclo de vida del desarrollo de aplicaciones móviles difiere del desarrollo de aplicaciones tradicionales: • Son APLICACIONES (no solo web) • Aprovisionamiento / gestión de versiones • Mayor tiempo de testing que en desarrollos (web) tradicionales. • Hemos olvidado como era el desarrollo de aplicaciones • Tiempos de respuesta en dispositivos • Footprint de la aplicación • Depuración en remoto de aplicaciones • Distintos focos dependiendo si son aplicaciones B2E o B2C • Seguridad vs Usabilidad • La experiencia de usuario es vital. • El dispositivo ¡si importa! • Teclados, pantallas, GPS, Cámara, orientación, etc. No tener en cuenta la singularidad del desarrollo de aplicaciones móviles puede penaliza la experiencia de usuario
IntroducciónRetos del desarrollo Testing mucho más complejo y elaborado • El testing de “laboratorio” es limitado (emuladores, simuladores) • Se necesitan dispositivos físicos para un testing adecuado • Instrumentalización de aplicaciones para simplificar el testing • Componentes Hardware difícil de probar • GPS, Giroscopio, “look and feel” de pantalla, NFC, etc. • Miedo a lo desconocido. • Cómo están usando / funcionando las aplicaciones en nuestros clientes (errores, limitaciones, opciones no usadas, etc.) • Cómo están atacando a nuestras aplicaciones (“decompiling”, Malware, virus, etc.) Unos planes de prueba no acordes a las necesidades de las aplicaciones móviles hacen que el éxito de las aplicaciones estén mermados debido a una usabilidad limitada.
Desarrollo eficiente de aplicacionesEl ciclo de vida de desarrollo de aplicaciones móviles Diseño y desarrollo Complementación / Intrumentalización Obtener Información Integración Gestión y configuración Test Puesta en producción Certificación y validaciones De seguridad
Desarrollo eficiente de aplicacionesDiseño Necesidad de reducir costes y “time to market” • Entornos de desarrollo conocidos (eclipse) • Paradigmas de desarrollo web e híbridos • HTML5, JavaScript, CSS • Necesidad de minimizar el desarrollo nativo de aplicaciones • Frameworks de desarrollo reutilizable • Integración con herramientas del ciclo de vida del desarrollo existente en la compañía (Control de versiones, testing funcional, etc.) • REUTILIZACIÓN de componentes y servicios compartidos para los distintos agentes involucrados en el desarrollo • Worklight como plataforma de desarrollo y ejecución • Soporte multidispositivo desde el origen. La adopción de desarrollos híbridos permiten tener una reducción de costes al estandarizar el desarrollo multidispositivo así como un “time to market” mucho más limitado.
Desarrollo eficiente de aplicacionesComplementación / Instrumentalización • Necesidad de añadir componentes tecnológicos a nuestras soluciones para habilitar nuevas capacidades • Testing • Transformación de nuestras aplicaciones para poder simplificar y automatizar las pruebas • Integración con herramientas corporativas de testing (Rational Test Workbench) • Analítica • Habilitar nuestros desarrollos para una recogida de datos automática de información en entornos productivos • Filtrado y depuración de datos para una interpretación más ágil en la corporación La instrumentalización nos permite añadir capacidades necesarias para una mayor calidad de nuestro software así como nos abre una ventana a ver el uso de las aplicaciones con los ojos de nuestros clientes
Desarrollo eficiente de aplicaciones¿Por que las pruebas de aplicaciones móviles son distintas? • Plataformas de dispositivos, fragmentación y crecimiento • iOS, Android, BlackBerry, Windows Phone, etc. • Resoluciones de pantallas • Refresco de la base instalada cada 24 meses • Solo en 2011, hubo 300 nuevos dispositivos • Nuevas capacidades para probar • Cámara, GPS, orientación, voz, etc. • Más consideraciones de red • Múltiples operadores, ancho de banda variable, latencia, uso en formato desconectado, etc. • La experiencia de usuario es más importante • Pruebas de usabilidad • Pruebas de translación / rotación • Pruebas de red (Tiempo de respuesta medio, Calidad de servicio, etc.)
Desarrollo eficiente de aplicacionesTest Automatización de los tests funcionalesSoporte nativo, web y aplicaciones híbridas • Sistemas operativos soportados • Android 2.2+ • IOS 6+ • Android e iOS (aplicaciones híbridas) • HTML5/CSS3 • JQuery Mobile • Captura (grabación) de un test de un dispositivo físico o emulador • El lenguage de definición de test estructurados (ClearScript) simplifica la autoría y soporta multilenguaje • Comparte multicanalidad y las capacidades de ejecución dentro de Rational Test Workbench & Rational Quality Manager • Existe una transición directa entre Worklight y Rational Test Workbench La automatización de las pruebas simplifica los costes asociados a las pruebas, así como acelera la calidad del software desarrollado.
Las aplicaciones móviles, en el punto de mira de los hackers: Los dispositivos móviles son muy atractivos para los hackers ya pueden conseguir a la vez datos personales y corporativos. 2x Source: Arxan State of Security in the App Economy – 2012
Desarrollo eficiente de aplicacionesServicios Compartidos Dentro del mundo de la seguridad existen dos tipos de pruebas • Caja Negra: En este tipo de pruebas, se desconoce el funcionamiento interno del software y se intenta ver su respuesta ante ataques conocidos (SQL injection, cross scripting, etc.) • Caja Blanca: conocemos el código fuente, y verificamos cuales son los puntos críticos del desarrollo. • Más relacionado con el mundo de las aplicaciones • Específico para cada sistema operativo (Android, iOS, etc.) • Automatización en el ciclo de desarrollo • No solo verificamos riesgos en el código, sino riesgos en el “filtrado” de información a terceros Tener desde el comienzo el plan de seguridad en nuestro desarrollo ayuda a que el software desarrollado minimice los riesgos de tener errores que puedan ser explotados por terceros para acceder a datos sensibles tanto del usuario como de nuestra empresa.
Desarrollo eficiente de aplicacionesPuesta en producción Una vez que nuestra aplicación está desarrollada, hay que ponerla en producción: • Business to Consumer • AppStore / Market / etc: Públicos con ciclos de aprobación por cada uno de los proveedores de sistemas operativos • Business to Employee • Necesidad de un Aplication Center interno para cada Sistema operativo (dependiendo de la estrategia de la compañía BYOD, etc.) • Integración con ciclo de vida de las aplicaciones • Aprovisionamiento automático en los dispositivos • Perfilado de aplicaciones en el dispositivo
Esfuerzo Global Desarrollo eficiente de aplicacionesServicios Compartidos ~30% ~70% Cuanto más servicios compartidos tenga nuestra infraestructura, más rápido será el desarrollo de nuevas aplicaciones y antes tendremos nuevas capacidades en nuestras aplicaciones
Servicios compartidos • Con la creciente proliferación de aplicaciones se ve necesario una plataforma de servicios compartidos: • Abstracción de las distintas plataformas de notificaciones (push) • Geo – fencing • Seguridad (validación de usuarios y de aplicaciones) • Punto único de acceso a la infraestructura • Integración centralizada (ESB, Adaptadores específicos, etc.) • Replicación de datos • Estadísticas de uso • Analítica de las aplicaciones • Actualizaciones directas de aplicaciones • … Cuanto más servicios compartidos tenga nuestra infraestructura, más rápido será el desarrollo de nuevas aplicaciones y antes tendremos nuevas capacidades en nuestras aplicaciones
Analítica móvil Cuantitativa Analítica(“Qué, Dónde, y Cómo”) Analítica cualitativa(“¿Por qué?”) IBM Coremetrics Digital Analytics proporciona un análisis cuantitativo capturando datos de las interacciones de los usuarios y generando interfaces de uso mostrando: • Datos en tiempo real de ventas • Flujos de tráfico en la web • Benchmarks de conversión Tealeaf provee análisis cualitativo capturando, repitiendo y analizando los datos de interación de usuarios individuales mostrando: • Todas las interacciones del interfaz de usuario • Mensajes de error • Uso de la aplicación 15
Analítica Cualitativa • Detectar problemas en los clientes al acceder a datos • Aislar por versión de aplicación, por error, por entrada • Cuantificar el impacto en número de usuarios • Analizar el comportamiento de los usuarios – secuencia de eventos, logs, llamadas a servidor • Búsqueda para encontrar otros usuarios afectados • Comportamiento de usuario • Pantallas vistas • Campos de texto, valores • Clicks, movimiento • Aplicación ejecutada, modo background • … • Entorno • Versión de aplicación, SSOO, Modelo • Orientación del dispositivo, IP, Memoria • Conectividad • GPS, operador móvil • … • Salud de la aplicación • Excepciones, Fallos de aplicación • Errores en las conexiones a servidor • …
El mapa de soluciones de IBM 12 adquisiciones para mejorar nuestra posición desde 2006 Más de 125 patentes sobre invenciones de wireless 3n 2012 de un total de 270 Inversión creciente en 2013 Más de 200 aplicaciones disponibles en los App Stores con más de 1M de descargas Citado como lider en diseño de aplicaciones y servicios gestionado por Forrester y Gartner