I made an android application which is collecting data from a wearable device and storing it into a local sqlite database.
Now I want to sync the data of all android devices local sqlite databases to cloud and visualize the data and perform data analytics related operations on it.
Can anyone suggest me what to do?
I have looked around multiple clouds like AWS, GAE, AZURE, HEROKU, GoDadddy shared cloud etc for storing my data in a central database.
My question is that should I directly store data from android into mysql or some other database using jdbc or odbc driver or write a webservice or api for storing data in cloud?
I want to sync data after some time interval i.e. a day or so, between local android device and cloud.
According to your description, based on my understanding, you want to sync up the data from wearable device between all android devices and cloud.
Per my experience, the way to directly store data from android into database is not a good choice. The normal way is creating a web service or rest apis to communicate with mobile device for data synchronizing to cloud.
On Azure, the best practice for your needs is that creating an Azure Mobile App instance and enable the Offline Data Sync feature in Azure Mobile Apps to implement this. You can refer to the Azure offical document Offline Data Sync in Azure Mobile Apps to know the related concept.
You can get start with the tutorial for Android within Azure Mobile Apps, and then continous to the next tutorial to implement the feature of offline sync up data automatically.
As reference, the tutorial How to use the Android client library for Mobile Apps will shows you how to use the Android client SDK for Mobile Apps to access the data from SQL Azure table online.
Meanwhile, to visualize the data and perform data analytics related operations on the cloud data, Azure support more Intelligence + Analysis services which could be used for your future plan.
Related
I am planning to make a mobile application for both iOS and Android. First, I would like to make the iOS version of the app. I am planning to use CoreData to save data locally when the mobile is not connected to the internet, then when the phone is connected to the internet, I would like to add the data (which is saved by the help of the CoreData) to the FireBase, then I would like to download all the data from the Firebase to the app to get the latest data.
Is there any other solution to be able to save data offline and synchronize it to other platforms (in this case to Android) when the app is connected to the internet?
Since you're already looking into Firebase, I'd suggest leveraging their Realtime Database tool, as it handles everything from automatically syncing data between client and server, and leverages offline databases in case your users go offline and they have SDKs for iOS and Android.
Google has launched Google Cloud Firestore. Just as they says...
"Cloud Firestore is a flexible, scalable database for mobile, web, and server development from Firebase and Google Cloud Platform. Like Firebase Realtime Database, it keeps your data in sync across client apps through realtime listeners and offers offline support for mobile and web".
The question is...
In the application I am thinking about, needs that everyone to have data perfectly sync between devices (web and mobile). Ok, Firestore looks perfect for that.
* But what if my application also needs to sync between devices in a local network. Let's suppose if the internet connection is gone (whatever reasons...)*.
Does anyone could give me a direction how could it be made using Google Cloud Firestore (I don't mean the code). I use node for web application and Android for mobile.
Cloud Firestore as well as Firebase Reatime Database supports offline data persistence. This feature caches a copy of the Cloud Firestore data that your app is actively using, so your app can access the data when the device is offline. So, if you are using:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
It means that Firestore will create a local copy of your database on your device, which in turn means that you'll be able to query your the database even if you are offline. So every change that is made while you are offline, will be updated on Firebase servers once you are back online. Unfortunately this local copy of your database cannot exist elsewhere than on your device. It cannot be hosted in a local network. Also all CRUD operation can be done only on the database which are hosted on users device.
Another thing to note, is that once the Internet connectivity is reestablished, you'll receive the appropriate current server state. The Firebase client synchronizes that data with the Firebase servers and with other clients that are using the same database. So, as a conclusion, in order to keep all your devices from a local network synced, you need to have internet access.
I've created an Android App which the user creates data in an SQLite database and also creates picture and audio files. The next stage is to create an offline sync to Microsoft Azure (SQL Server and Blob Storage). There will be multiple devices for the App which all need to sync, so data on all devices will be the same.
What is the best method that encapsulates Android App SQLite to Microsoft SQL Server and created files to blob storage in Azure which will handle two way sync?
I've looked at Azure's MobileServiceClient but don't think that totally fits my needs as its just data tables. Maybe Sync Adapter instead?
I'm thinking I should create my own sync but not sure where to start? I think in the app i want to keep a changes table so when data is created or changed its logged in the table and then when it syncs it looks at this table and transfers the data and files. Then on the server side I'm not sure how to handle syncs from multiple devices so that all devices have the same data.
Anyway any pointers would be great.
Thanks
There is a similar SO thread Upload images to Azure Blob Storage from an Android device With Offline Sync which discussed about offline sync for files with Azure Storage, that may helpful for you, but now Azure Mobile SDK for Android in Java doesn't support it, just implement the feature by self. If using Xamarin for Android, there is a solution introduced in the offical blog, that you can refer to and possibly implement this in Java.
Hope it helps.
I'm developing an app and a website simultaneously. The website will be done in django and using Google' app engine, so therefore Google's database. IS there anyway i can download and use the database for an android app? Preferably I would like it to download and make it available offline to the users.
use a REST api like django tastypie on the server side, and consume the rest resources for the models you need with your android app. After you get the Json/xml messages on your android just save it to the local sqllite db
Android does provide a SQLite interface for you to read and write to a local db. You could fetch the db through a web request and save it locally, yes. Being on Google App Engine does not help / hinder your ability to do this.
I've read lots about using local storage for android but how would I connect to an SQL database online to send and get data?
For example, if I was making a game and wanted to create a worldwide high score table, how would I store that online and make sure it was only available to that app?
I would recommend you to implement a Web Service on the server. And use The Web Service as a layer between your SQL Server database and your Android application.
Have a read about Three-tier architecture.