Cómo conectar Amazon DynamoDB con tu aplicación Android

DynamoDB es un servicio de base de datos NoSQL proporcionado por Amazon Web Services, lo que significa que está diseñado para almacenar y recuperar cualquier cantidad de datos que necesite, esto puede ser muy útil en una aplicación de Android o iOS. En este tutorial, vamos a seguir todos los pasos para conectar Amazon DynamoDB en su aplicación de Android.

Preparar

Antes de comenzar con la configuración, es importante decirte que para conectar AWS DynamoDB, debes tener una cuenta de AWS y un estudio de Android.

Después de configurar tu cuenta de AWS y tu estudio de Android, debe obtener AWS Mobile SDK para Android. Y cómo hago eso, bueno, hay tres maneras fáciles de hacerlo:

1. Usando gradle

In your build.gradle file, you are going to add the next dependencies as shown in the example below

dependencies{
      compile 'com.amazonaws:aws-android-sdk-core:2.6.+'
compile 'com.amazonaws:aws-android-sdk-s3:2.6.+'
compile 'com.amazonaws:aws-android-sdk-ddb:2.6.+'
compile 'com.amazonaws:aws-android-sdk-core:2.4.4'
compile 'com.amazonaws:aws-android-sdk-ddb:2.4.4'
compile 'com.amazonaws:aws-android-sdk-ddb-document:2.4.4'

}

2. Importación de archivos Jar

Para que puedas obtener los archivos Jar, debes descargar el SDK http://aws.amazon.com/mobile/sdk donde verás la siguiente pantalla.

Amazon-dynamoDB-Image

En la sección de Android, haz clic en el enlace Descargar SDK, y comenzará a descargar automáticamente el archivo en su navegador. Luego, en el estudio de Android, agrega el archivo descargado a tu carpeta / libs y sincroniza el proyecto, se actualizará automáticamente.

3. Usando Maven

Este SDK que estamos tratando de descargar es compatible con Apache maven, que es un software que puede ayudar a administrar la compilación de un proyecto. Cada proyecto de maven contiene un pom.xml en el que puedes especificar los servicios que deseas agregar a tu proyecto. Esto es útil porque solo agregas las dependencias que necesitas, no todos los archivos jar.

Está bien, ahora que tienes el SDK instalado en tu proyecto, podemos continuar con la configuración. El siguiente paso es bastante fácil, en tu AndroidManifest.xml agregarás los permisos como se muestra en el siguiente ejemplo.

< uses:permission android:name=”android.permission.INTERNET” />
< uses:permission android:name=”android.permission.ACCESS_NETWORK_STATE” />
< uses:permission android:name=”android.permission.ACCESS_WIFI_STATE” />

El último paso es que debes obtener tus credenciales de AWS.
De acuerdo, ahora que tienes configurado AWS SDK en tu proyecto, continuemos con la conexión entre tu proyecto y tu base de datos almacenada en Amazon DynamoDB.

Creando una nueva tabla

Para crear una nueva tabla, necesitamos ingresar a la consola para dar un nombre a la nueva tabla y seleccionar una clave primaria para los datos que se almacenarán en ella. A continuación, haz clic en continuar y tendrás que elegir la capacidad de rendimiento de la tabla (leer unidades de capacidad y escribir unidades de capacidad). En el siguiente paso, puedes seleccionar un límite de solicitudes que, en caso de que pase, recibirás una notificación por correo electrónico. Por último, haz clic en "crear tabla".

Vamos a hacerlo, ahora que tienes toda la configuración previa y la tabla creada, estás listo para conectar DynamoDb a tu proyecto de Android. En primer lugar, debe importar una biblioteca en su clase java, como se muestra en el siguiente ejemplo:

import com.amazonaws.auth.CognitoCachingCredentialsProvider;
import com.amazonaws.mobileconnectors.dynamodbv2.document.Table;
import com.amazonaws.mobileconnectors.dynamodbv2.document.UpdateItemOperationConfig;
import com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.Document;
import com.amazonaws.mobileconnectors.dynamodbv2.document.datatype.Primitive;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import com.amazonaws.services.dynamodbv2.model.ReturnValue;

Ahora que tienes las importaciones, vas a agregar el código que se muestra a continuación:

CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
       getApplicationContext(), COGNITO_POOL_ID, COGNITO_REGION);

Lo que hace este código es que estamos creando credenciales de Amazon Cognito para los permisos de acceso; a continuación, crearemos un objeto DynamoDbClient utilizando las credenciales de Cognito creadas anteriormente como se muestra en el siguiente ejemplo:

AmazonDynamoDBClient dbClient = new AmazonDynamoDBClient(credentialsProvider);

Y finalmente vas a crear una referencia de tabla como esta:

Table dbTable = Table.loadTable(dbClient, TABLE_NAME);

Ahora que tienes la referencia de la tabla, puedes crear, leer, editar y eliminar datos de tu tabla:

Crear:

public void create(Document memo) {
   if (!memo.containsKey("userId")) {
       memo.put("userId", credentialsProvider.getCachedIdentityId());
   }
   if (!memo.containsKey("noteId")) {
       memo.put("noteId", UUID.randomUUID().toString());
   }
   if (!memo.containsKey("creationDate")) {
       memo.put("creationDate", System.currentTimeMillis());
   }
   dbTable.putItem(memo);
}

Actualizar:

public void update(Document memo) {
   Document document = dbTable.updateItem(memo, new         UpdateItemOperationConfig().withReturnValues(ReturnValue.ALL_NEW));
}

Borrar:

 
public void delete(Document memo) {
   dbTable.deleteItem(
           memo.get("userId").asPrimitive(), 
           memo.get("noteId").asPrimitive());  
}

Leer:

public Document getById(String id) {
   return dbTable.getItem(new Primitive(credentialsProvider.getCachedIdentityId()), new Primitive(noteId));
}
 
 public List <Document> getAll() {
   return dbTable.query(new Primitive(credentialsProvider.getCachedIdentityId())).getAllResults();
}

Y ahí lo tienes, conectaste con éxito tu proyecto de Android a Amazon DynamoDb, en ClickIT usamos tecnologías como DynamoDb y Amazon Web Services para dar mejor calidad a los proyectos de nuestros clientes y mantenerlos actualizados con las mejores tecnologías actuales.

Hacemos aplicaciones memorables en Android

con código impecable

Tagged under:

Leave a Reply

Your email address will not be published.

Google Analytics Alternative