Desarrollo Android:

Acercamiento al desarrollo de aplicaciones en Android Studio

 

Integrantes:

-        Marcelo Araya

-        Gabriel Fuentes Vergara

Profesor:

-        Agustín González

Ramo:

-        ELO390: Diseño y Programación Orientada a Objetos

 

Del Proyecto

El desarrollo de aplicaciones Android, define hoy un campo laboral y área de trabajo tan amplio como la necesidad del usuario o la creatividad del desarrollador lo permita, por lo cual, como equipo buscamos documentar a través de un proyecto de implementación de una aplicación, los conceptos y términos básicos que cualquier persona se encontrará al indagar al respecto, sumado a los errores comunes y problemas de compatibilidad. En otras palabras, más que resolver un problema, lo que se bucaba con el proyecto era aprovechar la instancia de el tener que desarrollar un proyecto relacionado con las materias del ramo para asi investigar y aprender sobre un tema que no se vió con mucha profundidad pero que nos pareció interesante.

Glosario y contexto de desarrollo:

Para nuestro caso, utilizaremos el entorno de desarrollo Android Studio, creado por ingenieros de Google, el cual facilita gran cantidad de problemas y permite el trabajo colaborativo, tanto de códigos y lógica del programa, como del diseño gráfico mismo de la aplicación. Al adentrarse en el uso de esta herramienta, encontraremos conceptos variados y en gran cantidad, cuyo entendimiento facilitará inmensamente el avance de cualquier proyecto. Para esto, hemos recopilado el siguiente glosario de conceptos vitales:

 

1)     Gradle:

Gradle es un sistema de compilación que reúne en uno solo las mejores prestaciones de otros sistemas de compilación. Está basado en JVM (Java Virtual Machine), lo que significa que puedes escribir tu propio script en java, y que Android Studio lo entenderá y lo usará.

Se manejan, además, archivos .xml para definir los parámetros de compilación.

Lo mejor de Gradle es que es un plugin, lo que facilita su actualización y su exportación de un proyecto a otro. Esto significa que puedes tener tu propio lenguaje de programación y automatizar el proceso de compilación en un solo paquete (de la misma manera que un jar en caso de Java) y poder distribuirlo al resto del mundo.

<

2)     AVD:

La definición de un Android Virtual Device (AVD) te permite definir las características de un teléfono Android, una tablet, o un dispositivo Android Wear o Android TV que desees simular en Android Emulator. Esta herramienta nos permite visualizar y probar nuestra aplicación bajo distintas pruebas simuladas, dentro de un emulador cuyos parámetros son ajustables, permitiendo estudiar la respuesta de una aplicación bajo distintas situaciones posibles (batería baja, al minimizar, activación de periféricos, giro de pantalla, etc.)

 

3) SDK:

El SDK (Software Development Kit) de Android, incluye un conjunto de herramientas de desarrollo. Comprende un depurador de código, biblioteca, un simulador de teléfono basado en QEMU(**), documentación, ejemplos de código y tutoriales. Este kit, permite el desarrollo multiplataforma, facilitando la compatibilidad de la aplicación con cada dispositivo disponible? en el mercado.

**QEMU es un emulador de procesadores basado en la traducción dinámica de binarios (conversión del código binario de la arquitectura fuente en código entendible por la arquitectura huésped).

 

4)     API:

Una API (siglas de ?Application Programming Interface?) es un conjunto de reglas (código) y especificaciones que las aplicaciones pueden seguir para comunicarse entre ellas: sirviendo de interfaz entre programas diferentes de la misma manera en que la interfaz de usuario facilita la interacción humano-software.

Las API son valiosas, ante todo, porque permiten hacer uso de funciones ya existentes en otro software (o de la infraestructura ya existente en otras plataformas) para no estar reinventando la rueda constantemente, reutilizando así código que se sabe que está probado y que funciona correctamente.

 

5)     Activity:

Una Activity es un componente de la aplicación que contiene una pantalla con la que los usuarios pueden interactuar para realizar una acción, como marcar un número telefónico, tomar una foto, enviar un correo electrónico o ver un mapa. A cada actividad se le asigna una ventana en la que se puede dibujar su interfaz de usuario. La ventana generalmente abarca toda la pantalla, pero en ocasiones puede ser más pequeña que esta y quedar "flotando" encima de otras ventanas. Las diferentes instancias de la clase Intent (nativa de Android Studio), permiten definir el proceso en el cual el usuario intenta pasar de una Activity a otra.

 

6)     Resources:

Directorio del proyecto, que maneja los recursos gráficos, Layout's, y los Values. Estos últimos, son archivos .xml que manejan la organización de los Strings, colores y estilos del diseño de la interfaz gráfica.

 

 

7)     Layout:

Se define un Layout como una estructura visual para una interfaz de usuario, es decir, aquello que hace de intermediario entre el terminal móvil y el usuario.? Un elemento de una interfaz de usuario (widgets o Layouts) se puede declarar desde un fichero XML o en tiempo de ejecución de la aplicación. Además, Android Studio permite realizar esta edición de manera gráfica, pudiendo agregar a cada? View elementos básicos de manera sencilla, y de manera paralela, se actualizan los archivos .xml automáticamente.

 

 

8)     Manifiesto:

Todas las aplicaciones deben tener un archivo AndroidManifest.xml (con ese nombre exacto) en el directorio raíz. El archivo de manifiesto proporciona información esencial sobre tu aplicación al sistema Android, información que el sistema debe tener para poder ejecutar el código de la app.

Entre otras cosas, el archivo de manifiesto hace lo siguiente:

 

9)     Java:

Cada Activity definida, tiene por defecto un código Java. Este tiene una clase hija que hereda de AppCompatActivity (o de Activity, dependiendo de los parámetros especificados al crearla) las cualidades por defecto de una Activity, tanto atributos de clase, como los métodos básicos para inicializarse automáticamente al abrir la aplicación desde un dispositivo.

 

Diagrama de Clases:

Desde la aplicacion Android Studio se genera el diagrama de clases correspondientes al codigo creado. De estas clases solo las clases Calculadora y MainActivity fueron creadas por nosotros, el resto son clases que vienen desde las librerias del programa

 

 

Demostracion y problemas encontrados:

Durante nuestro avance, debemos destacar que una de las primeras problemáticas encontradas, era respecto al vasto (y nuevo) vocabulario de trabajo tanto para programar/diseñar, como al momento de navegar e investigar para resolver alguna duda en particular. Esto ameritó bastante tiempo de estudio y recopilación de definiciones (algunas de ellas están incluidas en este informe), para en una etapa posterior, comenzar a desarrollar.

Por otro lado, existe gran complejidad al manejar código y diseño de manera multiplataforma, esto debido a la inmensa cantidad de versiones, SDK?s y dispositivos disponibles tanto para pruebas físicas (con un dispositivo real), como para pruebas simuladas por medio del AVD. Entender el concepto de API, y asegurar un trabajo previo de orientar el trabajo a ciertas versiones de Android, buscando un equilibrio entre compatibilidad, porcentaje de dispositivos que correrán la aplicación, disponibilidad de periféricos, entre otros, es esencial para el correcto desarrollo de una aplicación Android. La problemática anterior se puede suplir por medio del estudio de los conceptos anteriores, sumado a la vita importancia del manejo de excepciones al programar (en Java, para nuestro caso, se debió dar constante uso a los bloques try y catch), de tal forma que se pueda continuar ejecutando el programa con medidas de contingencia para la gran cantidad de excepciones que se pueden generar para cada versión de Android.

A continuacion se muestran unas imagenes de la aplicacion funcionando en un celular

 

Decarga de codigos

Click aqui para descargar los codigos