Читать книгу El gran libro de Android - Jesus Tomás Gironés - Страница 37
1.7. Creación de un primer programa
ОглавлениеUtilizar un entorno de desarrollo nos facilita mucho la creación de programas. Esto es especialmente importante en Android dado que tendremos que utilizar una gran variedad de ficheros. Gracias al plug-in Android que hemos instalado en el entorno de desarrollo Eclipse, la creación y gestión de proyectos se realizará de forma muy rápida, acelerando los ciclos de desarrollo.
Vídeo[tutorial]: Un primer proyecto Android |
Ejercicio: Crear un primer proyecto en Android |
Para crear un primer proyecto Android con Eclipse sigue los siguientes pasos:
1.Selecciona File > New > Android Aplication Project.
2.Rellena los detalles del proyecto con los siguientes valores:
A continuación vemos una descripción para cada campo:
Application Name: es el nombre de la aplicación que aparecerá en el dispositivo Android. Tanto en la barra superior, cuando esté en ejecución, como en el icono que se instalará en el menú de programas.
Project Name: es el nombre del proyecto. Se creará una carpeta con el mismo nombre que contendrá los ficheros del proyecto. El nombre del fichero APK, con el ejecutable de la aplicación, también recibirá el mismo nombre que el proyecto.
Package Name: indicamos el paquete con el espacio de nombres utilizado por nuestra aplicación. Hay que usar las reglas de los espacios de nombres en el lenguaje de programación Java. Las clases que creemos pertenecerán a este paquete. Como veremos más adelante, el nombre del paquete también es utilizado por Android para determinar en qué directorio se instala la aplicación.
Nota sobre Java: el nombre del paquete debe ser único en todos los paquetes instalados en un sistema. Por ello, cuando quieras distribuir una aplicación, es muy importante utilizar un dominio que no puedan estar utilizando otras empresas (por ejemplo: es.upv.elgranlibroandroid.proyecto1). El espacio de nombres “com.example” está reservado para la documentación de ejemplos (como en este libro) y nunca puede ser utilizado para distribuir aplicaciones. De hecho, Google Play no permite publicar una aplicación si su paquete comienza por “com.example”.
Minimum required SDK: este valor especifica el mínimo nivel de la API que requiere tu aplicación. Por lo tanto, la aplicación no podrá ser instalada en dispositivos con una versión inferior. Procura escoger valores pequeños para que tu aplicación pueda instalarse en la mayoría de los dispositivos. Un valor adecuado puede ser el nivel de API 8 (v2.2), dado que cubriría prácticamente el 100% de los dispositivos. O el nivel de API 9 (v2.3), que cubriría más del 99% de los dispositivos. Escoger valores pequeños para este parámetro tiene un inconveniente: no podremos utilizar ninguna de las mejoras que aparezcan en los siguientes niveles de API. Por ejemplo, si queremos utilizar el motor de animaciones de propiedades en nuestra aplicación, tendremos que indicar en este campo la versión 3.0, dado que esta API no aparece hasta esta versión. Pero, en este caso, nuestra aplicación no se podrá instalar en la versión 2.2 (0,8%) ni en la 2.3 (14,9%)4.
Target SDK: indica la versión más alta de Android con la que se ha puesto a prueba la aplicación. Cuando salgan nuevas versiones del SDK, tendrás que probar la aplicación con estas versiones y actualizar el valor. Utilizar un Target SDK alto no está reñido con usar un Minimum required SDK pequeño.
Compile With: es la versión de la plataforma con la que compila la aplicación. Se recomienda indicar la versión más reciente que haya aparecido. Las nuevas versiones no solo añaden funcionalidades a la API, sino que también añaden mejoras en el desarrollo. Por ejemplo, en algunas versiones se asigna un tema a la aplicación, o a partir de la versión 3.0 se verifica que el acceso a un servidor web se haga en un hilo auxiliar.
Theme: estilo que se utiliza en la aplicación. Un tema define los colores, las fuentes y otros aspectos visuales de nuestra aplicación. Se estudiará en el siguiente capítulo.
3.Pulsa Next para pasar a la siguiente pantalla. Puedes dejar los valores por defecto. Los dos primeros checkbox te permiten saltarte las pantallas que veremos a continuación. Los tres siguientes permiten crear una librería, indicar dónde se almacena el proyecto y organizar proyectos en grupos.
4.Pulsa Next para pasar a la siguiente pantalla. Aquí podrás configurar el icono de la aplicación. Resulta sencillo de utilizar. Más adelante se explicarán más detalles sobre el diseño de iconos.
5.Pulsa Next para pasar a la siguiente pantalla. Si hemos marcado que queremos una actividad inicial, aquí podremos configurar su tipo. Como veremos más adelante, una actividad es cada una de las pantallas en las que dividimos una aplicación. Selecciona el valor Empty Activity.
Si seleccionas el valor por defecto, Blank Activity, se añadirán elementos adicionales a la actividad. Entre estos se incluye un menú de navegación para que se muestre en la barra de acciones (lo veremos en el capítulo 3) y la creación de un fragment que nos permitirá mostrar varios elementos de la interfaz de usuario cuando la aplicación se ejecute en una tableta. Desgraciadamente, el uso de fragments resulta algo complejo y no recomendamos su utilización hasta que se domine la creación de actividades. Los fragments se introducen en el anexo A de este libro y en el capítulo 1 de El gran libro de Android avanzado.
6.Pulsa Next para pasar a la última pantalla. Aquí podemos indicar el nombre de la actividad y el layout asociado a esta actividad.
7.Pulsa Finish para terminar la creación del proyecto.
8.Deberías tener visible el explorador de paquetes (Package Explorer) a la izquierda. Abre el fichero MainActivity.java (situado en HolaMundo > src > com.example.HolaMundo). Debe tener este aspecto:
El código comienza declarando el paquete con el espacio de nombres utilizado por nuestra aplicación. A continuación indicamos los “ import ” con los paquetes que contienen las clases que vamos a utilizar. Esto nos evitará tener que poner delante de cada clase su espacio de nombres.
NOTA: comprueba como los dos últimos import están marcados en amarillo. Esto señala que en estas líneas hay un warning o advertencia, es decir, se ha detectado algún tipo de error, incoherencia o un consejo sobre cómo realizar alguna acción de forma más adecuada. Muchos warnings no afectan realmente al funcionamiento del programa (como en este caso), pero siempre resulta conveniente dedicar un tiempo a averiguar por qué se ha introducido esa advertencia. Si sitúas el cursor del ratón sobre el icono que aparece a la izquierda de cada línea ( ), te mostrará la siguiente explicación: “The import android.view.Menu is never used”. Es decir, estamos indicando que queremos utilizar la clase android.view.Menu, pero luego no se utiliza. Si deseas un código más limpio puedes eliminar estas dos líneas. Si no lo haces, el programa se ejecutará exactamente igual.
Observa que la clase MainActivity extiende de Activity. Una actividad es una entidad de aplicación que se utiliza para representar cada una de las pantallas de nuestra aplicación. Es decir, el usuario interactúa con solo una de estas actividades y va navegando entre ellas. El sistema llamará al método onCreate() cuando comience su ejecución. Es donde se debe realizar la inicialización y la configuración de la interfaz del usuario. Las actividades van a ser las encargadas de interactuar con el usuario.
Nota sobre Java: antes de este método se ha utilizado la anotación @Override (sobrescribir). Esto indica al compilador que el método ya existe en la clase padre y queremos reemplazarlo. Es opcional, aunque conviene incluirlo para evitar errores.
Lo primero que hay que hacer al sobrescribir un método suele ser llamar al método de la clase de la que hemos heredado. Para referirnos a nuestra clase padre usaremos la palabra reservada super. El método termina indicando que la actividad va a visualizarse en una determinada vista. Esta vista está definida en los recursos. Lo veremos un poco más adelante.
9.Abre el menú Project y asegúrate de que esté marcado Build Automatically.
Con esto, cada vez que guardemos algún fichero el proyecto volverá a ser construido. Construir un proyecto consiste en generar los ficheros suplementarios y compilar el código. De esta manera, la clase R.java se regenera cada vez que hacemos un cambio (veremos esta clase en el siguiente punto).