Páginas

miércoles, 26 de febrero de 2014

Conceptos fundamentales de Android

Para hacer aplicaciones en Android se nos presentan los Application Components (Componentes de aplicación).
Los App Components son los bloques necesarios para construir una aplicación Android. Cada componente es un punto de entrada del sistema a tu aplicación. No todos los componentes son puntos de entrada para el usuario final y algunos dependen de otros pero cada uno de ellos existe como una entidad propia y juegan roles específicos dentro de nuestra aplicación.
En pocas palabras: Para hacer una aplicación contamos diferentes App Components. Son 4 en total y cada uno sirve para determinadas cosas. Estos son: Activities, Services, Content Providers y Broadcast Receivers.

Activities: Es la interfaz del usuario. Cuando abrís una aplicación y ves el contenido, entonces estás viendo un Activity. Adentro del Activity puede existir un mundo de componentitos. Eso lo vamos a ver más tarde. Ahora quiero que les quede que, un Activity es una pantalla completa.

Ejemplo: Abrís la aplicación del Email y ves un Activity principal que ocupa toda la pantalla. Hiciste click en Configuración y se te abre un Activity que te ocupa toda la pantalla con las configuraciones de la aplicación del Email.

Services: Son procesos que se ejecutan en segundo plano. ¿Quieren hacer una tarea que no requiera de una interfaz visual? Usen un Service.

Content Providers: Es un lugar para almacenar contenido compartido entre aplicaciones (o no). Gracias a los Content Providers tu aplicación puede hacer consultas o modificar datos (si el Content Provider lo permite) de aplicaciones que tengan Content Providers. Un ejemplo de esto es el Content Provider de los contactos del teléfono. Se almacenan en el sistema pero cualquier aplicación puede consultarlo y modificarlo. Bien, al igual que con los contactos, nuestra propia aplicación puede ser un proveedora de contenidos (Content Provider).

Broadcast Receivers: La traducción sería algo así como Receptor de Radiodifusión. Entendemos por Broadcast al concepto de cuando una aplicación o mismo el sistema operativo necesita informarle algo a TODOS. Eso es un Broadcast. Quién preste atención a ese Broadcast será un Broadcast Receiver.

Imagínenselo como radio. Transmite información a todos pero sólo las radios sintonizadas escuchan la música. Las radios sintonizadas, en este ejemplo, serían los Broadcast Receivers.

La idea de los Broadcast es la de permitir que las aplicaciones den un mensaje a todas las aplicaciones y que ese mensaje lo atajen los Broadcast Receivers.

Entonces, uno puede configurar su aplicación para que sea receptora mensajes. Esos mensajes pueden ser mensajes del sistema operativo o de otras aplicaciones.

En este link van a poder encontrar más información sobre lo que les acabo de comentar.

Android Fundamentals

Para poder utilizar cualquiera de estos Application Components debemos decirle a nuestra aplicación que vamos a utilizarlos.

Al instalarse nuestra aplicación sobre Android, este tiene que extraer cierta información (meta-data) acerca de lo que está instalando. Algunos ejemplos de esto:

  • Si la aplicación que estamos construyendo contiene Broadcast Receivers de determinados eventos, Android tiene que saberlo para poder redirigirle los mismos.
  • Si la aplicación que estamos construyendo va a conectarse en internet, Android tiene que saberlo para concederle los permisos de acceso a internet y para notificarle al usuario que la está instalando que la aplicación va a conectarse.
En pocas palabras, prácticamente todo lo que hagamos y contenga nuestra aplicación, hay que declararlo. El lugar para hacerlo es el archivo contenido en la raíz de nuestro proyecto Android: El archivo AndroidManifest.xml.

Este archivo contiene meta-data que es utilizada por es sistema operativo. Sobre este archivo declararemos nuestros App Components así como también los permisos para las acciones que queremos que lleve a cabo nuestra aplicación.

jueves, 13 de febrero de 2014

Crear un proyecto usando Android Studio

Un proyecto, en Android Studio engloba muchos conceptos. Un proyecto, no necesariamente es una aplicación como la conocemos en Android, sino que un proyecto puede ser un conjunto de aplicaciones, módulos, librerías y otros.

En este caso vamos a crear un proyecto que contenga una única aplicación.

Para crear un nuevo proyecto en Android Studio hay que iniciar el programa e ir a la opción New Proyect. Si ya tenías abierto un proyecto anterior, tenés que ir a la barra de herramientas y darle click a File -> New Proyect.

Esto inicia un wizard donde se nos van a preguntar unas cuantas cosas.

Application Name: El nombre de la aplicación que queremos hacer. Nuestra primer aplicación dará nombre, también, al proyecto.

Module Name: De la misma manera que un proyecto es un conjunto de aplicaciones y otros. Una aplicación puede contener varios módulos.

En el módulo es donde nosotros realizaremos nuestro código. Nuestro proyecto puede contener muchos módulos y estos verse unos con otros. Al crear el proyecto, debemos crear nuestro primer módulo.

Package Name: La forma de la estructura de paquetes de Java donde se alojará el código fuente. Además, esto identificará a la aplicación en el Google Play Store a futuro.

Si miramos la URL de una aplicación subida en el Google Play Store podemos ver que el parámetro id del query string contiene el nombre del package name que utilicemos.

https://play.google.com/store/apps/details?id=com.janke.lexicabble

Project Location: La ubicación del proyecto en nuestro disco rígido.

Minimun Required SDK: Es la versión mínima de la SDK de Android para la cual crearemos nuestra aplicación.

A menor nivel de la SDK habrá mayor cantidad de dispositivos que serán admitidos para correr la aplicación pero no dispondremos de las últimas mejoras y funcionalidades de Android.

A mayor nivel de la SDK tendremos menos dispositivos compatibles pero contaremos con las últimas funcionalidades de Android.

El valor a elegir depende de lo que queramos hacer. Primero que nada hay que saber cuál es la versión más utilizada de Android actualmente. Eso lo pueden ver desde el siguiente Dashboard:

Android Developers Dashboard

Otra pauta a tener en cuenta es qué funcionalidad desean que tenga su aplicación. Para ello deberían saber qué características tiene cada una de las SDK.

Compile with: Es el nivel de SDK que utilizaremos para compilar nuestro código. Nosotros podemos hacer una aplicación para Android 2.1 (nivel 7) usando la SDK que corresponde con Android 4.4 (nivel 19) pero no al revés.

En la práctica, este valor debe ser el SDK de mayor nivel que tengamos instalada.

Target SDK: Es el nivel de la SDK para la cual la aplicación fue diseñada. Es decir, soportará el nivel más bajo establecido por el Minimum Required SDK, pero la aplicación fue diseñada para su Target SDK.

Establecer ese valor, le permite a la SDK elegir la mejor manera de hacer las cosas. Hay funcionalidades que fueron optimizadas versión a versión. Este parámetro le permite a la SDK tomar decisiones si usar modos de compatibilidad con versiones anteriores o bien utilizar las nuevas.

A fines prácticos, este valor debe ser el mismo que el de la SDK que estamos usando para compilar nuestro código.

Language Level: Es el compilador de java que se utilizará para interpretar la sintaxis. En java uno puede atrapar muchas excepciones usando el siguiente código:

try{
...
}catch(NullPointerException e){
}catch(Exception e{
}

Pero uno puede subir el nivel del lenguaje para atrapar las mismas excepciones pero con un código más simple como se ve a continuación:

try{
...
}catch(NullPointerException | Exception e){
}

Mark this project as a library: Esta opción indica que el primer módulo que estamos creando va a ser del tipo librería. Una librería no puede ser ejecutada en un emulador de Android o en un dispositivo como lo hace una aplicación. La librería tiene razón de ser para ser utilizada dentro de una aplicación.

> Otras opciones

Estas opciones nos ahorran algún tiempo a la hora de hacer nuestro código:

Theme: Configura nuestra aplicación con un tema visual. A partir de la versión 3.0 de Android Google estableció su Theme por defecto a uno llamado Holo. A continuación dejo un link con un poco más de información acerca de los Themes o Temas.

Create custom launcher icon: Permite crear el icono de inicio de tu aplicación. Si se tilda este check se va a abrir una ventana paso a paso para crear unos iconos.

Create activity: Crea una Activity con algunos templates para ya tener una estructura básica para nuestro proyecto y no empezar todo desde 0. Es una buena alternativa para realizar pruebas rápidas más que nada.


Una vez configurado todo le damos click al botón Finish y ¡voilá! Ahí tenemos nuestro proyecto :D

Android SDK

La SDK de Android es el software que tenemos que instalar en nuestras computadoras para poder acceder a toda la funcionalidad provista por Android.

Ejemplo, se lanza el sistema operativo Android 4.4 al mercado. Esta versión cuenta con soporte para impresoras. Entonces, Google lanza la SDK nivel 19 que corresponde con la versión 4.4 de Android.

Esta versión de la SDK cuenta con las características que se pueden leer aquí y provee a los desarrolladores que la utilicen de todas las especificaciones, clases y métodos para hacer que sus aplicaciones tengan soporte para impresoras. ¿Se entiende?

La SDK es un software independiente que es consumido por nuestro IDE de desarrollo (Android Studio, Eclipse, etc). Podemos tener 2 IDEs y una sola SDK que provea a ambos.

A continuación se listan las SDKs disponibles actualmente (hasta febrero del 2014) con un link a sus Highligths o características principales: