Google Play Services: Introducción y Preparativos

Desde hace algún tiempo, y de forma bastante acertada, Google está tendiendo a incorporar muchas de sus nuevas APIs para desarrolladores Android (y actualizaciones de algunas ya existentes) dentro de los llamados Google Play Services. Así por ejemplo, la API de mapas, la de localización, o la de mensajería push, que antes existían de forma independiente, han pasado a formar parte de estos servicios en los últimos meses. Y por supuesto se han incorporado otras nuevas, como la de integración con Google+ o los famosos Game Services.

Los Google Play Services viven como una aplicación más en todos los dispositivos Android (versión 2.2 y superiores), lo que nos aporta la ventaja de no tener que preocuparnos de ellos, ya que son actualizados automáticamente por la plataforma cuando existen novedades. Por decirlo de alguna forma, nosotros tan sólo nos tendremos que preocupar de “conectarnos” a ellos y utilizar las distintas funcionalidades como si fueran parte de nuestra propia aplicación.

En este artículo inicial vamos a ver cómo podemos crear en Eclipse un proyecto capaz de hacer uso de los Google Play Services. Una vez preparado el proyecto como veremos aquí cada servicio requerirá de pasos adicionales para su utilización, por ejemplo el uso de Google Maps requerirá de la obtención de una clave de acceso que nos permita el uso de su API. Estos preparativos adicionales los veremos en cada capítulo específico de cada uno de los servicios.

Empecemos. Cuando queremos hacer uso de cualquiera de las APIs incluidas en los Google Play Services lo primero que tendremos que hacer será importar en Eclipse el proyecto de librería donde se implementan. Este proyecto se puede descargar mediante el SDK Manager de Android, accediendo a la sección Extras y marcando el paquete llamado “Google Play Services“.

SDK Manager - Google Play Services 2

Si observáis la captura anterior, veréis que también existe un paquete llamado “Google Play Services for Froyo”. Éste último sólo deberíamos utilizarlo (en sustitución del primero) si nuestra aplicación necesita ejecutarse en dispositivos con Android 2.2, ya que esta versión de los Play Services probablemente no recibirá las futuras actualizaciones de los servicios. Por tanto, si la versión mínima sobre la que debe ejecutarse nuestra aplicación es al menos la 2.3 usaremos siempre el paquete “Google Play Services”.

Una vez descargado podremos encontrarlo en la siguiente ruta:

<ruta-sdk>extrasgooglegoogle_play_serviceslibprojectgoogle-play-services_lib

Para importarlo en Eclipse utilizaremos la opción de menú “File / Import…”, y seleccionaremos la opción “Android / Existing Android Code Into Workspace”.

File-Import

Pulsamos el botón “Next” y accedemos a las opciones de importación. En el campo “Root Directory” indicamos la ruta indicada anteriormente, nos aseguramos que el proyecto llamado “google-play-services_lib” queda marcado en la lista de “Projects to Import”, y marcamos la opción “Copy projects into workspace”.

Import Project

Finalmente pulsamos “Finish” y el proyecto de librería de los Google Play Services quedará importado en nuestro explorador de paquetes de Eclipse. Como último paso debemos entrar a las propiedades del proyecto importado (botón derecho / Properties), accedemos a la sección “Java Build Path” y nos aseguramos de que la opción “Android Private Libraries” está marcada en la ventana “Order and Export”.

private-libs

Aceptamos, y con esto ya tenemos el proyecto de librería preparado.

El siguiente paso es crear nuestro proyecto, que después hará uso de esta librería. Para ello, creamos un nuevo proyecto Android como siempre (File / New / Project / Android / Android Application Project) y lo configuramos mediante las distintas pantallas del asistente (si no tienes experiencia creando este tipo de proyectos te recomiendo leer los capítulos iniciales del curso). Una vez creado accedemos a sus propiedades (botón derecho / Properties) y entramos en la sección “Android”. Aquí es donde debemos añadir la referencia al proyecto que hemos importado para los Google Play Services. Pulsamos el botón “Add…”, seleccionamos el proyecto importado y aceptamos.

add-library

A continuación, editaremos el fichero AndroidManifest.xml de nuestra aplicación y añadiremos la siguiente cláusula <meta-data> dentro del elemento <application>:

<meta-data android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version" />

Por último, añadiremos al final del fichero proguard-project.txt las siguientes lineas para evitar que esta herramienta elimine algunas clases necesarias:

-keep class * extends java.util.ListResourceBundle {
    protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
    @ccom.google.android.gms.common.annotation.KeepName *;
}

-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

Con esto ya tendríamos nuestro proyecto preparado para hacer uso de cualquiera de las APIs incluidas en los Google Play Services. En los artículos dedicados a cada una de estas APIs haremos siempre referencia a éste para preparar el proyecto y describiremos posteriormente los pasos adicionales específicos de cada servicio.