martes, 28 de febrero de 2012

Componetes principales de una aplicación Android

En esta publicación hablaré sobre los componentes principales de las aplicaciones Android.

Cuando desarrollamos aplicaciones Android contamos con los siguientes elementos básicos:
  • Activities
  • Intents
  • Services
  • Manifest

Activities

Una activity es un componente muy importante dentro de una aplicación Android, ya que representa a una ventana. Algo similar a las ventanas de las aplicaciones de escritorio. Por ejemplo una aplicación de correo electrónico puede tener una activity para presentar los correos recibidos, otra activity para presentar los correos enviados, etc. En la siguiente figura se muestra una activity de una aplicación para mejor comprensión.

Cabe indicar que una activity debe estar asociada a un archivo de Layout para poder ser mostrada en la pantalla.

¿Como crear una actividad?

Para crear una activity, se debe crear una clase que instancie a la clase Activity e implementar los métodos necesarios. El método más importante que se debe implementar es:
  • onCreate(): El sistema llama a este método al crear la activity. Dentro de la implementación, se deben inicializar los componentes necesarios de la activity. Lo mas importante dentro de este método es asociar el layout utilizando el método setContentView().
La siguiente porción de código nos muestra la creación de una Activity
public class GastosApplicationActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Algo muy importante que hay que recordar, es que, cuando se crea una actividad, esta debe ser agregada al archivo AndroidManifest.xml para poder se accedida por el sistema. Mas adelante se dará una explicación de este archivo.

Intents

Los Intents son mensajes que permiten a los componentes como actvities, services, etc; comunicarse entre si. Por ejemplo se puede llamar de una activity a otra a través de los intents. Algo importante que se debe tener en cuenta que con los intents también se puede enviar datos de una activity a otra. En la siguiente figura se muestra la estructura de varias activies a través de Intents.


Existen 2 tipos de intents que se pueden utilizar:
  • Intents Explicitos: En los intents explícitos se nombra explícitamente valga la redundancia, a la clase del componente que va a ser llamado. Este nombramiento se lo hace instanciando a la clase Intent. En el siguiente codigo de ejemplo se crea un intent y se envía datos a través del mismo.

Intent intent1 = new Intent(this, Activity2.class);
intent1.putExtra("nombres", nombres);
intent1.putExtra("apellidos", apellidos);
startActivity(intent1);
  • Intents Implicitos: En los intents implicitos no se especifica la clase de componente que va a ser llamado. En vez de ello se especifica la acción que se debe realizar y opcionalmente especificar una URI que se debe utilizar para dicha acción. Por ejemplo
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
Services

Los servicios son componentes que no cuentan con una interfaz gráfica, pero que realizan operaciones importantes y continuación corriendo en modo silencio. Por ejemplo un servicio puede manejar transacciones de red, tocar musica, etc; todo esto lo hace de forma silenciosa e invisible para los usuarios.

Un servicio solamente puede tener 2 formas:
  • Started o Iniciado: Un servicio está "iniciado" cuando un componente de la aplicación (por ejemplo una activity) lo inicia llamando al método startService(). Una vez iniciado el servicio, este se puede ejecutar de forma indefinida, incluso si el componente que lo llamo es destruido. Por lo general, un servicio realiza una sola operación y no devuelve un resultado al componente que lo llama. Por ejemplo, un servicio puede descargar un archivo a través de la red. Cuando la operación se realiza, el servicio debe detenerse.
  • Bind u obligado: Un servicio está "obligado" cuando un componente de la aplicación se une a el llamando al método bindService(). Un servicio obligado ofrece una interfaz de cliente-servidor que permite a los componentes interactuar con el servicio, enviar solicitudes, obtener resultados, etc. Un servicio obligado sólo se ejecuta mientras otro componente de la aplicación está obligado a el. Varios componentes se pueden enlazar con el servicio a la vez, pero cuando todos ellos se termina, el servicio se destruye.
Al igual que las activities son declaradas en el archivo manifest.xml, los servicios también deben ser declarados.

Manifest

El archivo manifest es un elemento muy importante dentro de Android, ya que en el se declaran todos los componentes como activities, intents o services que serán utilizados dentro de todas las aplicaciones que realizemos.

Cabe indicar que este es un archivo xml en el cual se agregan todos los componentes. El siguiente código nos muestra el archivo manifest de una aplicación para una mayor comprensión.

































Con esto terminamos de hablar sobre los componentes básicos para desarrollar aplicaciones Android.

domingo, 26 de febrero de 2012

Hola Mundo (parte 2)

En Hola Mundo (parte 1) explicamos cómo crear un Proyecto Android y explicamos que se genera automáticamente.

En esta entrada vamos a agregar alguna funcionalidad al programa "Hola Mundo", la aplicación tomará un nombre y al presionar un botón se mostrara un mensaje de bienvenida al nombre que le hemos dado como entrada.

No entraremos en detalles de código ya que éste se lo analizará con más detalle en otras entradas ya que la aplicación que vamos a desarrollar es una motivación.

Empecemos,

Abrimos main.xml que se encuentra en la carpeta res -> layout como se muestra a continuación:


Copiamos y guardamos el siguiente código en la vista main.xml



    
    

    
Y el siguiente código en strings.xml




    HolaMundo
    Saludar




Abrimos HolaMundoActivity.java que se encuentra en la carpeta src como se muestra a continuación:

Copiamos lo siguiente y guardamos:

package android.developers.loja.group.HolaMundo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class HolaMundoActivity extends Activity {
 /** Called when the activity is first created. */

 // Inicializamos las variables con su tipo de recurso
 EditText obtenerNombre;
 Button saludar;
 TextView mostrarSaludo;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  // Obtenemos el recurso y lo guardamos en cada variable a la que
  // pertenezca
  obtenerNombre = (EditText) findViewById(R.id.ediTxtNombre);
  saludar = (Button) findViewById(R.id.btnSaludar);
  mostrarSaludo = (TextView) findViewById(R.id.txtMuestra);

  // Se lanza un evento al presionar el boton
  saludar.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
    // Se muestra el mensaje y el nombre que hemos escrito
    // setText() coloca un texto en el TextView
    // getText() obtiene el nombre que ingresamos en el EditText
    mostrarSaludo
      .setText("Bienvenido a Android Developers Loja Group: "
        + obtenerNombre.getText().toString());
   }
  });
 }
}

Con ésto hemos terminado la aplicación, ahora vamos a hacer correr la aplicación en el emulador de Android presionando la tecla F11
Ingresamos cualquier nombre y presionamos el botón "Saludar"


Hola Mundo (parte 1)

Bienvenidos, en está primera parte vamos a analizar nuestro primer programa en Android, el clásico "Hola Mundo". Como en cada lenguaje de programación, el "Hola Mundo" nos permite básicamente:

  • Cómo generar un nuevo proyecto
  • Entender como es la estructura del programa
  • Que se genera de manera automática al crear un nuevo proyecto
  • Que es lo que podemos modificar y que "NO "

Éstas son unas características básicas que analizaremos en está primera parte, pero como veremos es muy fácil la creación del "Hola Mundo" pondremos alguna funcionalidad para hacerlo a nuestro programa más llamativo lo que veremos en Hola Mundo (parte 2).

Antes de empezar, en la entrada anterior se explico la instalación y configuración del SDK de Android en Eclipse.

Empecemos.

1. Abrimos eclipse, luego en File -> New -> podemos ver la siguiente imagen, en mi caso sale "Android Proyect" como 2da opción pero si a ti no te sale, debes ir al final y seleccionar "Other" que desplegará un asistente, busca la carpeta Android y selecciona "Android Proyect".


Asegurate de seleccionar "Android Proyect"

2. Nos va aparecer un asistente, dejamos la opción por defecto ya que vamos a crear un nuevo proyecto en nuestro workspace, escribimos como nombre de proyecto HolaMundo y presionamos Next,


3. El siguiente paso es seleccionar el SDK con el cual vamos a desarrollar nuestra aplicación, yo elegí Android 2.3.3, pero tu puedes elegir la versión de SDK que quieras, presiona Next.
(Nota:
Si quieres mas información de como instalar mas versiones de SDK consulta aqui.)


4. Por último nos aparece que especifiquemos el nombre del paquete, como en cualquier lenguaje Java, cada paquete se separan con puntos, vamos a escribir: android.developers.loja.group.HolaMundo
Seleccionamos Create Activity, y dejamos el nombre que nos genero automáticamente el asistente y presionamos Finish

(Nota: 
Puedes especificar cualquier nombre de paquete y a la actividad.
La actividad básicamente significa que lo que acabamos de crear se va a mostrar en pantalla, pero todo ésto lo analizaremos mas en detalle en otra entrada)

Una vez finalizado el asistente se nos va a generar lo siguiente: 
Como podemos ver en la carpeta src se encuentra nuestro paquete que creamos anteriormente y dentro de éste se encuentra la actividad creada que es una clase java en donde vamos a realizar toda la lógica de programación.

La carpeta gen contiene el mismo paquete que creamos y dentro una clase llamada R.java, es muy importante esta clase ya que aquí se van a crear accesos a los recursos que creemos en la carpeta res que vamos a llamar cuando programemos de una manera fácil. Esta clase NO HAY QUE EDITARLA

Luego podemos ver la versión de SDK que elegimos, en nuestro caso la 2.3.3

La carpeta res contiene unas carpetas drawable-hdpi, drawable-ldpi, drawable-mdpi aquí vamos a alojar archivos multimedia tales como fotos, vídeos, música en las aplicaciones. Android reconoce el dispositivo y muestra dependiendo de las características del equipo el archivo que mejor se adapte a él. Están subrayadas con negrita la h, l y m que significan high, low y medium. Ésto quiere decir que podemos por ejemplo poner una foto de alta, media y baja calidad en su respectiva carpeta y Android reconoce el equipo y muestra la que mejor se adapte a sus características.

La carpeta layout contiene una archivo llamado main.xml es aqui donde vamos a crear la interfaz al usuario, agregar botones, capas, textos, etc.

La carpeta values contiene el archivo strings.xml en donde vamos a agregar todos los strings que creemos en el proyecto, esta es una poderosa funcionalidad ya que aquí si queremos hacer nuestra aplicación multilenguaje aquí agregamos los idiomas de la aplicación, en otra entrada haremos una demostración de ésta característica.

Y por último se encuentra un archivo muy importante llamado AndroidManifiest.xml, aquí vamos a definir los permisos que tendrá nuestra aplicación por ejemplo usar la cámara, internet, WiFi, etc. y aquí se definirán las actividades que tendrá nuestra aplicación.

En la siguiente parte comenzaremos a introducir código a nuestro programa.


viernes, 24 de febrero de 2012

Instalación y Configuración de Android SDK

En esta publicación explicaré como instalar el Kit de Desarrollo de Software de Android (Android SKD). Para realizar esto seguiremos los consejos que nos da la pagina oficial de Android Developers.

1. El primer requerimiento que se debe cumplir es tener instalado el SDK de Java. En esta publicación no se explicará como instalar y configurar el SDK de Java por lo que debemos tenerlo instalado y configurado previamente. Si aún no lo tenemos instalado podemos hacer clic en este enlace para descargarlo e instalarlo.

2. El segundo requerimiento que se debe cumplir es instalar Eclipse IDE para poder programar nuestra aplicaciones con Android. Para poder descargarlo hacemos clic en este enlace. En esta página seleccionamos Eclipse Classic como se nos recomienda en la página de Android Developers.

Cabe indicar que al descargar Eclipse no se nos da un instalador para poder ejecutar, sino que es un archivo comprimido, al cual debemos descomprimirlo y copiarlo en la raíz del disco duro. Por ejemplo cuando descomprimamos vamos a tener la siguiente ruta (C:\Eclipse).

3. El tercer requerimiento es descargar el SDK de Android. para esto hacemos clic en este enlace y seleccionamos el paquete correspondiente al Sistema Operativo en el que vamos a trabajar. Yo estoy trabajando en Windows pero en este caso no voy a descargar el paquete recomendado sino el archivo comprimido zip, como se muestra en la siguiente imagen.

Una vez descargado el paquete de Android SDK procedemos a descomprimirlo en la raíz del disco duro de tal manera que tengamos la siguiente ruta (C:\android-sdk-windows). La carpeta contiene los siguientes archivos (add-ons, platforms, tools, AVD Manager, SDK Manager y SDK Reader), como se muestra en la siguiente imagen.


Hacemos clic en SDK Manager. Se nos muestra una pantalla con los paquetes. En mi caso el sistema de mi dispositivo movil es 2.3.3, por esto instalaré el paquete 2.33 y aparte instalarétambién el paquete 2.2. Ustedes pueden instalar el que les convenga o también pueden instalar todos. Además se debe instalar las carpetas Tools y Extras que contienen herramientas interesantes que podremos ver en siguientes publicaciones. La siguiente imagen muestra lo que hemos dicho.


Con esto ya tenemos instalados los paquetes y herramientas necesarias de Android SDK.

4. El cuarto requerimiento es instalar el ADT Plugin para Eclipse. Para realizar esto abrimos el Eclipse que instalamos o descargamos anteriormente (C:\Eclipse\eclipse.exe si no lo puedes encontrar). Una vez abierto nos vamos a Help->Installa New Software. Eclipse nos muestra una nueva ventana. Hacemos clic en el boton Add. El sistema nos muestra un cuadro de diálogo, en el cual escribimos lo siguiente en los campos correspontientes:
  • Name: ADT Plugin
  • Location: https://dl-ssl.google.com/android/eclipse/
La siguiente imagen muestra lo que hemos realizado hasta ahora.


Hacemos clic en el boton OK. Eclipse nos presenta los plugins disponibles asociados al Android SDK como se muestra en la siguiente imagen. Debemos instalar todos para poder desarrollar nuestras aplicaciones desde eclipse. Instalamos todos los plugins. Luego reiniciamos Eclipse.

5. El Quinto y último paso que debemos hacer para que nuestra Android SDK quede configurado correctamente, es instalar un AVD (Android Virtual Device). El AVD es el emulador que nos ayudará a ver el resultado de nuestras aplicaciones si no contamos con un dispositivo móvil. En caso de que contemos con un dispositivo como un telefono con Android o una tableta, simplemente deberemos conectar a la computadora para correr directamente las aplicaciones en el dispositivo.

Para instalar el emulador, dentro del eclipse vamos a Window->AVD Manager. Eclipse nos mostrará una ventana con la lista de emuladores instalados. Hacemos clic en New. Eclipse nos mostrará un cuadro en el cual deberemos escribir el nombre del emulador y seleccionar el target correspondiente (ejemplo Android 2.2 o Android 2.3.3 en mi caso). Finalmente clic en Create AVD. La siguiente imagen muestra el proceso mencionado.

Con esto queda instalado y configurado nuestro Android SDK y estaremos listos para realizar nuestras primeras aplicaciones para Android. Espero les haya servido este aporte.

Referencia: Android Developers

Bienvenidos a Android Developers Loja Group

Android Developers Loja Group es un blog que nace por las ganas de aprender a desarrollar aplicaciones utilizando este nuevo sistema operativo para dispositivos móviles llamado Android.

Antes de nada queremos dejar en claro que somos gente que estamos iniciando en Android, pero que con el pasar de los días vamos aprendiendo algo más que nos gustaría compartir con ustedes.

Las publicaciones que iremos subiendo comenzarán con lo más básico que es la instalación del SDK de Android. También publicaremos temas como consumo de servicios web en Android, uso de controladores como camara, bluetooth, acelerometro, etc.

Por ahora es todo solamente un cordial saludo a todas las personas que visiten nuestro blog y como mencione antes. Pronto estaremos publicando nuevos temas.


Atentamente


Android Developers Loja Group