Tesis Memoria
Transcripción
Tesis Memoria
INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA METODOLOGÍA DE DESARROLLO APLICACIONES MÓVILES MEMORIA DE EXPERIENCIA PROFESIONAL QUE PARA OBTENER EL TÍTULO DE INGENIERO EN COMUNICACIONES Y ELECTRÓNICA PRESENTA MIGUEL DANIEL RAMOS MARTÍNEZ. ASESOR: ING.CATALINA PATIÑO GALLEGOS. MEXICO, DF NOVIEMBRE 2013 Metodología De Desarrollo Aplicaciones Móviles ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 2 Metodología De Desarrollo Aplicaciones Móviles INDICE GENERAL INDICE GENERAL ................................................................................................................................... 3 INDICE FIGURAS ..................................................................................................................................... 4 OBJETIVO .................................................................................................................................................. 5 JUSTIFICACIÓN ....................................................................................................................................... 6 CAPÍTULO I – INTRODUCCION ......................................................................................................... 7 CAPITULO II - METODOLOGIA PARA DESARROLLO MÓVIL .............................................. 8 MAPA MENTAL .............................................................................................................................................................. 9 MODELADO DE NEGOCIO ...................................................................................................................................... 10 ANÁLISIS Y DISEÑO .................................................................................................................................................. 11 Bocetos .............................................................................................................................................................. 12 Wireframing/Mockup .................................................................................................................................. 13 Prototipado ....................................................................................................................................................... 14 Proceso .............................................................................................................................................................. 14 ANÁLISIS TIEMPO DESARROLLO Y COSTOS ................................................................................. 15 Delimitación del Alcance ........................................................................................................................... 17 Complejidad Tiempo y Costo .................................................................................................................. 19 Plan de trabajo ............................................................................................................................................... 19 INICIANDO EL PROYECTO ..................................................................................................................................... 21 Contexto ............................................................................................................................................................. 22 IMPLEMENTACIÓN ................................................................................................................................................... 23 FRONT END ....................................................................................................................................................... 23 BACK END .......................................................................................................................................................... 25 MIDDLEWARE ................................................................................................................................................. 25 TECNOLOGIAS ................................................................................................................................................. 26 BASES DE DATOS ........................................................................................................................................... 27 PUBLICACIÓN .............................................................................................................................................................. 28 APPSTORE (iOS) ............................................................................................................................................. 28 GOOGLE PLAY STORE(Android) .............................................................................................................. 31 BLACKBERRY APP WORLD(BB10) ......................................................................................................... 33 MARKETPLACE DE WINDOWS PHONE(Windows 8) ..................................................................... 36 CONCLUSIONES .................................................................................................................................. 39 GLOSARIO .............................................................................................................................................. 40 BIBLIOGRAFÍA ...................................................................................................................................... 42 ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 3 Metodología De Desarrollo Aplicaciones Móviles INDICE FIGURAS Figure 1 Diagrama de Actividades ........................................................................................................ 8 Figure 2 Flujo de proceso ......................................................................................................................... 9 Figure 3 Ejemplo de plantilla para bocetado ................................................................................ 12 Figure 4 Ejemplo aplicación de control de llamadas telefónicas usando Balsamiq Mockups .............................................................................................................................................. 13 Figure 5 Ejemplo de un prototipo ...................................................................................................... 14 Figure 6 Tabla de estimación de esfuerzo ...................................................................................... 18 Figure 7 Ejemplo de tablero en trello .............................................................................................. 23 Figure 8 Pantalla de inicio de TestFlight ........................................................................................ 24 Figure 9 Maque, herramienta que simula servicios y acelera su integración. ............... 25 Figure 10 Código de ejemplo de UIImageView ............................................................................ 30 Figure 11 Correo de bienvenida a BlackBerry App World ..................................................... 34 Figure 12 Plataformas de desarrollo soportadas por BB ........................................................ 35 ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 4 Metodología De Desarrollo Aplicaciones Móviles OBJETIVO Crear una metodología que permita guiar el flujo de trabajo para desarrollo de aplicaciones móviles en cualquier plataforma o sistema operativo móvil: iOS, Android, BlackBerry 10, Windows Phone y desarrollo multiplataforma con Phonegap, MonoTouch o iFactr. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 5 Metodología De Desarrollo Aplicaciones Móviles JUSTIFICACIÓN Debido a que existe poco o nula información completa en español que nos permita conocer el proceso de creación de aplicaciones móviles. Lograr crear una sola aplicación que funcione en cada plataforma y configuración de pantallas es un reto. Este trabajo permitirá compartir la experiencia de varios años en el flujo de trabajo del mundo de los móviles, mostrar los trucos y atajos que he aprendido en esta jornada laboral. El desarrollo de aplicaciones móviles ha crecido en estos últimos 5 años con la aparición de los smartphones y las tablets, en este mundo de movilidad donde la gente esta o intenta estar siempre conectada, en un mundo de social media y de marketing digital y como en el proceso de verse sumergido, en este conjunto de patrones, procesos, y métodos para ir resolviendo las necesidades de este nuevo mercado de aplicaciones donde lo que se vende son experiencias más que aplicaciones por si mismas. Donde el tiempo de respuesta, el presupuesto, las habilidades técnicas de las empresas y de los ingenieros están siendo retadas a diario en un mundo global y digital donde el móvil es ya un elemento esencial en el día a día. Nuestro reto es lograr en la creación de aplicaciones móviles hacer eficiente: ● El uso de los recursos ● El presupuesto ● El trabajo en conjunto de creativos, ingenieros, el personal de marketing y/o ventas en ofrecer una solución de calidad. Diversas soluciones han salido al mercado de la mano de distintas empresas Apple, Google, Microsoft, Samsung o LG. Cada una con distintos sistemas operativos, diversas resoluciones y tamaño de pantalla, distintas prestaciones, experiencia de usuario, funcionalidad y nicho de mercado. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 6 Metodología De Desarrollo Aplicaciones Móviles CAPÍTULO I – INTRODUCCION Egresado desde el 2000, inicialmente especializado en el desarrollo e implantación de soluciones de redes con UNIX, Novell, Windows NT y Linux. Configuración de servidores desde instalación del sistema operativo hasta la puesta en marcha con clientes en red, configuración de servicios de DHCP, DNS, Firewall, correo y proxy de internet. La configuración de servidores de aplicaciones se hizo simple, rutinaria y comencé a interesarme en las aplicaciones en el server, de cómo crearlas. Ahí inició el aprendizaje de tecnologías como Java, vinieron también .NET, algo de Access, SQL, MSSQL y el inicio de creación aplicaciones comerciales comenzó. Sistema de control de básculas electrónicas y adquisición de datos por puerto RS232, administración de aplicaciones .NET. Instructor de estas tecnologías en la Dirección de Informática del IPN, combinado con la actividad de FreeLancer que permitió sumergirme en temas avanzados de JEE y .NET, en temas de web con HTML5, CSS y JS, así como el diseño con uso de herramientas de Macromedia ahora Adobe Systems. El uso de estándares web (HTML, CSS) en conjunto de varios frameworks como Struts, Java Server Faces permitió dar soluciones más rápidas y eficientes. El desarrollo de aplicaciones web enriquecidas sufrió un gran cambio con el surgimiento de Adobe Flex, tecnología en la cual me especialice y me hice experto. La versatilidad de Adobe Flex y su sencilla integración con múltiples soluciones como Spring, JEE ,.NET o Ruby me permitió crear proyectos en el entorno empresarial. Los desarrollos de aplicaciones interactivas comenzó y la solicitud de aplicaciones móviles llegó permitiendo desarrollar nuevas habilidades y aprender nuevos procesos. Estos procesos son lo que abordaré y describiré con detalle. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 7 Metodología De Desarrollo Aplicaciones Móviles CAPITULO II - METODOLOGIA PARA DESARROLLO MÓVIL Proceso para el desarrollo de software, también denominado ciclo de vida del desarrollo de software es una estructura aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe una enfoque diferente para distintas actividades que tienen lugar durante el proceso. 1 Las actividades F1 que se realizan para el desarrollo móvil son similares, pero el enfoque principal será en el desarrollo iterativo e incremental centrado en la construcción de secciones reducidas de software, para facilitar así la detección de problemas de importancia en fases tempranas. Los procesos iterativos pueden ayudar a desvelar metas del diseño en el caso de clientes que no saben cómo definir lo que quieren. En el diagrama se muestran las actividades en las que nos centraremos: Figure 1 Diagrama de Actividades 1 Fuentes Wikipedia http://es.wikipedia.org/wiki/Proceso_para_el_desarrollo_de_software ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 8 Metodología De Desarrollo Aplicaciones Móviles MAPA MENTAL F2 En el diagrama se detalle el mapa completo del flujo de trabajo de cada área. Figure 2 Flujo de proceso ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 9 Metodología De Desarrollo Aplicaciones Móviles MODELADO DE NEGOCIO El punto inicial del desarrollo de cualquier aplicación móvil es identificar el problema que se desea resolver, identificarlo claramente qué es lo que se busca y reflejarlo en la solución. Algo común que sucede cuando no se tiene experiencia en el desarrollo de las aplicaciones es comenzar pensando en implementar varias características se desean tener en la aplicación, sin ver qué hay que centrarse en una característica principal de la aplicación, Es decir lo que usualmente se conoce con un Producto Mínimo Viable ( MVP de Mínimum Viable Product) teniendo como eje la solución de este elemento inicial, es decir identificar la característica que le da más valor a nuestra aplicación, identificar la característica que permitirá que nuestra aplicación se distinga. Aun siendo que la aplicación sea pensada por un tercero (algún cliente que nos solicite el requerimiento) o quizá por uno mismo. El hablar con la persona que: ● Tiene identificada una necesidad concreta ● Conceptualizada ya una solución ● Que desee migrar una aplicación ya existente al mercado mexicano o latino( lo que 2 conoce como tropicalización ) Se debe priorizar esa característica sobre la cual nuestra aplicación girará. Esto es primordial porque permitirá saber: ● Que características agregar o no. ● Si deben agregarse a la aplicación o se dejan para una distinta que se centre en estas nueva característica identificada. ● Si las aplicaciones sean complementarias y se entregue un MVP más rápido. Es posible que en este paso se pueda seleccionar la tecnología en la que se va a construir la aplicación, ya sea por estadísticas de uso, usuarios de un nicho ya identificado o quizá por aspectos meramente financieros. 2 Solución para un cierto contexto o región ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 10 Metodología De Desarrollo Aplicaciones Móviles ANÁLISIS Y DISEÑO Al tener identificado el problema a resolver en cualquiera de los escenarios indicados, se recomiendan las siguientes actividades: ● Creación de bocetos (Sketching) ● Wireframing/Mockups ● Prototipado (Prototyping) No es una regla realizar los 3 procesos, depende de varios factores como el tiempo o el presupuesto. Lo importante es realizar el análisis de la aplicación, sus pantallas, el flujo de navegación un proceso que va dirigido por la experiencia de usuario (UX de User eXperience), centrado en el usuario y en lo que la aplicación resolverá. Por ejemplo, si nuestra aplicación dará la ubicación de la gasolinera más cercana, esperamos que el usuario de la aplicación no deba navegar un gran número de pantallas para alcanzar la información que está buscando y ayudarnos de un diseño que permita que con el menor número de toques de pantalla pueda ver lo que busca, quizá en una lista o en un mapa, que sea rápido y simple visualizar lo que está buscando y no se pierda en el proceso. Si al abrir una aplicación se utiliza alguna de las características del Smartphone, ejemplo geo localización, esta simple acción se mostrará la información que se está buscando, se simplifica el uso y se mejorará la experiencia del usuario en la aplicación. Al dedicarle tiempo a la creación del sketch o al mockup de nuestra aplicación permitirá comenzar de una forma rápida y simple, lo que deseamos lograr , involucrar lo más pronto posible al cliente para validar los diseños, hacer estas iteraciones hasta con nosotros mismos, inventar usuarios, crear historias de uso y nos ayudará a tomar la decisión de qué elementos agregar y cuales no. Expliquemos en qué consiste cada uno de estos tres elementos fundamentales en el proceso de diseño de una aplicación ● Bocetos (Sketching) ● Wireframing/Mockup ● Prototipado (Prototyping) ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 11 Metodología De Desarrollo Aplicaciones Móviles Bocetos La intención de un sketch es realizar el bosquejo de diferentes ideas basado en dibujos a mano F3 alzada , sin la intención de ser un trabajo terminado (colocar todos los elementos o pantallas de aplicación) y establecer una composición de ideas para ahora o para después. Este bosquejo de ideas, es un elemento de inicio para los creativos, que sirve como base o referencia para siguientes fases. Muchas de estas ideas quizá no lleguen a la aplicación final, pero los elementos básicos(la esencia de la aplicación estará representada en estos dibujos). Figure 3 Ejemplo de plantilla para bocetado ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 12 Metodología De Desarrollo Aplicaciones Móviles Wireframing/Mockup Aunque en ocasiones se pueden considerar 2 actividades distintas tiene la misma base, solo los diferencia que habrá un diseño gráfico más refinado en los mockups. La intención de esta fase de diseño se centra en los aspectos funcionales y la distribución, notas de intención o funcionalidad, sistema de navegación, y como los elementos de la interfaz gráfica trabajan(componentes) centrado primordialmente en el uso, sin darle mucha importancia a estilos, guía de colores o a los gráficos. Figure 4 Ejemplo aplicación de control de llamadas telefónicas usando Balsamiq Mockups Existen a una gran diversidad de herramientas para crear los mockups. Estas herramientas pueden incluir diseño interactivo, exportación a HTML5, en el flujo de trabajo ayudan a mostrar como se pretende que usuario interactúe con la aplicación. Una recomendación es mantener un diseño limpio, sin tomar un estilo especifico, es decir no enfocado a una plataforma en particular, el usuario en la mayoría de los casos considera que ese es el arte final y si lo se presenta simple, enfocado al contenido y a la arquitectura de la información, se tendrá una funcionalidad mas cerrada, el diseño, colores se definen en otra etapa y/o en la fase de la creación del prototipo. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 13 Metodología De Desarrollo Aplicaciones Móviles Prototipado Se toma como base el wireframe o mockup de la aplicación para simular el arte final, textura, colores, guías de diseño, se obtiene una versión simplificada de la solución o versión ligera, que logra capturar el diseño o aspecto esperado de la versión final, así como también verificar posibles errores en el flujo o el diseño. Figure 5 Ejemplo de un prototipo Proceso El tiempo, el dinero y la complejidad definirá si todas las tareas qie serán realizadas, una actividad que es esencial es: Los mockups o wireframes, se preguntarán ¿Por qué? , la respuesta es simple: 1. Se requiere entender el problema a resolver. El diseño del mockup permitirá delimitar funcionalidades (características) que la aplicación tendrá, numero de pantallas, flujo – navegación , componentes (personalizados o los definidos en cada plataforma) para resolver y dar la mejor experiencia de usuario posible. 2. Se necesita acotar la solución. Con el número de pantallas y el flujo de navegación podremos generar una aproximación un poco mas precisa de tiempo y costos, además de una fuerte base en la toma de ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 14 Metodología De Desarrollo Aplicaciones Móviles decisión con el cliente sobre qué incluir o qué dejar fuera para ésta o futuras versiones de la aplicación. 3. No es necesario arte final Se está diseñando centrados en los aspectos funcionales, no en las guías de colores, el aspecto constantemente puede ser modificado por el cliente, pero no así la funcionalidad el elemento principal de la aplicación se crea en esta fase y se mantendrá hasta el fin del proyecto. ANÁLISIS TIEMPO DESARROLLO Y COSTOS ¿Qué hay con respecto a los tiempos? ¿Cuánto tiempo lleva esta fase y sus iteraciones? El primer borrador de wireframes se logra concretar entre medio y un día de trabajo (jornada de 8 T1 horas) , difícilmente aun siendo un experto en el diseño se logra entregarlo a la primera iteración, se requerirá la retroalimentación del usuario o de un compañero del equipo para afinar el diseño, hay que recordar que estamos haciendo aplicaciones para una audiencia distinta a uno mismo y lo que funciona en nuestra perspectiva no es regla que aplique para todos. Iteración/Draft Horas 1ra Iteración Wireframe 4a8 2da Iteración Wireframe 2a6 T1 Tiempos para Wireframes Una recomendación es probar nuestras hipótesis lo más pronto posible, esto permitirá fallar rápido pero tener mejor asertividad en la propuesta de interfaz, diseño, navegación o componentes. Una técnica simple es exponer nuestro trabajo a gente que no cuenta con el contexto de la aplicación y así validar la hipótesis de diseño, pantallas , flujos y quizá hasta funcionalidad. ¿Cómo hacerlo? ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 15 Metodología De Desarrollo Aplicaciones Móviles Ir a un Starbucks pedirle a alguna persona que nos ayuda a cambio de comprarle algún café o galleta, esta validación será importante, la forma que el equipo interno ha conceptualizando la aplicación es distinta a la forma que la pueda percibir otra persona o grupo de personas. Entre mayor repitamos este proceso , tendremos mayor información o validación de lo que hasta ahora se ha hecho. Después, ya estos ajustes, se recomienda presentarlo a un grupo de personas más cercanas al público meta de la aplicación, estas personas permitirán validar: ● Al usuario de la aplicación ● Funcionalidad Esta información permitirá saber si es requerido cambiar algún aspecto del proyecto. Recuerda que los usuarios están acostumbrados ya a ciertos usos y patrones, cambiar radicalmente esto puede ser riesgoso y que la interfaz no termine siendo intuitiva o responsiva como nosotros podríamos pensarlo. ¿Qué hay de los otros 2 elementos?, el prototipado es lo mas cercano que tendremos antes de una aplicación funcional pueden ser simples imágenes vinculadas con arte final para mostrar la interactividad, algunos botones responsivos, y siempre corremos el riesgo de tener un prototipo también terminado, que el cliente pueda inclinarse a pensar que no hace falta nadas mas y que ya esta todo listo para el día de mañana. Los bosquejos son algo esencial en otras industrias como por ejemplo en el cómic, en las películas son parte del proceso creativo del diseñador. Hay quien tiene esa escuela muy arraigada, y además una facilidad para completar sus dibujos, en mi experiencia, conozco un par de personas que son increíblemente productivos con el papel y lápiz, además que es un proceso de unas cuantas horas, siempre tendremos a mano un lápiz y un papel. Si una idea viene a tu mente, dibújala y quizá estés creando la siguiente característica que destaque en esta carrera de creación de experiencias móviles. Los mockups ayudarán a delimitar el alcance, nos darán un panorama global,más no específico de cada una de las tareas a realizar. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 16 Metodología De Desarrollo Aplicaciones Móviles Delimitación del Alcance Nuestra siguiente herramienta será una hoja de cálculo, donde desglosaremos: ● Funcionalidades de cada pantalla ● Detallando elementos de UI ● Servicios ● Integración de su integración ● Pruebas utilizaremos las siguiente clasificación de complejidad en las tareas T2 Categoría Very Easy Easy Normal Complex Very Complex T2 Tabla Complejidad de tareas A cada categoría le asignaremos un tiempo en horas, tomaremos como base 8 horas, de inicio e iremos aumentando hasta 40 horas hasta completar cada elemento de nuestra clasificación. La tabla de categoría contra tiempo baseT3, un ejemplo puede ser así: Categoría Horas Very Easy 8 Easy 16 Normal 24 Complex 32 Very Complex 40 T3 Ejemplo de Categoría vs Tiempo Base ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 17 Metodología De Desarrollo Aplicaciones Móviles Estos números no son ni fijos ni definitivos, son sólo un inicio , una referencia. Algo interesante de esta métrica, es que cuando alguna tarea sea muy compleja, quizás le asignamos un valor de 2, que en sentido estricto son 2 semanas hora/hombre pero se lee menos tiempo, aspecto psicológico quizá, la última decisión es tuya. En mi experiencia un cliente al ver la descripción se centrará en el total de horas, no en que una tarea llevará 15 días terminarla. Haciendo el desglose de tareas por pantalla tendremos el total de esfuerzo en horas para las pantallas, los componentes y los servicios. Agregaremos una tabla F6 más para obtener el esfuerzo en días, semanas y meses, tanto para 1 recurso (llámese Diseñador o Desarrollador) hasta 4 recursos , esto dará un panorama claro de cuánto tiempo se llevará construir la aplicación. Y se contara con información suficiente para la toma decisiones en cuanto a recursos, costos, tiempos. Figure 6 Tabla de estimación de esfuerzo ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 18 Metodología De Desarrollo Aplicaciones Móviles Complejidad Tiempo y Costo Las tres variables de un desarrollo son ● Tiempo ● Costo ● Complejidad 3 Estos 3 elementos son dinámicos y complementarios. Si el costo es fijo, las variables a cambiar serán entrega en un mayor tiempo o entrega con una reducción funcionalidad. Si el tiempo es fijo , se reduce funcionalidad o se aumenta recursos( conlleva un mayor costo) para salir en tiempos de entrega acordado. Aquí juega mucho el trabajo en equipo ya que alguien de ventas por cerrar la venta, prometa entregar en un tiempo no realista (improbable) a un cliente y entonces todo es para ayer. En el caso que las características de la aplicación sean inamovibles, se debe considerar si aumentamos el tiempo si nos ha quedado corto y esto de forma directa impacta en los costos. El hacer una buena estimación es todo un arte y es subjetivo, depende completamente de la experiencia de quien la crea, así como del equipo que hará las tareas. En el desarrollo de software es de los errores más comunes, del que hay que aprender rápido, porque implica 2 elementos centrales. Dinero y Reputación , lo segundo es lo más valioso porque hará que llegue más lo primero. Terminada la estimación, ¿Qué es lo que sigue? El plan de trabajo. Plan de trabajo El plan de trabajo es el arte de asignar tareas, vincularlas coherentemente, en este proceso eliminar dependencias y posibles tiempos muertos, generar entregables tangibles para cada 4 tomador de decisión( stakeholder : cliente , desarrollador o diseñador). 5 Estos entregables se recomienda tenerlos en periodos cortos (milestone ) , cada milestone se recomienda de 2 semanas , así tendremos periodos reducidos y en caso de algún retraso que se tenga, el tiempo para retomar cada hito apegado al plan de trabajo, ahí es donde cada individuo 3 Asociando número de tareas o características a implementar 4 Quienes pueden afectar o son afectados por las actividades de una empresa 5 Marcador de próxima entrega en una etapa desarrollo iterativo de software. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 19 Metodología De Desarrollo Aplicaciones Móviles juega un rol importante al tener una comunicación clara y eficaz con el equipo de trabajo y metodologías como Scrum, Extreme Programming incluso Team Software Process ayudan a enfocar los esfuerzos en cada entrega. Este plan se puede hacer en otra hoja de cálculo, o incluso con una herramienta como MS Project. El éxito de estar al día con el plan de trabajo, no esta en la herramienta sino en el equipo que se compromete a tener cada entregable en tiempo y forma. Con el Vo.Bo. del cliente o del equipo es hora comenzar a crear nuestra aplicación. Antes de continuar, recordarán que los prototipos dan una versión real del aspecto final de nuestra aplicación. Hay, habrá y seguirán existiendo clientes que son extremadamente visuales y que requerirán de este artefacto para continuar incluso antes del plan de trabajo. La valoración está en el cliente y en nosotros mismos; si no es claro que se va a construir, esto traerá retrasos, salidas tarde del trabajo, fines de semana pegados a la computadora y estoy seguro que nadie desea que esto pase. Por esto, es importante usar estas técnicas (Bosquejos, Mockup o prototipos) para cuando se lleguen las entregas. Se tenga muy bien acotado el alcance, el producto final(entregable) y no existan sorpresas para nadie. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 20 Metodología De Desarrollo Aplicaciones Móviles INICIANDO EL PROYECTO Antes de todo, contar con un control de versiones debe ser primer paso incluso antes de los bosquejos, mockups o prototipos. Existen varias opciones como por ejemplo SVN o Git, se recomienda Git por ser el menos invasivo es decir sólo tendremos un directorio llamado .git el la raíz de nuestro proyecto(directorio donde se que llevará la información del control de cambios) , a diferencia de SVN que creará un directorio .svn en cada carpeta que exista en nuestro repositorio( directorio con el mismo propósito). Git se instala fácilmente en cualquier sistema operativo y en un par de días usándolo son suficientes para el día a día. El control de versiones permitirá llevar el tracking de cambios y ayudará al trabajo en paralelo por los integrantes de equipo y/o quien tenga acceso al repositorio. Dos opciones de control de cambios son ● Bitbucket ● Github Bitbucket Bitbucket permite la creación ilimitada de repositorios públicos (repos a los cualquier persona tiene acceso) y a repositorios privados (sólo un grupo selecto tiene acceso). El acceso privado está limitado a 4 usuarios y en términos de proyectos comerciales esta limitadísimo , para repositorios de Pruebas de Concepto (POC's) viene bien y no es una limitante. Bitbucket utiliza tanto Git y Mercurial (otro controlador de versiones) en su control de versiones. Si se envía invitaciones a que otros usuarios se suscriban a usar el servicio, bitbucket agregara el acceso para un usuario más por cada invitación y registro conseguido. Github Github permite la creación ilimitada de repositorios públicos pero no existe opción de repos privados. En ambos casos Bitbucket y Github son las versiones gratuitas. Para mayor información pueden consultar los sitios de cada uno de ellos ● http://github.com ● http://bitbucket.com ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 21 Metodología De Desarrollo Aplicaciones Móviles La relación costo/beneficio hace que el pago mensual o anual de control de versiones sea un producto básico en nuestro proceso de desarrollo de software. Tener el acceso a el repositorio de código vía web o vía consola y además por ejemplo, en el caso concreto de Desarrollo móvil con Phonegap, se tiene un servicio de construcción de 6 aplicaciones en la nube integrado a Github . Este servicio permitirá reducir el tiempo de construcción de un aplicación al simplificar la configuración de un equipo con el ambiente de desarrollo de cada plataforma. ¿Qué tecnología utilizar? iOS/Android Nativo o Hibrido (Phonegap, MonoTouch, iFactr) La respuesta esta basada en: ● Contexto de la aplicación ● Las características ● El presupuesto ● El tiempo. Contexto 1. ¿Cual es el mercado a donde llegas tu aplicación? 2. ¿Cual es tu mercado meta? 3. ¿Quiero estar presente en todas las plataformas? 4. ¿Tengo un presupuesto reducido? 5. ¿Poco tiempo para tener la aplicación lista? 6. ¿Que tan importante es el rendimiento de la aplicación? 7 Estas preguntas nos guiarán en la toma de decisiones y acotarán en mayor o menor medida cual plataforma será seleccionada. Desde la fase del modelado de negocio se puede ya definir sobre que plataforma, se construirá la aplicación. 6 Phonegap Build, producto de adobe 7 Mercado meta es tu público objetivo, el que consideramos será el usuario ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 22 Metodología De Desarrollo Aplicaciones Móviles IMPLEMENTACIÓN Con el plan de trabajo se podrá realizar las tareas en paralelo ● Front End ● Backend FRONT END El desarrollo del Front end implica la implementación del mockup siguiendo cada tarea del plan de trabajo. Aquí es donde el ingeniero de software crea el producto, se recomienda la integración continua, es decir cada nueva funcionalidad implementada ponerla a disposición del cliente aunque solo sea para pruebas internas. Herramientas como Git integrado con Jenkins(Servidor de Integración Continua) permiten realizar este proceso de una manera más simple, directa y claro mas barata. Un tablero de control recomendado para administrar el avance dentro de cada entrega y llevar un F7 autocontrol reduciendo así la necesidad de un administrador de proyecto es Trello . Trello es un tablero con múltiples listas donde se puede ver de forma visual cuales son la tares, como se asignaron y que avance se lleva, permite compartir documentos, notas. Figure 7 Ejemplo de tablero en trello ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 23 Metodología De Desarrollo Aplicaciones Móviles PRUEBAS Una manera simple de distribuir el avance con los clientes o los miembros del equipo pensando en el desarrollo iOS es TestFlight F8 , un sistema que mediante un mail el posible distribuir una versión alpha o beta de la aplicación móvil que se esta desarrollando. Figure 8 Pantalla de inicio de TestFlight Para más información visita https://testflightapp.com Las tareas más comunes en la implementación del front end son: ● Creación de las vistas ● Integración de API’s nativas(Contactos, Agenda, Acelerómetro, etc). ● Integración con API’s de terceros (Twitter, Facebook, Dropbox) ● Modelado del almacenamiento local. ● Pruebas de integración con servicios remotos(Web Services) ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 24 Metodología De Desarrollo Aplicaciones Móviles Una excelente herramienta que permite la sencilla integración de los servicios finales y las vistas F9 es Maque . Figure 9 Maque, herramienta que simula servicios y acelera su integración. Maque es una aplicación multiplataforma, basada en el escritorio, diseñada para ayudar a los desarrolladores crear, probar y mantener aplicaciones web creando servicios de datos simulados, acelerando la integración con los servicios finales. BACK END El desarrollo del back end implica: ● Definición de la arquitectura para servicios de datos. ● Creación del modelo de datos. ● Diseño del API para consumir servicios. ● Pruebas de integración con cliente móvil. MIDDLEWARE Los servicios se recomienda sigan una estructura de Transferencia de Estado Representacional (Representational State Transfer) ó REST. “Un concepto importante en REST es la existencia de recursos (elementos de información), que pueden ser accedidos utilizando un identificador global (un Identificador Uniforme de Recurso). Para manipular estos recursos, los componentes de la red (clientes y servidores) se comunican a través de una interfaz estándar (HTTP) e intercambian representaciones de estos recursos (los ficheros que se descargan y se envían) - es cuestión de debate, no obstante, si la distinción entre recursos y sus representaciones es demasiado 8 platónica para su uso práctico en la red, aunque es popular en la comunidad RDF. ” El back end no es exclusivamente el modelado de datos, sino el como se expone la información para ser consumida por la aplicación móvil. 8 Fuente Wikipedia ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 25 Metodología De Desarrollo Aplicaciones Móviles A diferencia de desarrollo tradicional(Web o Desktop), en el móvil se requiere disminuir las llamadas a los servicios, de esta forma optimizar el uso de las peticiones, es mejor hacer una petición que entregue muchos datos, que realizar una petición por cada sección o dato que se desea mostrar en pantalla. Esto optimizará el uso del plan de datos del teléfono o tableta, y permitirá el ahorro de energía en el dispositivo(mayor tiempo de vida para la batería). TECNOLOGIAS Existen distintas tecnologías para la implementación del backend ● Node.js ● Ruby on Rails (RoR) ● Java(JVM) Veamos algunas características y cómo pueden ayudarnos en el desarrollo exitoso de nuestra aplicación Node.js Node.js es un entorno de programación en la capa del servidor basado en el lenguaje de programación JavaScript, con I/O de datos en una arquitectura orientada a eventos, y basado en el motor JavaScript V8. Fue creado con el enfoque de ser útil en la creación de programas de red altamente escalables. Plataforma con un gran ecosistema, actualmente cuenta con una popularidad por la sencillez de configuración , y su pequeña curva de aprendizaje. Ruby on Rails Ruby on Rails, también conocido como RoR o Rails es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby, siguiendo el paradigma de la arquitectura Modelo Vista Controlador (MVC). Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código que con otros frameworks y con un mínimo de configuración. El lenguaje de programación Ruby permite la meta programación, de la cual Rails hace uso, lo que resulta en una sintaxis que muchos de sus usuarios encuentran muy legible. Rails se distribuye a través de RubyGems, que es el formato oficial de paquetes y el canal de distribución de bibliotecas y aplicaciones en Ruby. Ruby es uno de los lenguajes más poderosos , con una gran cantidad de adeptos. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 26 Metodología De Desarrollo Aplicaciones Móviles Java(JVM) Java es un lenguaje de programación de propósito general, concurrente, basado en clases, y orientado a objetos, que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. La JVM es una de las piezas fundamentales de la plataforma Java. Se sitúa en un nivel superior al hardware del sistema operativo sobre el que se pretende ejecutar la aplicación, y este actúa como un puente que entiende tanto el código binario (bytecode) como el sistema sobre el que se pretende ejecutar. Así, se tiene una gran cantidad de lenguajes de programación que corren en esta máquina virtual, algunos ejemplos: ● Groovy ● Scala ● JRuby(Ruby) ● Jython(Python) BASES DE DATOS Para el caso de almacenamiento de datos se tienen las siguientes sistema de gestión de bases de datos relacionales(RDBMS por su siglas en inglés) ● PosgreSQL ● MySQL ● MongoDB PostgreSQL PostgreSQL es un sistema de gestión de bases de datos relacional orientado a objetos y libre, publicado bajo la licencia Berkeley Software Distribution (BSD). Estable y eficiente opción para soluciones de alta concurrencia. MySQL MySQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario. Software libre en un esquema de licenciamiento dual (GNU GPL y cerrado). MongoDB MongoDB es un sistema de base de datos NoSQL orientado a documentos, desarrollado bajo el concepto de código abierto. “MongoDB forma parte de la nueva familia de sistemas de base de datos NoSQL. En vez de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de datos en ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 27 Metodología De Desarrollo Aplicaciones Móviles documentos tipo JSON con un esquema dinámico (MongoDB llama ese formato BSON), haciendo que la 9 integración de los datos en ciertas aplicaciones sea más fácil y rápida. ” PUBLICACIÓN Con nuestra aplicación construida , distribuida para pruebas con usuarios y/o clientes, podemos pasar al siguiente paso que es: la publicación en la tienda de aplicaciones correspondiente. • ¿Cuales son los requisitos para hacerlo? • ¿Cuanto cuesta? • ¿Cuanto tiempo se lleva el proceso? Dependiendo de la tecnología T5 que se halla seleccionado para la implementación, se tienen las siguientes opciones para distribución: Tecnología Canal de distribución iOS AppStore Android Google Play Store BlackBerry BlackBerry App World Windows Phone 8 Marketplace de Windows Phone PhoneGap, iFactr AppStore Google Play Store BlackBerry App World Marketplace de Windows Phone Xamarin(Monotouch) AppStore, Google Play Store Flex Mobile(AIR) AppStore Google Play Store BlackBerry App World Marketplace de Windows Phone T4 Tabla Tecnología vs Tienda de aplicaciones APPSTORE (iOS)10 Un requisito indispensable para poder distribuir una aplicación al AppStore es: estar suscrito como desarrollador de Apple (iOS Developer Program). 9 Fuente Wikipedia http://es.wikipedia.org/wiki/MongoDB 10 Información actualizada el sitio de Apple Julio 2013 https://developer.apple.com ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 28 Metodología De Desarrollo Aplicaciones Móviles El programa de desarrollador de Apple ofrece un conjunto completo de recursos técnicos, soporte o acceso a versiones de software de pre-release y nos permite. ● Desarrollar ● Probar ● Distribuir Las herramientas de desarrollo en el iOS SDK a las que se tendrá acceso son: ● ● ● ● Xcode iOS Simulator Instruments Interface Builder Xcode Entorno de desarrollo que permite la edición del código , depurar código gráficamente y administración del proyecto. iOS Simulator El simulador permite ejecutar, probar y depurar la aplicación de forma local con un simulador para iPhone y iPad. Útil si no contamos con un dispositivo a la mano. Instruments Recolección, despliegue y comparador de rendimiento mediante la gráfica en tiempo real para optimizar la aplicación y encontrar posibles fugas de memoria. Interface Builder Interface Builder permite diseñar gráficamente de forma simple las interfaces y vista con arrastrar y soltar componentes. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 29 Metodología De Desarrollo Aplicaciones Móviles El ecosistema de desarrollo, distribución de la plataforma iOS es el mas completo hasta hoy día, sobre cualquier otra plataforma. Las recursos de desarrollo a los que se tendrá acceso son: ● ● ● ● Foros Apple Developer Documentos y videos Biblioteca iOS Developer Ejemplos de código Foros Apple Developer Foro de discusión sobre temas de desarrollo en iOS por los desarrolladores y los ingenieros de Apple. Documentos y videos Videos y documentación de herramientas, frameworks, métodos de diseño y mejores prácticas de desarrollo. Acceso a los videos del WWDC (Worldwide Developers Conference) máximo evento de Apple enfocado a la comunidad de desarrolladores Apple. Biblioteca iOS Developer Desde artículos, guías paso a paso , notas de versiones, ejemplos de código. Ejemplos de código Código de como usar las API’s y mejorar el diseño de las aplicaciones. Ejemplos completos listos F10 para usar y probar. Al seleccionar una clase dentro de XCode se puede accesar al código de ejemplo usando el API. Figure 10 Código de ejemplo de UIImageView Suscripción Existen 2 tipos de suscripción : ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 30 Metodología De Desarrollo Aplicaciones Móviles ● ● Individual Empresa la suscripción se puede hacer en https://developer.apple.com/programs/ El costo es el mismo $99 USD, la diferencia principal es que como empresa se debe solicitar un DUNS number (asignado por el gobierno de los estados unidos a una empresa legalmente constituida en el país que hace la solicitud). Este trámite es gratuito solo hay que llenar un formulario , el proceso se completa en un par de días. Para solicitarlo ingresar a D&B D-U-N-S® .Se puede acelerar el proceso pagando para D&B una cuota. Cuenta individual se obtiene en un par de días, la empresarial en aproximadamente una semana. En el caso que se requiera distribuir aplicaciones en un entorno cerrado y que no se hagan públicas, Apple creó el “iOS Developer Enterprise Program”, una distribución solo para los empleados de la empresa o clientes específicos. GOOGLE PLAY STORE(Android)11 En el caso de Android para empezar a publicar se configura una cuenta publicador de Google Play. Así es como se hace: 1. Registro para una cuenta de publicador de Google Play 2. Si va a vender aplicaciones, configurar una cuenta de Google Checkout Merchant 3. Explorar Google Play Android Developer Console y aprender acerca de las herramientas para la publicación. Antes de iniciar el registro considerar los siguiente: ● Se necesita una cuenta de Google para registrarte. Puede crear una durante el proceso. ● Si se esta dando de alta una organización, considerar registrar una nueva cuenta de Google en lugar de utilizar una cuenta personal. ● Revisar los países donde se puede distribuir y vender aplicaciones. Cuenta Google Play 11 Información actualizada del sitio Google Julio 2013 https://developer.android.com/index.html ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 31 Metodología De Desarrollo Aplicaciones Móviles El primer paso es visitar el Android de Google Play Consola de desarrollador y registrarse para obtener una cuenta de editor. Los pasos para el registro son los siguientes 1. Visite Google Play Android Developer Console en: https://play.google.com/apps/publish/ 2. Ingresar la información básica sobre la identidad del programador - nombre, dirección de correo electrónico, etc. Esta información se puede modificar posteriormente. 3. Leer y aceptar el acuerdo de distribución para desarrolladores que se aplica al país o región. Tener en cuenta que las aplicaciones y listas de tiendas que se publican en Google Play debe cumplir con las Políticas de Desarrollo del Programa y del derecho exportación de los EE.UU., 4. Pagar una cuota de $25 USD de inscripción a través de Google Checkout. Si usted no se tiene una cuenta de Google Checkout, se puede configurar una durante el proceso. Cuando el registro es verificado, se notificará a la dirección de correo electrónico que se especificó en el registro(esta cuenta de correo no puede modificarse). Google Checkout Merchant Si se quiere vender productos en Google Play como ● Aplicaciones ● Productos integrados en la aplicación ● Suscripciones Se tendrá que crear una cuenta de Google Checkout Merchant. Esto puede hacerse en cualquier momento, pero hay que revisar la lista de países en los cuales se pueden comercializar las aplicaciones. Los pasos para configurar una cuenta de Google Checkout Merchant 1. Acceda a su consola de Google Play en https://play.google.com/apps/publish/ 2. Hacer clic en "Editar perfil". 3. Seleccionar "Configuración de una cuenta Google Checkout Merchant. Esto le llevará a la página de Google Checkout para inscribirse como comerciante, ingresando la información personal o de la empresa. Explorar la consola de desarrollo Cuando tener el registro verificado, se puede acceder a la consola de desarrolladores de Android, que será la sede para las operaciones de publicación de aplicaciones y herramientas en Google Play. La cuenta se obtiene en minutos. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 32 Metodología De Desarrollo Aplicaciones Móviles BLACKBERRY APP WORLD(BB10)12 En el caso de BlackBerry hay que registrarse en el portal de proveedores de BlackBerry App World y presentar el producto para su evaluación por parte de RIM. El registro se realiza en https://appworld.blackberry.com/isvportal/login_input.do Los pasos para crear la cuenta de vendedor es siguiendo estos sencillos pasos: 1. Aceptar el Acuerdo de proveedores de BlackBerry App World. 2. Ingresar la información de contacto personal. 3. Ingresar la información de contacto de la empresa. 4. Asociar una cuenta de PayPal con su cuenta de vendedor. Se debe contar con una cuenta PayPal para poder participar en el Portal de proveedores de BlackBerry App World. Una cuenta de PayPal se requiere para la compra y pago a los proveedores. Una vez que las credenciales de cuenta ha sido validadas, se recibirá un email de confirmación con instrucciones sobre cómo puede comenzar a enviar productos a RIM El correo electrónico de confirmación llega en una semana. F11 12 Información actualizada del sitio de BlackBerry en Julio 2013 http://developer.blackberry.com ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 33 Metodología De Desarrollo Aplicaciones Móviles Figure 11 Correo de bienvenida a BlackBerry App World Como se puede observar viene en 4 secciones ● Construye tu aplicación ● Prepara y envía ● Publicita para venta ● Monetiza así como un enlace a respuestas a preguntas frecuentes que se encuentra aquí: https://developer.blackberry.com/devzone/appworld/faq/ Construye tu aplicación ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 34 Metodología De Desarrollo Aplicaciones Móviles En el caso de BlackBerry existe la posibilidad de seleccionar entre 5 plataformas para desarrollar las aplicaciones 1. 2. 3. 4. 5. C/C++ Native SDK HTML5 Webworks Actionscript Adobe AIR Java Android Runtime Java Blackberry Java además de la opción de crear temas personalizados para BlackBerry con el Theme Studio Figure 12 Plataformas de desarrollo soportadas por BB Página actual de plataformas soportadas por BB: https://developer.blackberry.com/devzone/platforms/ ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 35 Metodología De Desarrollo Aplicaciones Móviles MARKETPLACE DE WINDOWS PHONE(Windows 8)13 14 Los prerrequisitos para publicar una aplicación Windows Phone son los siguientes: Crear una cuenta de Microsoft Debe tener una cuenta de Microsoft (antes conocido como Windows Live ID) para inscribirse en Dev Center. Si aún no tiene una cuenta de Microsoft, se le pedirá que cree una antes de registrarse. Para crear una, vaya a la configuración de la cuenta Microsoft . Regístrese para obtener una cuenta del centro de desarrollo Después de registrarse para una suscripción anual del centro de desarrollo, tendrás que presentar un número ilimitado de aplicaciones de pago a Windows Phone Store. También puede enviar un máximo de 100 aplicaciones gratuitas. Siga estos pasos para completar el proceso de registro: Seleccione un tipo de cuenta Para empezar, seleccione entre una empresa o una cuenta individual / Estudiante. Empresa: Seleccione la empresa si se está registrando en nombre de una sociedad anónima, sociedad de responsabilidad limitada (LLC), sociedad u otra empresa legalmente registrada con su gobierno local. Tenga en cuenta que los futuros cambios en su primer, apellido o nombre de la editorial requerirán cuenta nueva verificación (aplicaciones no se pueden presentar durante la verificación posterior). Usted debe completar las siguientes acciones para activar su cuenta de la compañía: ● Completar el registro y pagar la cuota de suscripción. ● Completar el proceso de validación de cuenta Microsoft. Completar el proceso de validación de cuentas de Microsoft incluye los siguientes pasos: ● Su empresa recibirá un correo electrónico de Symantec que contiene un enlace para verificar la cuenta. Este correo electrónico será enviado a la dirección de email aprobador especificado durante el proceso de registro en la sección de información aprobador. ● Haga clic en el enlace para validar la cuenta de correo electrónico. Algunas notas adicionales en el proceso de validación de cuentas de Microsoft: 13 14 Información actualizada el sitio de Microsoft Julio 2013 http://dev.windowsphone.com Fuente Microsoft Julio 2013 ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 36 Metodología De Desarrollo Aplicaciones Móviles Para asegurar la activación rápida, el aprobador corporativa debe responder con su aprobación. Es importante tener en cuenta que si el aprobador Corporativa rechaza el enlace enviado a su correo electrónico, la cuenta será cancelada. Symantec solicitará la documentación apropiada si es necesario. Individual o Estudiante: Seleccione Individual si eres un desarrollador individual. Seleccione Student si usted es un estudiante con una cuenta de DreamSpark verificado. Usted puede obtener una nueva cuenta DreamSpark durante el registro. En este punto, se le requiere que proporcione prueba de su condición de estudiante. No hay cuota de membresía anual que si usted compra la suscripción mediante DreamSpark. Usted recibirá un correo electrónico de verificación del Centro de Desarrollo para validar su cuenta de correo electrónico. Si crea una nueva cuenta y desea mover sus aplicaciones de la cuenta anterior, tendrá que anular la publicación de las aplicaciones publicadas y las remitirá para la certificación en la nueva cuenta. Después de que sus aplicaciones han pasado la certificación en la nueva cuenta, pueden ser publicados bajo la nueva cuenta el nombre del editor. Cualquier calificaciones o revisiones asociados con la publicación anterior no se aplicarán a la publicación de la nueva cuenta. Datos de contacto y el nombre del editor Introduzca la información de contacto necesaria (nombre, dirección, teléfono, correo electrónico, etc) y, a continuación, crear un nombre del editor. Nombre del editor es el nombre de los usuarios se ven en su teléfono. Editorial nombres son únicos y se verificará durante la cuenta de los procesos de validación de Microsoft inscripción y. Para cuentas individuales y/o estudiantes, puede ingresar su nombre o Razón Social (DBA). Para las cuentas de la compañía, escriba el nombre legal de su negocio, ya que está registrado con su gobierno local. Un nombre de DBA también es aceptable. Para las cuentas de la compañía, Symantec utilizará este nombre durante el proceso de validación de identidad. Por favor, asegúrese de que toda la documentación de la empresa se alinea con el nombre del editor de la compañía entró. Si recibe un mensaje de error de conflicto de nombre de la editorial, el error indica que el nombre de la editorial único en el mundo que ya ha proporcionado ya está en uso en el centro de desarrollo de. Sus opciones son: ○ Proporcionar un nuevo nombre de la editorial ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 37 Metodología De Desarrollo Aplicaciones Móviles ○ Disputar la utilización por otra persona si tiene los derechos sobre el nombre de la editorial. Compra de una suscripción Para adquirir una suscripción, se puede pagar con tarjeta de crédito o PayPal. Si usted es un estudiante y tiene una cuenta DreamSpark, seleccione la opción estudiante verificado DreamSpark para configurar una cuenta de Centro de Desarrollo gratuita (hay que confirmar su estado de DreamSpark primero). Si tienes un código promocional, redime al introducir el código en el campo. Configurar una cuenta de pago Para recibir dinero para su aplicación y las compras In-App, seleccione un método de pago. Después de seleccionar corriente o de ahorros, al introducir el nombre del titular de la cuenta, asegúrese de que es el mismo que el nombre de su cuenta bancaria. La vinculación del centro de desarrollo para PayPal es tan simple como proporcionar su dirección de correo electrónico de PayPal. Para obtener más información acerca del reembolso, ver Que me paguen para Windows Phone . Crear un perfil de impuesto Crear o editar su perfil tributario para vender aplicaciones de pago y productos in-app. Usted puede hacer esto durante el proceso de registro o en la sección de resumen de cuenta del Dashboard. Para obtener más información acerca de la configuración de su perfil tributario, ver Que me paguen para Windows Phone . Utilice pubCenter para crear aplicaciones ad-‐financiados Si desea crear aplicaciones ad-financiados, usted necesita tener una cuenta de pubCenter Microsoft Advertising. Si usted no tiene una cuenta pubCenter, puede inscribirse en uno de Dev Center. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 38 Metodología De Desarrollo Aplicaciones Móviles CONCLUSIONES El presente trabajo abarco: • El flujo de trabajo del desarrollo móvil. • Los puntos esenciales para crear aplicaciones móviles sin enfocarnos en una tecnología, lenguaje o plataforma en particular. • Las principales plataformas para la creación de aplicaciones moviles. Las herramientas son actualizadas en un promedio de 6 meses , pero la metodología o flujo se mantiene constante, quizá se agregue algún elemento o herramienta para simplificar o automatizar la tarea pero con la necesidad de realizarla. Por ejemplo en el bocetado, se puede sustituir el prototipado de papel por una herramienta que permite crear aplicación interactiva con los bocetos, cambia la forma de interactuar con ellos. Que puntos se deben destacar: ● Centrarse en las características concretas de la aplicación. ● Bocetar e iterar desde el inicio. ● Refinar estimación de tiempo/costos ● Seleccionar la plataforma y herramientas adecuadas al tipo aplicación. ● Adoptar prácticas de integración continua. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 39 Metodología De Desarrollo Aplicaciones Móviles GLOSARIO Application Programming Interface(API) Es el conjunto de funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. App Store App Store es un servicio para venta de aplicaciones creado por Apple Inc, que permite a los usuarios buscar y descargar aplicaciones informáticas desarrolladas para iPhone, el iPod Touch, el iPad, Mac OS X y publicadas por Apple. GUI La interfaz gráfica de usuario, conocida también como GUI (del inglés Graphical User Interface) es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Killer feature En terminología de marketing, una función única es cualquier atributo de un producto que, para un tipo particular de uso, llega a ser esencial para los usuarios debido a su utilidad. Esta característica supera con eficacia a los competidores del mercado. Look and Feel El aspecto y comportamiento de una interfaz gráfica de usuario(GUI de Graphical User Interface), es el conjunto de propiedades y características que le dan una identidad visual única y pueden ser percibidos de manera diferente de acuerdo con cada usuario.5 Milestone Marcador de próxima entrega en una etapa desarrollo iterativo de software. MVP Minimum Viable Product, es la versión mínima o reducida de una aplicación para ser comercializada. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 40 Metodología De Desarrollo Aplicaciones Móviles Stakeholder Quienes pueden afectar o son afectados por las actividades de una empresa Testflight Es un servicio que permite la distribución de aplicaciones de prueba en iOS Trello Es una herramienta que permite la organización de proyectos dentro de un tablero, permite saber en que esta trabajado cada miembro del equipo y las tareas a realizar. ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 41 Metodología De Desarrollo Aplicaciones Móviles BIBLIOGRAFÍA Apple. (n.d.). Developer Apple. From Apple Inc: https://developer.apple.com BlackBerry. (n.d.). Developer BlackBerry. From Developer BlackBerry: http://developer.blackberry.com Google Inc. (n.d.). Android Developers. From Android Developers: https://developer.android.com/index.html Microsoft. (n.d.). Developer Windows Phone. From Dev Windows Phone: http://dev.windowsphone.com Microsoft. (n.d.). Registro Windows Phone Dev. From Registro Windows Phone Dev: http://msdn.microsoft.com/en-‐ us/library/windowsphone/help/jj206719(v=vs.105).aspx MongoDB. (n.d.). From Wikipedia: http://es.wikipedia.org/wiki/MongoDB Proceso para el desarrollo de software. (n.d.). From Wikipedia: http://es.wikipedia.org/wiki/Proceso_para_el_desarrollo_de_software Representational State Transfer. (n.d.). From Wikipedia: http://es.wikipedia.org/wiki/REST ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA 42