Módulo 1
Módulo 1
1
ÍNDICE
................................................................................................................................................1
Módulo Conceptos Generales...............................................................................................3
1 Entorno de desarrollo Android Studio.............................................................................3
Paso 1. Descarga e instalación de Java.......................................................................3
Paso 2. Descarga e instalación de Android Studio y el SDK de Android......................5
Paso 3. Configuración inicial de Android Studio...........................................................9
Paso 4. Instalar/actualizar componentes del SDK de Android.....................................9
PARA PROFUNDIZAR................................................................................................11
2 Estructura de un proyecto Android...............................................................................12
PARA PROFUNDIZAR................................................................................................19
3 Componentes y archivos principales de una aplicación Android.................................20
Vistas...........................................................................................................................21
Adaptadores................................................................................................................22
Modelo de Datos.........................................................................................................22
Tareas o Tasks.............................................................................................................23
Actividades..................................................................................................................23
Fragmentos..................................................................................................................23
4. Desarrollando una app sencilla...................................................................................26
1 Crear el proyecto......................................................................................................26
2 Modificar la vista activity_saludo..............................................................................26
3 Modificar la actividad SaludoActivity........................................................................29
4 Crear la actividad MostrarSaludoActivity.................................................................31
5 Editar la vista activity_mostrar_saludo.....................................................................31
6 Editar la actividad SaludoActivity.............................................................................32
7 Editar la actividad MostrarSaludoActivity.................................................................33
8 Ejecutar el proyecto..................................................................................................33
9 Probar la aplicación..................................................................................................37
EJERCICIOS..............................................................................................................38
2
Módulo Conceptos Generales
Este módulo tiene como objetivo mostrar al desarrollador el proceso de instalación tanto
de Android Studio como de los complementos que se necesiten para su correcto
funcionamiento. Una vez instalado el entorno, se expondrá un pequeño ejemplo de
desarrollo de una aplicación básica en Android.
3
JDK para Windows
Se trata de un instalador estándar de Windows donde tan sólo hay que aceptar, pantalla
por pantalla, todas las opciones que ofrece por defecto.
El siguiente paso es opcional, pero puede evitarnos algún que otro problema en el futuro.
Se creará una nueva variable de entorno llamada JAVA_HOME y cuyo valor sea la ruta
donde hemos instalado el JDK, por ejemplo “C:\Program Files\Java\jdk1.7.0_79“. Para
añadir una variable de entorno del sistema en Windows, se puede acceder al Panel de
Control / Sistema y Seguridad / Sistema / Configuración avanzada del sistema / Opciones
Avanzadas / Variables de entorno. Una vez en la ventana de Variables de Entorno, pulsar
el botón “Nueva…” del apartado de Variables del Sistema y añadir la nueva variable con
los valores indicados anteriormente.
.tar.gz
1. Se abre la terminal y se accede al directorio donde se encuentra el archivo. (Comando
cd)
2. Se descomprime el JDK y se instala usando el siguiente comando en la terminal.
tar zxvf <nombre del archivo jdk>.tar.gz
.rpm
1. Se abre la terminal y convertirnos en súper usuario (comando su).
2. Desinstalar, en caso de que hubiera instalaciones previas del JDK. Se introduce en la
terminal el siguiente comando.
rpm -e nombre_del_paquete_antiguo
4
4. Se actualiza.
rpm -Uvh <nombre del archivo jdk>.rpm
Para sistemas operativos Linux, se deberá extraer el archivo .zip descargado, abrir la
terminal y navegar mediante el comando cd hasta la carpeta android-studio/bin/ del zip
descargado. Una vez dentro, se deberá ejecutar el archivo studio.sh.
cd Programacion/Android/android-studio/bin/
./studio.sh
5
El resultante de este proceso es el mostrado en la siguiente ilustración.
Durante la instalación se deberá indicar también las rutas donde se quiere instalar tanto
Android Studio como el SDK de Android. Para evitar posibles problemas futuros, está
recomendado seleccionar rutas que no contengan espacios en blanco.
6
Ilustración 4: Configuración de las rutas de instalación y del SDK.
7
Ilustración 6: Asistente de instalación de Android Studio I.
8
Paso 3. Configuración inicial de Android Studio.
El siguiente paso será asegurarse de que están correctamente configuradas las rutas a
los SDK de Java y Android. Para ello se accederá al menú “Configure” de la pantalla de
bienvenida. Se entrará en el submenú “Project Defaults” y se pulsará sobre la opción
“Project Structure”. En la ventana de opciones resultante, se revisará el apartado “SDK
Location”. Si todo está en orden, se deberá pulsar el botón “OK”.
SDK Platforms
Se deberá marcar al menos una opción de las listadas, recomendablemente, la que
cuente con el “API Level” más elevado. Estos SDK cuentan con las funciones que nos
permiten compilar las aplicaciones Android.
9
Ilustración 8: Pestaña SDK Plataforms de la pantalla de configuración del SDK.
SDK Tools
Es recomendable marcar para descargarse las opciones “Android SDK Biuld-Tools”,
“Android SDK Platforms-Tools” y “Android SDK Tools”. Tener actualizados estos paquetes
permitirá optar a las mejoras que vaya lanzando Google con el objetivo de facilitar ciertas
operaciones a los desarrolladores.
10
Ilustración 9: Pestaña SDK Tools de la pantalla de configuración del SDK.
PARA PROFUNDIZAR
Instalación Android studio linux.
Instalación Android Studio Windows.
Instalación JDK Linux
Instalación JDK Windows
11
2 Estructura de un proyecto Android
En este capítulo se hablará de cómo crear un proyecto con Android Studio, de las
consideraciones que se deben tener en cuenta y de la estructura básica y jerarquía de los
componentes que forman una aplicación.
Para crear un proyecto nuevo, si nos encontramos en la vista de otro proyecto se pulsará
en el menú “File” - “New” - “New proyect”. Si, por otro lado, al abrir el entorno, aparece la
pantalla de bienvenida, se pulsará en la opción “Start a new Android Studio Proyect”. En
ambos casos la pantalla resultante será la mostrada en la siguiente ilustración.
12
Ilustración 11: Pantalla de creación de un nuevo proyecto II.
13
Ilustración 12: Pantalla de estadísticas de terminales disponibles por SDK mínimo.
Como podemos apreciar, con un SDK mínimo de 16, podremos acceder al 95,2% de los
terminales Android.
En la siguiente pantalla, el propio Android Studio, te permite elegir una plantilla para la
pantalla principal de tu aplicación. Para desarrollos más avanzados, o para tener ejemplos
sobre las implementaciones creadas por los desarrolladores de Android, puede ser
interesante abrir alguno de las ejemplos disponibles. En este caso, se elegirá la opción
“Empty Activity”, que generará la actividad con el código mínimo necesario.
14
Ilustración 13: Pantalla de creación de un nuevo proyecto III.
15
Ilustración 14: Vista de la estructura de un proyecto vacío.
Carpeta Descripción
16
res/animator
AndroidManifest.xml
Este archivo se encarga de proporcionar información a Android sobre cómo ejecutar la
aplicación. Entre otras cosas se encarga de nombrar el paquete de la aplicación, describir
las actividades que conforme la app, declarar los permisos que debe tener la aplicación,
etc.
En la siguiente ilustración se puede ver un ejemplo de una aplicación que cuenta con una
actividad que se conecta a internet y hace uso del GPS.
17
Ilustración 15: Archivo AndroidManifest.xml.
En la referencia 1 del manifest, se encuentran los permisos que usa la aplicación. En esta
lista de la página oficial de Google se pueden encontrar todos los permisos.
En la referencia 2 se define el atributo “application” dentro del cual se definirán entre otros
elementos, las actividades de la aplicación, como por ejemplo, la que se muestra en la
sección 3.
Por último, en la referencia 3, como ya se ha comentado anteriormente, se muestra una
actividad de nombre MainActivity.
build.gradle
Este archivo que se genera automáticamente cuando se crea un proyecto, contiene las
características usadas a la hora de compilar el APK (ejecutable de la aplicación Android),
por ejemplo, entre otras contiene la versión de la aplicación, el id que se forma juntado el
nombre del dominio más el nombre de la app, etc.
La sección dependencies se encarga de gestionar, gracias a la herramienta Gradle, el uso
de las librerías externas al proyecto.
18
Ilustración 16: Archivo build.gradle.xml.
PARA PROFUNDIZAR
Gradle.
Lista de permisos.
Agrupación de los tipos de recursos.
19
3 Componentes y archivos principales de una aplicación
Android
20
Vistas
Son las clases que representan los componentes que se usan en la interfaz de usuario.
Aunque son desarrollados en Java, al igual que el resto del proyecto, Android permite a
los desarrolladores la interacción con estos a través de lenguaje XML. Además, el entorno
oficial de Android, Android Studio, cuenta con una herramienta “Drag and Drop”
(arrastrado y soltado) que permite la creación de interfaces de usuario de manera visual.
21
La información dinámica es aquella sensible al cambio en función del estado de la
aplicación. A la hora de la construcción de las vistas en XML, se deja la estructura de la
información preparada para que, dinámicamente, se vaya rellenando en función del uso
que haga el usuario en la aplicación. Por ejemplo, para una aplicación que requiera una
identificación del usuario, por ejemplo Facebook, el nombre de usuario en la pantalla
“Perfil”, será diferente en función del usuario al que se esté visitando. Son las actividades
las encargadas de realizar dicha asignación dinámica.
Adaptadores
En Android, se trabaja con información que, aparte de ser dinámica porque no sabes qué
datos te van a llegar, también lo es porque no sabes cuántos datos te van a llegar. Por
ejemplo, en una aplicación que los usuarios se pudieran mandar mensajes entre ellos, se
daría este caso al abrir la pantalla de conversaciones. Los adaptadores permiten hacer
genérica la representación de este tipo de información independientemente del tamaño de
la lista que se haya de mostrar. Otra característica de los adaptadores, que nos ofrece
mucha flexibilidad a la hora de mostrar la información, es que permite diferenciar
visualmente cada elemento de la lista, es decir, permite tener listas de elementos
heterogéneos.
Modelo de Datos
Son las clases que representan las entidades de nuestra aplicación. Cuando llegan los
datos del servidor, son procesados y almacenados como objetos. Por ejemplo, cuando un
usuario entra en la pantalla de sus conversaciones, el servidor manda una lista con los
resultados, se procesa y se crean los objetos Conversacion (o cualquier otro nombre que
le demos a la clase que represente las conversaciones) que, posteriormente, serán
procesados por la actividad.
22
Tareas o Tasks
Las tareas o tasks, son las encargadas de realizar peticiones HTTP al servidor. Además
de realizar la llamada y enviar los datos necesarios, se encargan de recoger las
respuestas con la información correspondiente. Estas respuestas pueden ir desde un
mensaje de error, hasta información que se deba representar en la aplicación.
En algunos de los casos dónde la información necesite ser guardada, las tareas se
encargarán de crear y rellenar el modelo de datos correspondiente con la información
recibida.
Actividades
Una actividad es un componente que proporciona una vista que abarca toda la pantalla
del dispositivo y que se crea con el objetivo de realizar una acción.
Las actividades crearán las vistas y las rellenarán con la información extraída de los
modelos de datos; en el caso de información dinámica podría darse el caso de necesitar
adaptadores. Si se requiere información del servidor, se encargarán de crear la tarea
correspondiente y la gestión de la devolución de los datos.
Fragmentos
Un fragmento representa una porción de vista o de comportamiento en una actividad. Los
fragmentos pueden realizar las mismas acciones que las actividades. Se podría decir, que
un fragmento es una sección modular de una actividad, con capacidad de ser reutilizable
en otras actividades.
23
Ilustración 19: Fragmentos usados como pestañas.
24
Ilustración 20: Diagrama que representa el flujo de información a través de los componentes de la app.
25
4. Desarrollando una app sencilla
Ahora que ya se conoce el entorno de desarrollo y cómo crear un proyecto nuevo, es hora
de crear la primera aplicación. El objetivo de este capítulo no es comprender todos los
componentes creados, ni aprenderse todas las distintas posibilidades de implementación,
sino hacerse una idea general del funcionamiento de una aplicación básica en Android.
Para este primer contacto, se pretende crear dos actividades. La primera consta de tres
elementos. Un botón, un texto y un campo para recibir un texto introducido por teclado por
parte del usuario. La segunda actividad, mostrará por pantalla el texto introducido en la
primera.
1 Crear el proyecto
En primer lugar se debe crear el proyecto cómo ha sido explicado en las secciones
anteriores. Como la actividad principal va a ser muy simple, es recomendable elegir la
opción “Empty Activity” en el formulario de elección de la actividad principal al crear el
nuevo proyecto. Se puede dar el nombre que se quiera a la actividad, por defecto se
llamará MainActivity. En el ejemplo aquí expuesto, se llamará SaludoActivity. El estándar
establece, sin ser obligatorio pero sí recomendable, que las actividades usen la
nomenclatura CamelCase y se le añada al final del nombre “Activity”.
Por defecto, Android Studio crea la vista asociada a la actividad, tomando como base el
nombre de dicha actividad para nombrar a la vista. Separa las palabras con ‘_’ siendo la
primera “activity”. En este caso: “activity_saludo.xml”
El objetivo en esta vista es tener tres elementos ordenados de forma vertical: texto, input y
botón.
26
- Texto: representado con el componente TextView. Describirá al usuario la acción que
debe realizar.
Referencia 1
La ventana que se muestra a la derecha de la pantalla es una representación aproximada
de como se verá la ejecución del código en el terminal. Por ejemplo, en este caso,
EditText debería mostrar una linea debajo del texto que sugiere al usuario la acción a
realizar. Para activar la previsualización se deberá pulsar en el botón que se encuentra en
la parte derecha de la pantalla con el texto “Preview”.
27
Referencia 2
La ilustración se corresponde con la vista para editar textualmente la interfaz. Es posible
cambiar a la vista de edición visual pulsando en el botón “Design” de la parte inferior de la
pantalla. Esta opción es menos recomendada ya que es menos potente que la vista
textual.
Referencia 3
Esta referencia muestra el primer elemento que encontramos en nuestra vista. Todas las
vistas sólo pueden tener un único elemento raíz, es decir, todos los demás elementos
deben encontrarse dentro de un elemento padre. Los LinearLayout sirven para organizar
los componentes de manera secuencial, de forma horizontal o vertical, en función del
atributo que se encuentra en la línea 8 “android:orientation”. Es decir, todos los
elementos que se coloquen dentro de este LinearLayout se irán colocando uno encima de
otro. Si nos fijamos, existe un espacio entre todos los elementos y los bordes de la
pantalla, esto se debe al atributo de la línea 9 “android:layout_margin=’16dp’”, que
obliga a dejar una separación de 16dp, entre cada uno de los cuatro bordes del layout y
sus elementos.
Referencia 4
Esta referencia explicará el componente TextView. Su función es mostrar un determinado
texto asignado con el atributo “android:text”. Cuenta también con los atributos
“android:height” y “android:width” con el valor “wrap_content” que a diferencia
de “match_parent”, viene a decir: “agrándate al mínimo necesario”.
Referencia 5
En esta referencia se quiere hablar del componente EditText. Actúa como un clásico input
al que se le asigna un texto que sugiera la acción (atributo “android:hint”), un id
28
(atributo “android:id”) ya que en la actividad necesitaremos obtener el texto que ha
introducido el usuario, y unas dimensiones con los mismos atributos y valor que el
TextView: “android:height” y “android:width” con “wrap_content”.
Referencia 6
Componente Button tiene que la apariencia de botón. Al igual que en los componentes
anteriores, se le asigna un id, para capturar la acción de “click”, una anchura y altura y un
texto.
El siguiente paso, una vez que ya se ha asignado la vista, será buscar el EditText para
obtener el texto del usuario y el botón para capturar el “click”.
29
Ilustración 23: Actividad principal.
En la línea 34, se accede al método getText del componente EditText. Devolverá el texto
(que habrá que transformar a String) introducido por el usuario.
El siguiente paso sería crear la nueva actividad para mostrar el saludo al usuario.
30
4 Crear la actividad MostrarSaludoActivity
Seleccionar en el menú superior File – New – Activity – Empty Activity, tal y como se
muestra en la siguiente ilustración.
31
Ilustración 25: Código de la interfaz de SaludoActivity.
Ha diferencia de la vista anterior, el layout raíz tendrá una disposición horizontal, para
alojar los tres TextViews necesarios. El primero de ellos mostrará el mensaje “Hola” y
dejará un espacio a su derecha. El segundo de ellos mostrará el nombre que el usuario
haya escrito. Este nombre será asignado dinámicamente, por ello es necesario asignarle
un id de manera que podemos buscarlo en la actividad. Por último, el tercer TextView,
mostrará el mensaje “¿Qué tal?”.
32
Se ha de crear un objeto de la clase Intent, que recibe como primer parámetro el contexto
de la clase desde que se lanza (NombreDeLaClase.this) y la clase que se debe ejecutar
(ClaseAEjecutar.class). A este intent, se le pueden pasar parámetros en la clase que llama
para ser recogidos en la clase llamada con el método putExtra(“clave”, valor). Por último,
se usa el método startActivity(intent) para lanzar la nueva actividad.
8 Ejecutar el proyecto
Para poder ejecutar el proyecto o bien se tiene o terminal Android y se conecta al PC, o
bien se crea una máquina virtual.
33
Para crear una máquina virtual desde Android Studio, en primer lugar se pulsará sobre el
ADV Manager que aparece en la siguiente ilustración.
34
Ilustración 30: Pantalla para la elección de un dispositivo virtual I.
35
Por último se le podrá asignar un nombre al dispositivo virtual antes de crearlo.
Si todo ha ido bien, tenemos la máquina virtual funcionando y, al pulsar sobre el botón
verde con forma de “play”, aparecerá un diálogo donde nos dejará elegir la máquina
36
virtual creada. Si deseamos usar un dispositivo real, deberemos conectar por medio de un
cable USB nuestro terminal Android y habilitar las “opciones de desarrollador” que se
encuentran en la configuración del dispositivo. Se puede obtener más información en la
guía oficial de Android Developers.
9 Probar la aplicación
Como ya se ha explicado anteriormente, se introducirá un nombre, se pulsará en
“SALUDAR” y será mostrada en la actividad MostrarSaludoActivity. El resultado debería
ser el mostrado en la siguiente ilustración.
37
EJERCICIOS
1. Realizar los cambios necesarios en activity_saludo para que el botón aparezca a la
derecha del EditText.
3. Modificar la aplicación Saludo o SaludoErj1 para que al introducir el nombre valide que
no sea vacío. Si es vacío, mostrar un mensaje al usuario usando el componente no visto,
pero que será explicado más adelante Toast. Si no es vacío, lanzar la siguiente actividad
igual que en los ejercicios anteriores.
38