Ante esta situación, y especialmente en el ámbito empresarial donde los móviles también han adquirido una presencia muy relevante, parece evidente que los profesionales de la seguridad han de anticiparse a los riesgos y adaptarse al rápido crecimiento de las amenazas provenientes de las aplicacionesmóviles, desde su desarrollo hasta el usuario final, llevando a cabo los controles necesarios para la adecuada y temprana detección de vulnerabilidades y posibles exploits que puedan comprometer la seguridad de datos en primer lugar y de sus negocios, por ende. El presente trabajo busca servir de guía en el proceso de auditoría de seguridad de las aplicacionesmóviles, de acuerdo con el reciente estándar de Verificación de Seguridad de AplicacionesMóviles (MASVS) 1.0, publicado por OWASP como un marco de requisitos de seguridad necesarios para diseñar, desarrollar y probar aplicacionesmóviles seguras.
La otra estrategia revisa que la funcionalidad de las aplicacionesmóviles derivadas sea la correcta; esto debe revisarse a causa del gran número de apps que pueden llegar a ser generadas. Para poder lograr esto se tiene que aprovechar la forma en la que están modelados los componentes de la aplicación: gracias a la alta granularidad que presentan las preguntas, se puede verificar el comportamiento de cada una por aparte, generando una app para cada una de ellas; como son totalmente independientes una de la otra (las preguntas), al momento de combinarlas en una sola aplicación no deben presentarse problemas.
El artículo “Las Apps más usadas por los mexicanos en 2016” (Universia, 2016), menciona que casi la mitad de los mexicanos poseen Smartphones y los usan la mayor parte del tiempo en aplicaciones, en un estudio realizado por ComScore obtuvo como resultado que las Apps más usadas por los mexicanos son en orden de preferencia: WhatsApp, Google Play, YouTube, Google Search, Face- book Messenger, Facebook, Google Calendar y Gmail. Las aplicacionesmóviles son una tendencia para las gen- eraciones digitales pues estas se han popularizado por que funcionan como herramientas para realizar tareas de todo tipo y así facilitar las actividades de quienes las usan.
- Listeners: son mensajes que producen notificaciones o cambios de estado, que al ser recibidos por actividades o servicios pueden levantar procesos. De esta forma se unen componentes dentro de la misma aplicación o de diferentes aplicaciones. Los Listeners son importantes para el de- sarrollo de aplicacionesmóviles, princi- palmente para las aquellas desarrolladas para dispositivos de pantalla táctil, los Listeners se emplean cuando ocurre algo en el código que está descrito (un evento) anteriormente, reaccionan mediante una acción determinada, por ejemplo si el Lis- tener en cuestión estuviera “escuchando” cuando se pulsa el botón “OK” cuando sea pulsado realizará las funciones que se le haya dicho que ejecute.
Abrahamsson [30], presenta una serie de características a tener en cuenta a la hora de desarrollar software para dispositivos móviles, como son, que el software es liberado en un ambiente incierto y dinámico con un alto nivel de competencia, los equipos que desarrollan aplicacionesmóviles son generalmente pequeñas y medias empresas. Las aplicaciones en sí son de pequeño tamaño, se entregan en versiones rápidas con el fin de satisfacer las demandas del mercado y se dirigen a un gran número de usuarios finales. El autor sugiere que en el desarrollo de aplicaciones de software para dispositivos móviles los equipos de desarrollo deben hacer frente al desafío de un entorno dinámico, con modificaciones frecuentes en las necesidades y expectativas del cliente [31], por tanto, deben ser desarrollados con enfoques orientados a ciclos de desarrollo relativamente cortos, propios de las metodologías ágiles para el desarrollo de software.
El alto número de dispositivos móviles presentes en el mercado en la actualidad y la gran diversidad de marcas que ofrecen este tipo de dispositivos han propiciado una gran evolución en el diseño de aplicacionesmóviles en un corto espacio de tiempo, haciendo que la complejidad del diseño de aplicaciones multiplataforma aumente. Pese a esto, se ha demostrado mediante la realización del marco de diseño de la interacción en aplicacionesmóviles que es posible encontrar similitudes y equivalencias tanto en las estructura de las aplicaciones como en los elementos empleados en el diseño de la interfaz a través de diferentes plataformas. Estos factores similares entre plataformas facilitan la labor de diseñadores y desarrolladores de aplicaciones durante el proceso de desarrollo.
El futuro de las aplicacionesmóviles basadas en la nube sin duda se ve interesante. En un informe de investigación en 2010, donde Juniper Research predice que los ingresos debido a aplicacionesmóviles basadas en la nube esta en alcanza y crece cada vez mas. Esta previsión de crecimiento se debe en gran medida a varios factores, incluyendo la adopción y la cobertura cada vez mayor de la banda ancha móvil, y tecnologías como HTML5, entre otras. En la actualidad la mayoría de los usuarios móviles tienen acceso a servicios como Gmail (servicio de correo) mediante aplicaciones disponibles para varios sistemas operativos móviles, representando el mejor ejemplo de Mobile Cloud Computing y que esta disponible hace ya un tiempo. Todos los correos electrónicos son almacenados en los servidores de Gmail y todo el procesamiento se realiza en la nube, mediante esta aplicación se cuenta con una interfaz inteligente en la pantalla del teléfono desde donde el usuario ingresa comandos. El procesamiento de dichos comandos se realiza en los servidores de Gmail y el resultado se muestra en la pantalla del teléfono móvil, ya sea mediante una aplicación instalada en el dispositivo o mediante un browser. "La música de la nube" es otro ejemplo revolucionario donde sigue el concepto de "música en cualquier lugar", que permite a los usuarios tener acceso a sus colecciones de música en cualquier parte del mundo gracias al Mobile Cloud Computing. La música en la nube y el streaming es el futuro previsto del paradigma Mobile Cloud Computing.
Resumen: El presente trabajo muestra un proyecto de desarrollo tecnológico aplicado a la enseñanza de las ciencias en los niveles superior y medio superior, mediante la implementación de aplicacionesmóviles. Esto con tres objetivos claros: interesar a los alumnos por el aprendizaje; crear objetos de aprendizaje completamente diferentes a los tradicionales e integrar el conocimiento a las actividades cotidianas.
Tal como hemos visto en el punto cuatro de éste documento, el apartado fuentes de divulgación y en concreto con las datos estadísticos observados del comportamiento de los usuarios, éstos se interesan en leer los comentarios de una aplicación para decidir si descargarla o no. Éste comportamiento de contraste en los productos o servicios lo podemos observar extrapolado a muchos otros sectores como en la compra online (comentarios en los productos, como en Amazon), cine (estrellas sobre la calidad de una película, como en la URL de metacritic o bien en revistas del sector), restauración (opiniones sobre un restaurante, como en tripadvisor) entre muchos otros. Y es que para los usuarios, éste contraste es importante a la hora de decidir si comprar o no comprar, usar o no usar. Éste concepto, tal como hemos visto anteriormente, podría extrapolarse a la seguridad de las aplicacionesmóviles, así pues, con una nota sobre la seguridad de una aplicación, podría servir para informar al usuario sobre si el aplicativo es seguro, es seguro pero con menciones o bien es totalmente inseguro.
El desarrollo de aplicacionesmó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.
Si al incremento de móviles, le añadimos el hecho de que las personas en el día a día se están acostumbrando al uso de aplicacionesmóviles para facilitar ciertos aspectos de sus vidas, o como forma de entretenimiento (juegos, chats, publicar fotos, etc.), el resultado es que en los últimos años se ha producido un incremento de aplicaciones en el mercado de sus correspondientes plataformas. En este estado del arte trataremos sobre el desarrollo actual de aplicacionesmóviles, centrándonos en cada uno de los tipos de desarrollo de aplicacionesmóviles que existen actualmente, su funcionamiento, así como algunos de los frameworks mas usados actualmente en cada uno de los tipos de desarrollo.
Algunos trabajos como los que se proponen en [15], [16], [17] y [18] plantean pruebas para aplicacionesmóviles usando la separación de concerns (AOP), los primeros no consideran el contexto móvil, mientras que el último captura solo ciertos datos contextuales mediante los sensores del dispositivo móvil, ninguno tiene en cuenta la flexibilidad cuando se desea configurar la prueba para varios dispositivos.
Algunos servicios de este tipo son StackMob, Parse, Kinvey o Appcelerator. El uso de este tipo de sistemas permite prescindir para la persistencia de datos de la aplicación un sistema gestor de base de datos y el desarrollo de webservices que comuniquen la aplicación con dicho sistema. Configurar y desarrollar este tipo de modelo de persistencia de datos suele resultar costoso. Para los desarrolladores de aplicacionesmóviles resulta un ahorro en tiempo y consecuentemente coste, ya que la mayoría de Baas siguen un modelo freemium, por lo que sólo se paga por determinadas características o si se superan ciertos umbrales de uso. Resultan adaptables a las necesidades habituales de un desarrollo de este tipo por lo que resultan una buena opción para todo tipo de desarrollos.
Por último, las aplicacionesmóviles también generan innovación, ya que promueven y facilitan la invención y la producción de nuevos servicios, productos o procesos en el ámbito gerencial. Los ejemplos son comunes, desde el uso de “Skype” para concertar una reunión con tus subordinados, hasta la banca móvil para cancelar sueldos y salarios, tendencias que están modificando la gerencia tanto en áreas rurales como urbanas de Latinoamérica.
La necesidad que se intenta resolver es la de construir aplicacionesmóviles para el dominio de Administración de Emergencias, usando un Generador de Código basado en los componentes reutilizables de la aplicación Mapa Móvil. Es por esto que pensando en las necesidades del proyecto surgieron los primeros requisitos que se modelaron en casos de usos, otros requisitos surgieron debido al diseño de la aplicación Mapa Móvil, que permite modificar ciertos parámetros los cuales fueron incluidos y finalmente surgieron requisitos relacionados con la configuración del proyecto. Esto se debe a que de manera complementaria se podrá en el futuro modificar la aplicación Generador App, para crear otra aplicación o conjunto de aplicaciones Android usando como base este Generador pudiendo cargar otro proyecto Android configurando previamente sus dependencias.
Con una mirada desde el trabajo social, se plantea en el documento cómo los nuevos movimientos sociales, sumado al auge de la tecnología e internet, han abierto el camino para la entrega de soluciones que facilitan el desplazamiento de las personas de un lugar a otro, ofreciendo en el mercado del transporte distintas aplicacionesmóviles que acercan al usuario a formas no tradicionales de satisfacer sus necesidades. Sin embargo, se plantea la discusión en torno a si se trata de un consumo colaborativo o un beneficio económico para el desarrollador de la plataforma, generando inclusive un escenario de competencia desleal para los operadores de servicio público tipo taxi, llegando al punto de que en distintas autoridades se ha considerado como ilegal el servicio a través de estas plataformas. (Orden, 2014)
Tanto Google como Apple requieren que las aplicaciones publicadas en sus tiendas estén firmadas para identificar al autor de la aplicación y verificar que todas las actualizaciones provienen de una fuente fiable. Para poder firmar el código, necesitamos un certificado. La manera de obtener un certificado válido depende de la plataforma. En Android, solo tenemos que generar una keystore usando, por ejemplo, la herramienta Java Keytool de línea de comandos. Para iOS, necesitamos obtener el certificado directamente de Apple inscribiéndonos en su programa de desarrolladores de iOS y registrando un identificador para la aplicación.
Y finalmente, ya en 1999, se vuelve a cerrar el ciclo que lleva a Sun a desarrollar una versión de Java especialmente diseñada para dispositivos móviles: Java 2 Micro Edition, basada en una máquina virtual llamada KVM. Este primera versión sólo contenía una única máquina virtual y un único API (inicialmente diseñados para Palm OS), hecho que puso de manifiesto la insuficiencia de esta solución para la gran variedad de dispositivos diferentes. De esta forma, en el año 2000, nació la primera versión de una configuración, es decir, el Connected Limited Device Configuration (J2ME CLDC 1.0). Una configuración ofrece el API básico para
En esta sección, se dene formalmente el lenguaje de modelado presentado en la sección anterior, así como la construcción de ujos de comportamiento de usuario signicativos a partir de un modelo. Se formaliza el uso de las Apps a través de la composición de máquinas de estados a tres diferentes niveles de abstracción. Las máquinas de estados de las vistas están en el nivel más ba- jo y representan el comportamiento de un usuario sobre una pantalla de un dispositivo. Los usuarios pueden interactuar con la interfaz de una vista en el dispositivo y, como consecuencia, se disparan eventos de usuario. En ocasiones alguno de estos eventos provoca que una vista distinta se muestre en la pantalla del dispositivo. Estas transiciones entre las vistas se han modelado utilizando una relación de composición binaria entre las máquinas de estados de vista, a partir de las cuales se construyen las máquinas de estados de dispositivo. Las máquinas de estado de vistas utilizan estados de conexión para cambiar de la vista actual a otra distinta. En esta formalización no se tiene en cuenta si ambas vistas pertenecen o no a la misma aplicación (debido a que las máquinas de es- tados de cualquier tipo se relacionan entre sí aunque no pertenezcan a la misma aplicación). Finalmente, el tercer nivel corresponde a la ejecución concurrente de máquinas de estados de dispositivo. En este nivel se asume que diferentes dispositivos móviles se están ejecutando simultáneamente y, además, que inter- actúan a través de las aplicaciones. En contraste con las máquinas de estado de vistas, las máquinas de estado de dispositivo se componen entrelazando y sincronizando sus transiciones.
Aplicaciones Nativas: Son aquellas que se desarrollan para un sistema operativo específico (iOS, Android, etc.). Algunas ventajas de estas aplicaciones, es que están totalmente integradas con el dispositivo para el cual se crearon, pudiendo hacer uso total de las distintas características como el GPS, 3D Touch, cámara, acelerómetro, entre otros. No requieren conexión web para ser ejecutadas y están más expuestas a público al ser distribuidas en los distintos Stores de cada sistema operativo.