Download Investigación de Herramientas en Formato DOC
Document related concepts
no text concepts found
Transcript
NUBI INVESTIGACIÓN DE HERRAMIENTAS 2016 Carlos Felipe Peña Gómez Diego Felipe Ramírez Salamanca Ventajas -Experiencia Desventajas con proyectos previos por parte del equipo de - Muchas versiones del sistema trabajo. operativo y dispositivos que no se actualizan puede reducir el - Acceso sin restricciones al rango de terminales que pueden Desarrollo nativo para hardware del dispositivo. Android -Amplia hacer uso de la aplicación. documentación y -Integración con servidores soporte. compleja. - Control de versiones. -Ligado a solo un tipo de S.O -Amplio dominio de lenguajes -Diseño de interfaz requiere utilizados (JAVA). mayor esfuerzo y tiempo. - Acceso sin restricciones al hardware del dispositivo. Desarrollo nativo para iOS -Ambiente de desarrollo intuitivo. con del equipo de trabajo. -Necesita equipos IOS y PC MAC. -Población -Desarrollo ágil, -Lenguaje - Sin experiencia previa por parte curva de aprendizaje rápida. reducida con respecto a usuarios Android. -Integración Compleja con servidores. - Experiencia con proyectos previos por parte del equipo de trabajo. Desarrollo híbrido en - Uso de un mismo código para Ionic diferentes dispositivos, por lo que la aplicación puede funcionar tanto en iOS como en Android. - Diseño e implementación en menor tiempo. - Acceso restringido al hardware del dispositivo. - Falta de experiencia con Angular GS. - Integración de sensores es compleja. - Falta de experiencia para integración con API externa. -Documentación, foros y comunidades con información y respuesta a problemas. -Diferentes ambientes de desarrollo. - Experiencia con Java Script, síncrono y asíncrono, HTML, CSS y responsive Design. - Integración con Tecnologías JBoss y NodeJS. Tecnología a usar ● Cliente: Dado el uso de sensores para el correcto funcionamiento de la aplicación se consideraron 3 maneras para desarrollar aplicaciones móviles, estas son: desarrollo nativo para Android, desarrollo nativo para iOS, y desarrollo híbrido para dispositivos con sistema operativo Android, Windows Phone y iOS, realizado con Phonegap. Para la elección se consideraron diferentes aspectos, como el acceso al hardware de la herramienta, el porcentaje de cada uno de los sistemas operativos en el mercado y la experiencia previa del equipo de trabajo en las plataformas previamente mencionadas. La siguiente gráfica muestra el porcentaje total de ventas de dispositivos móviles (teléfonos celulares y tablets), en donde se puede ver que el sistema operativo Android es quien lidera en el mercado de estos dispositivos. https://www.netmarketshare.com/operating-system-market-share.aspx?qprid=8&qpcustomd=1 A continuación, se analizará cada uno de las maneras de desarrollo en dispositivos móvil, detallando las ventajas y desventajas en el uso de cada herramienta Ventajas Desarrollo nativo para Android Desventajas - Experiencia con proyectos - Muchas versiones del sistema previos por parte del equipo de operativo y dispositivos que no trabajo se actualizan puede reducir el rango de terminales que pueden hacer uso de la aplicación - Acceso sin restricciones al hardware del dispositivo Desarrollo nativo para iOS - Acceso sin restricciones al - Sin experiencia previa por hardware del dispositivo parte del equipo de trabajo Desarrollo híbrido en Phonegap - Experiencia con proyectos - Acceso restringido al hardware previos por parte del equipo de del dispositivo. trabajo - El usuario debe esperar más - Uso de un mismo código para por una respuesta de la diferentes dispositivos aplicación en comparación con desarrollos nativos Sensores De acuerdo a la investigación y posibles mecanismos que permitan mejorar la precisión de NUBI el equipo de trabajo consideró los siguientes sensores, ya que se encuentran en casi todos los dispositivos móviles actuales: ● GLONASS A-GPS: Sensor que permite la captura de la posición del dispositivo mediante localización geodésica, su principal función en NUBI radica en el apoyo a rutas y distancia entre puntos. Servidor La selección de herramientas de desarrollo para la parte servidor de NUBI se realizó con base en los aspectos: 1. Tecnologías conocidas por el equipo de trabajo. 2. Curva de aprendizaje 3. Viabilidad de adaptación y mantenimiento. Para el ambiente de ejecución del servidor se optó por revisar 3 tecnologías que permitirán cumplir con las características anteriores y que permitan desarrollo por componentes, flexibilidad y usadas en la industria. La siguiente tabla muestra las características de cada tecnología candidata Aspecto a Evaluar Node.js Java EE Capacidad de integración Permite componentes externos dependencias del kernel integrar API’s Jboss de Java y sistemas externos mediante WSDL npm y sistemas externos API’s de Java y conexión a sistemas Externos por WSDL y REST con XML y JSON Lenguaje Nativo JavaScript Angular Java Java Ambiente de ejecución Node js Glasfish Jboss Wildfly Jboss Glassfish Estilos Arquitecturales MVC y REST Cualquiera Cualquiera - REST Documentación Comunidades Oracle, Stackschange, API RedHAt, Stackschange Uso en la industria Curva de Aprendizaje Comunidades + Moderada Conocimiento por parte wildFly +++ Moderada +++ Rápida + ++ ++ Bajo Medio Alto del equipo de trabajo Desempeño en grandes sistemas Referencias https://www.techempower.com/benchmarks/ https://www.linkedin.com/pulse/nodejs-vs-java-which-faster-apis-owen-rubel https://benchmarksgame.alioth.debian.org/u64q/javascript.html http://www.oracle.com/technetwork/java/javaee/overview/index.html https://docs.oracle.com/javaee/7/tutorial/ https://nodejs.org/es/docs/ http://stackoverflow.com/tags/node.js/info