Amazon DynamoDb is a nonrelational database that is fast and flexible. It is a NoSQL database service with consistent, single-digit millisecond latency at any scale. DynamoDB is a managed cloud database supporting both document and key-value store models
You can use DynamoDB in your Android apps.
Using the DynamoDB Mapper API you would define a model in your app matching the model of your DynamoDB table. You then use the DynamoDBMapper class as the entry point to DynamoDB to access your data.
The Document API lets you access the individual attributes within data objects directly. You don’t have to map the DynamoDB table properties to your apps’ class members. The Document API acts as an interface between your app and the returned data.
The Document API has new data types to assist in the serialization and deserialization process.
Both APIs have methods enabling you to perform create, update and delete operations as well as executing queries on your DynamoDB tables.
The difference between the two APIs is how the data is represented in your app. You can choose which API to use and you can even mix and match the two depending on your needs.
This tutorial uses the Document API to interact with our DynamoDB table.
Think of a Realm as a database.
A Realm is similar to a database and can contain different kinds of objects. You can use a Realm in your app instead of an SQL database.
The Realm is saved in a file on your device and can be backed up.
You can also create a Realm in memory which is destroyed when you close the realm.
Realm works seamlessly with Android and is very easy to set up and use.
Firebase is a Google product.
Use the start-up package for free and only start paying once you’ve expanded beyond the free package limits. You can check out the pricing here https://firebase.google.com/pricing/
Well, it's the next best thing since sliced bread! This is what they can do for you:
You use a content provider to make your database accessible to other apps.
You use a content resolver to access a database in another app.
We covered building our provider class in Part 1. Now in Part 2, we’ll see how we use the provider to access the database.
We will be accessing the database from within the app that created it but we will still use a content resolver to do so.
SQLite databases can only be used by the app that created it. However you can choose to share the database with other apps if you wish.
You will need a content provider to manage access to this shared database.
It takes care of data security and communicates between the database and any app wanting to use it.