PLATAFORMAS PARA EL DESARROLLO DE APLICACIONES ...

46 downloads 4989 Views 505KB Size Report
lución, en el desarrollo de tecnología mó- vil, el surgimiento ..... matic Book-shelf. [2]. J. T. Girones, El Gran Libro de. Android. Marcombo, 2011. [3]. Earl Oliver.
PLATAFORMAS PARA EL DESARROLLO DE APLICACIONES MÓVILES Miguel Alfredo Bustos, Norma Beatriz Perez y Mario M. Berón Departamento de Informática / Facultad de Ciencias Físico Matemáticas y Naturales / Universidad Nacional de San Luis Ejercito de los Andes 950, D5700HHW San Luis, +54-0266 4520300 - Int. 2102 {mabustos, nbperez, mberon}@unsl.edu.ar

Resumen

Contexto

En los últimos años, la constante evolución, en el desarrollo de tecnología móvil, el surgimiento de nuevos modelos de negocio en particular a través de la Web, y la creciente demanda social de un mayor y mejor acceso a la telefonía móvil hace que los profesionales capaces de desarrollar para estos mercados sean cada vez más cotizados. Esto ha catapultado el intéres, por este mercado móvil, de un amplio grupo de compañias prestigiosas como Apple, Google, Microsoft, Motorola, Sony, entre otras. Estas compañias invierten en el desarrollo de hardware y software que dan soporte a estas nuevas tecnologías inteligentes. Esto ha llevado a que se abra un abanico de oportunidades prometedoras para desarrolladores que deseen realizar aplicaciones para estos dispositivos (como télefonos inteligentes, relojes, tablets, Google TV, entre otros) que sean competitivas en este mercado de vanguardia.

La línea de investigación descripta en este artículo se encuentra enmarcada en el contexto del proyecto de investigación: “Ingeniería del Software: Aspectos de Alta Complejidad Sensibilidad en el Ejercicio de la Profesión de Ingeniero de Software", que se desarrolla en la UNSL. Dicho proyecto, es reconocido por el programa de incentivos y es la continuación de diferentes proyectos de investigación de gran éxito a nivel nacional e internacional. Es relevante mencionar que está línea de investigación es coordinada por el Área de Programación y Metodologías de Desarrollo de Software perteneciente a la UNSL.

En este artículo, se describe una línea de investigación cuyo objetivo principal es el estudio de plataformas de desarrollo de aplicaciones móviles y de sus tecnologías asociadas. Palabras clave: Plataforma de Desarrollo, Tecnologías Asociadas

1. Introducción Los usuarios de los dispositivos móviles le han dado la bienvenida, a nivel mundial, a esta nueva tecnología móvil que se considera como un medio innovador que surge para mejorar las comunicaciones entre los usuarios. Desde las primeras apariciones de los dispositivos móviles; ellos han evolucionado progresivamente mejorando en: diseño, tamaño, peso, funciones de procesamiento de sonido, video y comunicación, además de proveer un amplio y diverso conjunto de aplicaciones que intentan cubrir los requeri-

mientos de los usuarios que cada vez son más exigentes y difíciles de satifacer. Los dispositivos móviles han producido cambios a nivel cultural, social y económico. Estos cambios se deben a la necesidad de satisfacer las exigencias de los usuarios en el mercado móvil. Se considera que la mayor evolución de ellos, hasta el momento, han sido los dispositivos móviles inteligentes o smartphones y tablets. En esencia, estos tipos de dispositivos son computadoras que están compuestas por una memoria en la que los programas y/o datos pueden ser almacenados; poseen unidades lógicas aritméticas las cuáles reciben información del usuario a través de un teclado y exhiben la información a través de una pantalla de alta resolución. Actualmente, el mercado de los smartphones y tablets está creciendo a un ritmo vertiginoso. Esta tendencia es muy marcada en los jóvenes y hasta inclusive en la población de bajos recursos económicos. Por esto, las compañias tales como Google, Apple y Microsoft hoy invierten gran parte de su capacidad de producción en el desarrollo de hardware y software para los dispositivos móviles de última generación. Los ejes fundamentales de este artículo se centran en las investigaciones descriptas en las subsecciones que se detallan a continuación. 1.1 Sistema Operativo El software provisto en los smartphones, tables, etc. se ejecuta bajo un SO, siendo está una característica que los distinguen de los teléfonos celulares comunes. Existen diferentes SOs, cada uno soportados por un grupo de fabricantes. Se destacan: Phone: soportado por Apple. IOs: desarrollado y distribuido por Apple.

BlackBerry: utilizado por los teléfonos BlackBerry desarrollado por RIM (Research in Motion). Symbian: soportado por Panasonic, Siemens AG, Nokia y Sony-Ericsson. Este SO desciende de EPOC, empleado en las antiguas computadoras de bolsillo Psion. Windows Phone: desarrollado por Microsoft como sucesor de la plataforma Windows Mobile. Android [1]: patrocinado principalmente por Google. Además, de la participación de empresas: Intel, Nvidia, eBay, Qualcomm, Sony y Motorola. Ellas se asociaron en el 2007 bajo el nombre de Open Handset Alliance. Es importante mencionar que el código que forma el SO Android también ha recibido contribuciones de desarrolladores especializados, en todo el mundo, ya que es un software de código abierto.

La arquitectura de Android [2] se encuentra organizada en capas como se puede observar en la Figura 1. Donde se destacan las capas de: - Linux Kernel: Android depende de Linux para los servicios base de sistema como seguridad, administración de memoria, red, multiproceso, stack de protocolos, etc. - Librerías: incluye un conjunto de librerías: C/ C++ que pueden utilizar los desarrolladores a través del framework de las aplicaciones Android. Algunas son: System C library, librerías de gráficos 3D, SQLite, etc. - Runtine de Android: incorpora un conjunto de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La Máquina Virtual (MV) está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al formato .dex (Dalvik ejecutable). - Framework de Aplicaciones: los desarrolladores tienen acceso completo a los mismas APIs del framework utilizadas por

l a s ap l i c a c ion e sb a s e .P ropo r c ion a un a p l a t a fo rm ad ed e s a r ro l lol ib r ep a r afunc ion e s como :s en so r e s ,l o c a l i z a c ión po r GPS ,e t c. - Ap l i ca c ion e s:la sap l i c a c ion e sd e s a r ro l l ad a sconl ap l a t a fo rm a And ro id ,in c lu y en :unc l ien t ed eem a i l ,c a l end a r io ,p ro g r am ad eSMS ,m ap a s ,n av eg ado r ,con t a cto s ,ya lguno so t ro ss e rv i c io sb á s i co s .To d a sl a sap l i c a c ion e ssone s c r i t a sene ll engu a j ed ep rog r am a c iónJ av a .C ad aap l i c ac ións ee j e cu t asob r esup rop i a MV .

F igu r a1 :A rqu i t e c tur ad eAnd ro id

1 .2P la ta fo rmad eD e sa r ro l lo Ex i s t eunamp l ioyd iv e r socon jun tod e p l a t a fo rm a s móv i l e s[ 3,4]ene lm e r c ado d elo sd i spo s i t ivo s móv i l e s .S inemb a rgo , noh anlog r adoequ ip a r a r s eal ap l a t a fo r m aAnd ro id . And ro id e sun ap l a t a fo rm ad ecód igo ab i e r to ,d ep rodu c c ión m a s iv a .P e rm i t ea lo sd e s a r ro l l ado r e sd e lm e r c ado móv i l c r e a rf á c i lm en t eap l i c a c ion e s yqu elo s u su a r io spu ed anin s t a l a rap l i c a c ion e sd e m an e r as imp l ey r áp id a .S in emb a rgo , p e rm i t i rqu elo su su a r io spu ed anin s t a l a r ap l i c a c ion e sd et e r c e ro sat r av é sd eAnd ro id M ark e t[5 ]od el at i end ad e Am a -

zon App[6 ] ,en t r eo t r a sex i s t en t e s ,p l an t e as e r io sp rob l em a sd es egu r id ad[ 7] . L a sap li c a c ion e sb a s ad a sen And ro id e j e cu t ansob r eun aMV D a lv ik .D e sd eun pun tod ev i s t aco n c ep tu a l ,D a lv i ke ss im i l a ral a MVJVMu t i l i z ad ap a r ae j e cu t a r p rog r am a se s c r i to sene ll engu a j ed ep ro g r am a c iónJ av a . La sap l i c a c ion e sd em ayo rpopu l a r id ad p a r al ap l a t a fo rm aAnd ro idsonlo sv id eo g am e scomoe lT e t r i s ,a j ed r e z ,e t c .O t r a s ap l i c a c ion e sb a joe s t ap l a t a fo rm ason m á s comp l e j a sd adoqu e imp l i c anl acomu n i c a c iónconlo ss e rv ido r e s ,u sod ein t e l i g en c i aa r t i f i c i a lyp ro c e s am i en tog r á f i co . O t r a sap l i c a c ion e s ,p e rm i t e nalo sd e s a r ro l l ado r e su t i l i z a r ,po re j emp lo ,l a AP I d em a p a sd eGoog l e,ab r i éndol apo s ib i l i d add ec r e a rd i f e r en t e st ipo sd es e rv i c i o d eg eo lo c a l i z a c ióncu andoe s t a s AP I ss e comb in ancone ls e rv i c iod eGPSd i spon i b l eenv a r io sd i spo s i t ivo s. Ad em á s , An d ro idp ropo r c ion aa ld e s a r ro l l ado run m a yo rcon t ro lsob r el a sd iv e r s a sfun c ion a l i d ad e sd e ld i spo s i t ivo móv i l ,t a l e sc o mo : l al i s t ad econ t a c to s ,e lr e c ep to rd el l am a d a s ,e ls i s t em ad ea r ch ivo s ,en t r eo t r a s . Tod a se s t a s fun c ion a l id ad e spu ed en s e r in t eg r ad a senap l i c a c ion e se l eg an t e syf á c i l e sd ec r e a r ,g r a c i a sal ap l a t a fo rm ad e d e s a r ro l lo mod e rno d i spon ib l es p a r ae l d e s a r ro l l ado r . L a sap l i c a c ion e sAnd ro ids ecom e r c i a l i z an ,g en e r a lm en t e on l in e .H ayv a r io s m e r c ado sv i r tu a l e s , dond ee s t a sap l i c ac ion e ss epu ed e nadqu i r i r .E lm á sg r and e ypopu l a ren t r ee l lo se s Goog l eP l ay .Lo s d e s a r ro l l ado r e spu ed eno f r e c e rsu sap l i c a c ion e sene s t es i t io W eb ,m ed i an t ee lp a god eun at a r i f aún i c a.E s t apo s ib i l id add e com e r c i a l i z a rl a sap l i c a c ion e sab a joco s toyd efo rm ag lob a le sl ac r e a c iónd eun nu evo mod e lod en ego c iop a r al aindu s t r i ad et e cno log í a si n t e l ig en t e s .

1.3 Características de una Aplicación Móvil Para el desarrollo de una aplicación Android, Google a creado una estructura cuyas componentes más importantes son: - Activity: una actividad es la componente principal encargada de mostrar al usuario la interfaz gráfica, es decir, una actividad es el equivalente a una ventana, y es el medio de comunicación entre la aplicación y el usuario. Por ejemplo, una aplicación para una lista de cosas por hacer (remember the milk) puede tener una actividad para ingresar las cosas por hacer y otra actividad para mostrar el listado, en conjunto estas actividades conforman la aplicación. Se define una actividad por cada interfaz del proyecto. Los elementos que se exhiben en ella deben ser definidos en el archivo .xml que llevan asociado para poder ser tratados en la clase NameActivity.class, que hereda de la clase Activity. - 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 desarrollo de aplicaciones móviles, principalmente 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 Listener 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.

- Views: son los componentes de la interfaz de usuario, diferentes vistas pueden agruparse a través de grupos logrando una jerarquía, esto se logra a través de la disposición de los componentes a través de un archivo XML.

- Service: son componentes que ejecutan operaciones en segundo plano y no tienen una interfaz de usuario. Por ejemplo, al escuchar música, hay un servicio encargado de la reproducción que se ejecuta de fondo y la aplicación que se manipula le manda mensajes a este servicio diciendo que se detenga, pause o reproduzca la siguiente canción. - Content Provider: para almacenar información en este SO se hace mediante bases de datos, pero cuando lo que se quiere es compartir la información para que otras aplicaciones la usen, se utilizan los content provider, esta clase tiene métodos estándares que hace que las aplicaciones puedan consultar, guardar, o modificar la información general de las aplicaciones. - Manifest: el archivo AndroidManifest.xml es donde se configura la aplicación, se agregan actividades, asignan permisos, etc. - Broadcast Receivers: son componentes que responden a avisos y anuncios de difusión (broadcast). Estos avisos provienen del sistema (batería baja, una llamada entrante, etc.) y de aplicaciones (pasando avisos de una aplicación a otra). Aunque no muestran una interfaz de usuario algunas veces utilizan barras de progreso para mostrar avances. Estos se activan a través de mensajes asincrónicos llamados Intents.

3. Líneas de Investigación, Desarrollo e Innovación La línea de investigación que sigue este artículo se fundamenta en adquirir experiencia en plataformas para desarrollo de aplicaciones móviles. El avance en la investigación realizada por este equipo, hasta el momento, involucra a los siguientes ejes principales que son descriptos a continuación de manera sucinta.

- Sistemas Operativos: a fin de estudiar y/o analizar la diversidad de los SOs en el mercado y como ellos son empleados para el soporte de este tipo de aplicaciones. En particular se ha estudiado el SO Android. - Plataformas de Desarrollo: este estudio permitió detectar las diferentes plataformas, tipos de aplicaciones móviles que soportan, detección de simplicidad en cuanto al manejo de las plataformas por los desarrolladores y si las mismas son eficientes. - Características de una Aplicación Móvil: el estudio de ellas en fundamental para conocer las componentes de relevancia a la hora de desarrollar aplicaciones.

Lo antes mencionado, permitirá beneficiarse de una mayor comprensión del dominio del problema. Donde otro eje importante de estudio se basa en los lineamientos, contratos, entre otros que una aplicación debe satisfacer a fin de que la misma sea competitiva en el mercado de las tecnologías móviles.

4. Resultados y Objetivos En este artículo, se ha estudiado el SO Android, la plataforma de desarrollo para aplicaciones Android, explorando las componentes del SO y las características básicas de una aplicación. Esta línea de investigación realizará un análisis exhaustivo de los ejes propuestos en este artículo, para luego poder generar aplicaciones que satisfagan las exigencias de los consumidores de estas tecnologías.

5. Formación de Recursos Humanos El equipo de profesionales de la UNSL que forman parte de la línea de investigación descripta en este artículo, se encuentran dedicados a la captura de alumnos que pretendan desarrollar tesinas de: Ingeniería en Informática, Ingeniería en

Computación, Licenciatura en Ciencias de la Computación, y en un futuro próximo, tesis de postgrado. En particular, los trabajos desarrollados en este artículo forman parte del lineamiento inicial de una tesina para optar al grado de Ingeniero en Computación en la UNSL.

6. Referencias [1]. Ed Burnette. 2009. Hello, Android: Introducing Google's Mobile Development Platform (2nd ed.). Pragmatic Book-shelf. [2]. J. T. Girones, El Gran Libro de Android. Marcombo, 2011. [3]. Earl Oliver. "A Survey of Platforms for Mobile Networks Research". ACM SIGMOBILE Mobile Computing and Communications Review, Volume 12, Issue 4, October 2008. [4]. L. Munar, J. Polania, and A. Davalos, "Using Android platform in vertical handoff research, " in Communications Conference (COLCOM), 2012 IEEE Colombian, may 2012, pp. 1 -6 [5]. Android Market. http://www.android.com/market/. [6]. Amazon Appstore for Android. http://www.amazon. com/mobileapps/b?ie=UTF8&node=2350149011 [7]. Asaf Shabtai, Yuval Fledel, Uri Kanonov, Yuval Elovici, Shlomi Dolev, and Chanan Glezer. 2010. Google Android: A Comprehensive Security Assessment. IEEE Security and Privacy 8, 2 (March 2010), 3544.