Soluciones de Programación — Soluciones de Programación Móvil
© Politécnico Indoamericano 2015
Soluciones de Programación Móvil
Tabla de Contenido
1. Arquitectura de las aplicaciones Móviles 2. Programación basada en Android Studio 3. Programación basada en Xcode
Objetivo
Proporcionar una metodología que pueda ser utilizada en el desarrollo de aplicaciones móviles, utilizando las herramientas ofrecidas por diversos software libres
© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
1
Soluciones de Programación Móvil
1. Arquitectura de las Aplicaciones Móviles A diferencia de las computadoras “tradicionales”, los dispositivos móviles tienen características particulares que incluyen:
Duración limitada de la batería.
Posible tamaño pequeño de la pantalla.
Conectividad intermitente.
Posibilidad de que el dispositivo se pierda fácilmente.
Posibilidad de realizar cálculos demandantes.
Variedad de sensores que permiten recolectar información.
Acceso a infraestructura que facilita la instalación y actualización de aplicaciones (mercados de apps).
Los puntos descritos previamente aunados al hecho de que los dispositivos móviles están siempre a la mano, ha dado lugar a distintos tipos de aplicaciones con drivers particulares. Recordemos que en el contexto de arquitectura de software, los drivers, se refieren a los requerimientos que influyen en el diseño de la arquitectura. Estos drivers generalmente incluyen requerimientos funcionales primarios, atributos de calidad y restricciones. 1.1 Tipos de aplicaciones
Hoy en día podemos considerar tres categorías de aplicaciones móviles:
a. La primera categoría son las típicas aplicaciones (apps) que instalamos en dispositivos móviles tales como los teléfonos inteligentes y tabletas a través de un mercado de apps. Esta categoría de aplicación tiene la particularidad de que generalmente se ejecuta de forma aislada en el dispositivo y, si se comunica con recursos externos, simplemente lo hace para acceder a información que no se tiene en el dispositivo.
© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
2
“Debemos tener presente que el éxito de las aplicaciones depende de que los usuarios las puedan encontrar fácilmente”
Soluciones de Programación Móvil
b. La segunda categoría se refiere a las aplicaciones donde el dispositivo móvil se vuelve una extensión a los sistemas empresariales. En esta categoría, el dispositivo es parte del sistema y, en cierta forma, podríamos pensarlo como la interfaz de usuario con el mismo. Por las características descritas previamente de los dispositivos móviles, esta interfaz de usuario es distinta al enfoque tradicional con el que se interactúa con los sistemas empresariales que es generalmente a través de un navegador. c. La tercera categoría es cuando se utilizan los dispositivos móviles como colectores de información aprovechando todos los sensores que tienen, tales como GPS, acelerómetro, etc. Esta categoría se podría considerar como una extensión de los sistemas empresariales pero con una función muy específica enfocada a la colecta de información. 1.2 Drivers arquitectónicos Existen drivers específicos dependiendo del tipo de aplicación móvil. En el primer tipo de aplicaciones (las apps), el driver principal es una restricción de tiempo de entrega. Estas son aplicaciones de muy corta vida que duran unos pocos días en el “top 10” de los mercados de apps y después desaparecen.
En el segundo tipo de aplicaciones, es decir la extensión de los sistemas empresariales, a nivel funcional generalmente es necesario considerar que los casos de uso del sistema deben poder ser realizados tanto a través de un cliente tradicional (navegador) como de la aplicación móvil. En este tipo de aplicaciones, la conectividad variable es algo que debe tomarse en cuenta y esto puede requerir que se almacenen datos de forma local y que se tenga que lidiar con cuestiones de sincronización de datos. El almacenar datos de forma local requiere, sin embargo, considerar además aspectos relacionados con la seguridad por la información, posiblemente confidencial, que se maneja.
© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
3
Soluciones de Programación Móvil
En el tercer tipo de aplicaciones, es decir cuando se usan los dispositivos móviles como sensores que colectan datos, puede haber atributos de calidad relacionados con aspectos tales como la privacidad. De forma general, todos los tipos de aplicaciones se benefician de la infraestructura de mercados de apps que facilita la instalación y actualización de las mismas. 1.3 Arquitectura y aplicaciones móviles
Figura 1. Grafico representativo Arquitectura Móvil Citado de: http://www.bluwimovil.com/casos-estudio.php Actualmente el mercado móvil todavía depende mucho de la restricción de tiempos de entrega rápidos y generalmente el desarrollo del primer tipo de aplicaciones descrito previamente no se preocupa tanto por la arquitectura. El considerar realizar diseño de arquitectura podría aportar muchos beneficios al desarrollo de aplicaciones móviles. Se puede pensar por ejemplo en generar líneas de productos y establecer frameworks robustos para el desarrollo, lo cual permitiría generar aplicaciones más rápido y además de mejor calidad. Por otro lado, en las aplicaciones que son extensiones de los sistemas empresariales, la arquitectura juega un papel fundamental para poder cubrir con los drivers que se mencionaron previamente.
© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
4
Soluciones de Programación Móvil
Los métodos de desarrollo de arquitectura, tales como QAW, ADD o ATAM, se pueden aplicar sin necesidad de ajustes en el desarrollo de aplicaciones móviles. Lo que posiblemente diferirá al utilizarlos son aspectos tales como los drivers, pues los escenarios que se identifican difieren de los que ocurren en aplicaciones más tradicionales. Un ejemplo de ello podría ser un escenario de seguridad: “Se extravía un dispositivo móvil en el cual se descargó información confidencial y un usuario malintencionado intenta extraerla”. En el contexto de las aplicaciones móviles, se debe pensar en los mismos atributos de calidad que los de las aplicaciones tradicionales pero considerando los aspectos propios de los dispositivos móviles. Un ejemplo de ello es la usabilidad, que en el contexto de las aplicaciones para dispositivos móviles debe considerar, por ejemplo, el tamaño reducido de las pantallas. 1.4 Relación con el cómputo en la nube y SOA Cuando hablamos de tecnologías móviles, difícilmente las podemos disociar del cómputo en la nube y la Arquitectura Orientada a Servicios (SOA). La combinación de tecnología móvil y cómputo en la nube resulta en algo que hoy en día se conoce en inglés como “Mobile Cloud Computing”. Al igual que con los tipos de aplicaciones, dentro de esta intersección de las tecnologías, podemos considerar tres variantes:
a. Cuando se utiliza el dispositivo móvil como un mecanismo para acceder a los recursos de la nube. Por ejemplo cuando se utiliza el teléfono para acceder a una aplicación tal como Google maps. Esto usualmente corresponde al primer tipo de aplicación del que se habló previamente. b. Lograr que un dispositivo móvil pueda asignar tareas a otros dispositivos móviles cercanos como si fueran recursos de la nube. Por ejemplo, si se tiene una tarea muy complicada entonces se puede repartir cálculos a varios dispositivos cercanos. c. El “cyber-foraging” y se refiere a descargar parte del trabajo de cálculo del dispositivo móvil a máquinas más poderosas para evitar, por ejem© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
5
Soluciones de Programación Móvil
plo, un consumo excesivo de batería. En este enfoque, la nube se ve como una extensión del dispositivo móvil, independientemente de si los cálculos se realizan en la nube en sí o bien en servidores más cercanos.
Respecto a SOA, esta tecnología y el cómputo en la nube tienen mucho en común: el cómputo en la nube puede ser visto como una plataforma de implantación para aplicaciones que se desarrollan bajo el paradigma SOA. Por otro lado, el utilizar servicios es un mecanismo para facilitar la conexión entre los dispositivos móviles y las aplicaciones empresariales. 2. Programación Basada en Android Studio El desarrollo de aplicaciones para Android se ha convertido en clave de cara al futuro, debido a la cantidad de smartphones y tablets que se encuentran con este sistema operativo. Sin embargo, desarrollar aplicaciones para Android no es nada fácil si no contamos con una base clara. Para ayudarnos, contamos con una herramienta muy útil, Android Studio ¿Qué es Android Studio? Es un IDE, una interfaz de desarrollo. En realidad, es una especie de escritorio de trabajo para un desarrollador. Allí se encuentra nuestro proyecto, las carpetas del mismo, los archivos que hay en él, y todo lo necesario para acabar creando la aplicación. Lo mejor de Android Studio es que ha sido creado por Google y fue presentado hace tan solo unos meses, por lo que no hablamos de una herramienta antigua y nada depurada, sino de un programa muy moderno que encima ha sido creado por los mismos que han creado el sistema operativo.
Entre otras cosas, cuenta con algunas herramientas que nos facilitarán mucho el desarrollo de las aplicaciones, como por ejemplo el poder previsualizar las aplicaciones en diferentes smartphones y tablets para saber cómo está quedando el código que nosotros estamos editando, y cómo se ve en los diferentes tipos de pantalla que existen. Este nuevo programa, © Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
6
Soluciones de Programación Móvil
además, nos ayudará a dejar nuestra aplicación lista para publicar. Aunque las aplicaciones de Android se escriben en lenguaje Java, lo cierto es que después hay que compilarlas para que quede un único archivo .apk. Este último paso es muy simple con Android Studio. Digamos, que el nuevo IDE ahora es mucho más familiar y fácil de usar de lo que era el SDK con el que contaba Google antes.
Figura 2. Icono Android Studio Citado de: http://www.lynda.com/articles/eclipse-into-android-studio Características de Android Studio: a. Android Studio ha pasado a ser el entorno recomendado para el desarrollo de aplicaciones en Android, al tratarse de un IDE oficial de Google en colaboración con JetBrains (compañía de desarrollo software especializada en diseño de IDEs) b. Android Studio permite la creación de nuevos módulos dentro de un mismo proyecto, sin necesidad de estar cambiando de espacio de trabajo para el manejo de proyectos c. Con la simple descarga de Android Studio se disponen de todas las herramientas necesarias para el desarrollo de aplicaciones para la plataforma Android. d. Herramientas Lint para detectar problemas de rendimiento, usabilidad, compatibilidad de versiones, y otros problemas. e. Plantillas para crear diseños comunes de Android y otros componentes.
© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
7
Soluciones de Programación Móvil
Descarga e Instalación de Android Studio Vamos a describir la instalación del IDE Android Studio, en este caso en la plataforma Windows.
Los pasos necesarios para dicha instalación son los siguientes: en primer lugar se deberá descargar Android Studio para la plataforma acorde a nuestras necesidades. Para el ejemplo que mostraremos a continuación se realizará sobre Windows 8.1 64 bits. La descarga de Android Studio se puede realizar a través del siguiente enlace: http://developer.android.com/sdk/index.html
Figura 3. Centro de Descarga Oficial Android Studio Citado de: http://developer.android.com/sdk/index.html#top Una vez descargado, se deberá localizar el archivo ejecutable, al que se podrá acceder a través de la ruta: Directorio local pc > android-studio > bin y seleccionaremos la arquitectura del microprocesador (studio.exe correspondiente a la arquitectura de 32 bits o studio64.exe perteneciente a 64 bits).
Además de la descarga de Android Studio, también será necesario descargar Java SDK 7 o superior. A través del siguiente enlace es posible descargar Java SDK 8 para cualquier plataforma:
© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
8
Soluciones de Programación Móvil
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads2133151.html
Tras la instalación del SDK de Java, y la localización del ejecutable de Android Studio, simplemente se deberá realizar doble click sobre el archivo con extensión .exe para acceder a la pantalla de bienvenida de Android Studio.
Figura 4. Pantalla de bienvenida de Android Studio Citado de: http://usagikorokami.blogspot.com.co/2015/05/entorno-dedesarrollo-android-android.html Después de finalizar la instalación, el equipo se encuentra listo para desarrollar la primera app con Android Studio 3. Programación Basada en Xcode Hoy en día la tecnología está muy presente en nuestras vidas y la mayoría de nosotros utilizamos varias aplicaciones a lo largo del día. Consultar las redes sociales, ver qué tiempo va a hacer, gestionar nuestro correo electrónico, mandar un mensaje instantáneo… estas son sólo algunas de las aplicaciones que tenemos en nuestro tablet o smartphone pero, ¿alguna vez te has preguntado cómo se crean? Hoy hablaremos de Xcode, el conjunto de herramientas de desarrollo de aplicaciones de Apple. © Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
9
Soluciones de Programación Móvil
Introducido en octubre de 2003 junto a la versión 10.3 de Mac OS X, Xcode es el entorno de desarrollo integrado (IDE) creado por Appple que trabaja de manera conjunta con Interface Builder (herramienta gráfica para crear interfaces de usuario) y que se puede descargar de manera gratuita desde la Mac App Store. Este conjunto de herramientas además incluye una colección de compiladores del proyecto GNU (GCC) y puede compilar código C, C++, Objective-C, Objective-C++, AppleScript y Java gracias a una gran gama de modelos de programación.
Figura 5. Área de trabajo Xcode Citado de: http://www.ipadizate.es/2014/07/20/xcode-93212/ Xcode 6, una nueva forma de diseñar software para iOS y OS X Con el nuevo Xcode 6 se producirá un cambio radical y se introduce una nueva manera de diseñar y construir software. En la WWDC14, Apple presentó Swift, un nuevo lenguaje de programación que combinado con las herramientas de Xcode, hace que la programación y desarrollo de aplicaciones se convierta en una experiencia increíble. Gracias a la última ver-
© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
10
Soluciones de Programación Móvil
sión, la cual aún está en fase beta, el desarrollador podrá ver en tiempo real la vista previa de lo que está programando y los cambios que realice en el código. Además, la nueva vista también permite ver todas las capas de la interfaz de usuario en 3D, de manera que será más fácil entender cómo se compone la interfaz e identificar qué puntos de vista están superpuestos y cuáles son de recorte.
Figura 6. Visualización de la aplicación en Xcode Citado de: http://www.ipadizate.es/2014/07/20/xcode-93212/ Además, hay que destacar que por el momento Xcode es el único software disponible para escribir con código Swift. Xcode 6 se integra perfectamente con el nuevo lenguaje Swift, permitiendo crear aplicaciones en las que sólo se utiliza este nuevo código, añadir código Swift o marcos a las aplicaciones ya existentes, entre otras cosas. Xcode es todo lo que necesitas para crear aplicaciones Apple a tu alcance Xcode ofrece a los desarrolladores todo lo necesario para crear aplicaciones para Mac, iPad y iPhone. La última versión cuenta con un
© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
11
Soluciones de Programación Móvil
diseño de interfaz de usuario que unifica la codificación, pruebas y depuración dentro de una única ventana
La aplicación incluye el IDE de Xcode, el compilador LLVM, instrumentos, simulador de iOS, el SDK de los últimos iOS y OS X y muchas características más al alcance de los desarrolladores. Entre otras cosas, cuenta con una amplia variedad de herramientas innovadoras para crear aplicaciones, el editor profesional se mantiene enfocado en el código, se ha simplificado la interfaz para hacer que sea mucho más rápido y fácil de usar, así como varias herramientas para analizar el rendimiento visual.
Figura 7. Iconos Xcode https://itunes.apple.com/es/app/xcode/id497799835?mt=12&uo=4&at=1001 lAa Conclusiones
Las aplicaciones de los dispositivos móviles (apps) se agrupan en tres categorías, dentro de las cuales se encuentran las apps que se ejecutan dentro del dispositivo, aquellas que se convierten en una interfaz con otra aplicación y por ultimo las que utilizan el dispositivo como un centro de recolección de información
La interfaz de desarrollo creada por google, Androd Studio, es un programa muy moderno que cuenta con una serie de herramientas para la creación de aplicaciones móviles, los cuales se escriben en el lenguaje de programación java
El entorno de desarrollo integrado elaborado por Apple, Xcode, en conjunto con un grupo de aplicaciones gráficas, son las en-
© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
12
Soluciones de Programación Móvil
cargadas de crear interfaces de usuario para elaborar aplicaciones para Mac, iPad y iPhone. Referencias Bibliográficas
Jorge Santiago Nolasgo Valenzuela (2015). Desarrollo de aplicaciones móviles con Android. RA_MA Editorial
Juan Ferrer Martinez (2014).
Implantación De Aplicaciones
Web En Entornos Internet, Intranet Y Extranet. RA_MA Editorial
Chris Apers (2011). Aplicaciones web iPhone y iPad. Anaya Multimedia
Rob napier.
Mugunth kumar (2012) IOS 5 (programación).
Anaya Multimedia
© Politécnico Indoamericano 2015 Nota Técnica preparada por el Politécnico Indoamericano. Este contenido es propiedad del Politécnico Indoamericano. Su difusión, reproducción o uso total o parcial para cualquier otro propósito queda prohibida. Todos los derechos reservados.
13