domingo, 18 de septiembre de 2011

Como hacer aplicaciones para Android

Las aplicaciones para dispositivos que ejecuten Android están basadas en Java, y por esto necesitamos conocimientos básicos en programación, pero con este pequeño tutorial tendrás lo esencial para realizar tu "Hola mundo Android", y disfrutar con tu primera aplicacion apk.

Que software necesitamos 
(Windows):

  • JAVA JDK, necesario para instalar los siguientes programas. Aquí el link por si no lo tienes: DESCARGAR JAVA JDK 7
  • Un IDE de desarrollo, en este tutorial NetBeans, aconsejable la versión 7.0, la puedes descargar aquí: DESCARGAR NETBEANS 7.0
  • El SDK de Android, es la plataforma que tiene las herramientas como el emulador:           DESCARGAR ANDROID SDK
(Linux):
NOTA: Debes tener el Java JDK versión de 32bit (el que publico aquí) porque no te funcionará el SDK de Android.

Configurar el software

Después de instalar los programas lo siguiente es configurarlos, preferiblemente en este orden.


Configurando NetBeans:
  • Vamos a herramientas, complementos, pestaña complementos y clic en agregar.
  • Copiamos un nombre cualquiera y en URL pegamos la linea siguiente: http://deadlock.netbeans.org/hudson/job/nbandroid/lastStableBuild/artifact/build/updates/updates.xmly aceptar. (Este repositorio contiene los plugins para usar Android en netbeans y puede variar dependiendo de la versión que tengas instalada de NetBeans, esta es para la versión 7.0)
  • Ahora vamos a la pestaña Plugins disponibles y buscamos "Android" y "Android Test Runner for NetBeans 7.0+" (o el que corresponda a tu versión de NetBeans) y los seleccionamos, luego instalar.
  • Reiniciamos NetBeans.
  • Vamos a herramientas y abrimos "Android SDK and ADV Manager" y en "SDK Location" copiamos la ruta del SDK, puedes usar esta:  C:\PROGRA~2\Android\android-sdk

Configurando el SDK de Android:
  • Lo primero que tienes que hacer es descargar la API o versión de Android que quieras, para empezar puedes descargar la vesión 2.2, que es muy completa y no pesa tanto. Al abrir el SDK MANAGER (búscalo en el menú inicio, debes ejecutarlo como administrador, clic derecho "Ejecutar como Administrador") tendrás algo así:

  • Cerramos esa ventana, vamos a "Avaliable packages", desplegamos "Android Repository", y seleccionamos la API que queramos, "Install Selected" y en la ventana que aparece "Install".
  • Cuando termine de descargar e instalar, debemos crear un dispositivo virtual (Puede que requieras reiniciar el SDK Manager), para esto vamos a "Virtual devices", "New", le damos un nombre, un tamaño de memoria para la SD card (10Mb serán suficiente), seleccionamos la API que instalamos, "Create ADV" y ya esta.

Nuestra primera aplicación
  • En NetBeans vamos a archivo, proyecto nuevo.
  • Seleccionamos la carpeta Android y luego Android Project
  • En la siguiente ventana le damos un nombre, como queramos que se llame el archivo apk.
  • En Package name ponemos dos palabras sin espacios con un punto en medio ej: android.debug así se llamará el proceso que ejecute la aplicación.
  • En Activity Name ponemos el nombre de la clase, es muy importante ponerle el nombre que queramos porque así va a llamar la aplicación cuando la instalemos.
  • Terminar.
  • Para que se genere la clase principal (R) debemos darle Shif + F11 (Limpiar y generar)
Ahora tendremos algo así:


He señalado los tres archivos que debemos tener presente:

1. Esta es la clase principal, aquí irá la mayoría del código de nuestra aplicación. Una vista general del código:

2. Es la clase que se genera automáticamente y contiene todos los elementos gráficos y variables             especiales de nuestra aplicación. Si no entiendes su contenido es irrelevante pues no es necesario en este momento.

3. El archivo main.xls contiene todo lo que podemos llamar "visible" en nuestra aplicación, o en términos generales la interfaz, se compone de elementos gráficos llamados layouts (El layaout original del archivo es el que compone toda la pantalla de nuestra aplicación). Dentro del layout principal tenemos un TextView que es un cuando que permite mostrar texto, hay muchos más elementos gráficos que podemos usar, para el ejemplo agregaré un botón. El archivo modificado queda así:



Lo que tenemos dentro de las etiquetas "< />" son la definición del elemento, en este caso un botón (Button), y las propiedades del mismo, para este ejemplo:

android:id="@+id/nuestro_boton"           Es el nombre con el que identificamos nuestro boton, el nombre de la variable.

android:layout_width="wrap_content"    Esta es la propiedad anchor del elemento, wrap_content indica que se adapta al contenido, es decir tendrá el ancho del texto que tenga escrito, otro valor valido es fill_parent, es decir, toma el tamaño del elemento contenedor, si fuera el caso, tendría el tamaño del layaout principal que es el contenedor. 

android:layout_height="wrap_content"    Esta la propiedad altura.

android:text="Presioname"                      Esta propiedad indica que texto tendrá el botón.


Hay muchas más propiedades que podemos usar. 
En este momento podemos correr la aplicación para que veamos como va. Si no trabajas NetBeans debes presionar F6 o clic en el botón de play en la barra de herramientas. Es un poco demorado mientras arranca el emulador, así que no lo cierres, no es necesario para ejecutar de nuevo la aplicación. La primera vez que se ejecute el dispositivo virtual es necesario ejecutar otra vez la aplicación cuando ya halla cargado el emulador.

Si todo te ha estado bien, tendrías que ver algo así:



Ahora programemos el botón para cambie el texto.
  • Primero agreguemos la propiedad id faltante para el TextView con la siguiente linea: android:id="@+id/texto" dentro de su etiqueta.
  • Modifica el archivo HolaAndroid.java o como se llame tu clase principal para que quede como el siguiente: (Si te sale un error al copiarlo, asegúrate de limpiar y compilar (Shif+F11)).

Aquí hicimos tres cosas nuevas:
  1. Agregamos imports para las librerias de View y widget, la librería widget contiene todos lo elementos gráficos que podemos usar en la interfaz (archivo main.xls), como Button y TextView.
  2. Hacemos un enlace con los objetos declarados en la interfaz, para esto declaramos un botón y un visor de texto que serán los mismo a los que ya declaramos, para esto los buscamos con la linea: findViewById(R.id.variable) donde variable esta definido como "@+id/variable" en el main.xls.
  3. Sobreescribimos la acción setOnClickListener para que no haga la acción por defecto si no la que queremos: texto.setText("Has presionado el botón") que ya sabes que hace.
Ahora ya puedes compilar y correr la aplicación. El archivo generado que puedes usar en cualquier dispositivo que ejecute Android es una aplicacion apk que puedes encontrar en la carpeta bin dentro del proyecto que creaste.