I am developing an android application using google app engine, cloud endpoints, datastore and objectify. I want do caching of application's data so that request on the server comes only when there is a change in the application's data.
There is field name etag associated with each response from app engine server which can be use for the cache. But i don't know how to do that.
I think there is built in caching but I am not sure.
Question
Does app engine provide built-in caching? if yes then how? if no then how can I acheive that using endpoints.
You can enable caching in Objectify. If you do that all data will be stored in the App Engine MemCache. That would improve your performance a lot.
Related
In my application I am saving user's data within an SQlite database on their device. I want to add the functionality that whenever WIFI is available the contents of the Database can be uploaded on to Google App engine's Data Store.
I want to know if this is possible? And if so, how difficult is it to implement?
Of course it's possible to do that, even more, it's an easy stuff. All you have to do is to create a web application with google app engine, than your android application sends its data to GAE. You can do that using HttpURLConnection to send your data and java servlets to intercept your requests and save your data in datastore. You can also use web services.
On GAE side, you need to create backend API using Cloud Endpoints and generate client library for Android devices. Your backend will be responsible to receive the data and save it in datastore. Another alternative will be to use Cloud Datastore API Client Library to interact with datastore directly, but endpoints is a much better option.
I would like to provide syncing to cloud feature to an Android app.
I had read the tutorial at http://developer.android.com/training/cloudsync/index.html & http://android-developers.blogspot.com/2013/06/adding-backend-to-your-app-in-android.html
The examples being shown is using Google App Engine as backend storage.
I was wondering, is it possible not to tie to Google App Engine platform? For instance, using Amazon EC2?
Yes it is possible but you have to do more work on hosting a web service in EC2. Then your Android app will connect to it like this Android example. To write data instead of reading, use HTTP POST or PUT instead of GET. You would also have to implement your own user authentication.
Sure you can. Here's the Amazon AWS SDK for Android:
http://aws.amazon.com/sdkforandroid/
Yes, you will lose a little of the ease and integration of GAE, but you will gain something in flexibility. The GAE features (e.g. user authentication) tie you into Google's Android, making it harder to support Amazon or BB Android. And GAE limits you to their transactional HTTP model of communication.
Sorry for my English(I am not good in english please excuse).
I am working as a android application developer.I try to developing one application with backend support that means i want to use (web services) inside of the application.For that one i am trying to use google cloud for storing my data and access that data in json formt.It is possible to use that cloud data inside of my application.
For storing data in cloud they charge me something?
Please any one help me experts....
Thanks in advance...
At the onset, what you are trying to do is possible within App Engine. To summarise, you want to access some of your data that is stored using one or more of the available choices in the Google Cloud Platform and expose that over a Web Service running in your App Engine app.
When it comes to exposing your existing functionality over REST+JSON, Google Cloud Endpoints is a great way to get started, though nothing prevents you from rolling out your own.
For storage, there are several options and while you need to be mindful of the quotas/pricing, a great deal depends on which mechanism you want to employ as far as your storage API is concerned
Google Datastore API and Blobstore : The Google Datastore API is a non-relational database. The Blobstore is for storing large amounts of data (think images/videos). You have a free quota of 1GB for Datastore and 5GB for Blobstore within your App Engine application quota.
Cloud SQL : If you want to use a relational database , you can use Google Cloud SQL too. The pricing is mentioned on the page.
Google Cloud Storage : This is another storage option available with a Java client API. The pricing is mentioned on the page.
Google Drive : If your application is more of a personal nature and you wish to store some data within a Google Drive account of the user, you could look at that too.
Keep in mind that all these options are available as part of the Google Cloud Platform.
Hope this helps.
I am developing an app that will run in the way that presents restaurant menus and have like buttons for each dish. I am thinking of storing the menus and uses data on amazon cloud server. Any better solutions? If using cloud server, how to access the data in my android app? Implementing sort of web service? or is able to access like querying a remote database?
You can download aws sdk for Android here: http://aws.amazon.com/pt/sdkforandroid/
From api you can access all amazon services, an easy way to start is by using SimpleDB to store your data, probably free tier will solve your problem.
But I strongly recomend an Android cache for offline access to your app, which can be built up using SQLite.
I'm trying to use Google Cloud datastore as remote data collector of a bunch of sensors, connected via an android Smartphone.
Firstly I'm trying to make it working in standard java.
The question is if it is possible to access Datastore directly from an android App of I need to build a GAE app that interact with the datastore.
I read for a while the documentation about the google api, but it is not really clear, how to use the Oauth 2.0 protocol.
Thank You all
You can use the oath2 support built into android as long as every user of the app is an admin of your google cloud project/app engine app. If you want to allow untrusted users to upload data, you would have to use your own endpoint and authentication strategy.