I am building my mobile apps (Android and iOS). I am not sure if I understand this correctly, but it seems Cloud Endpoints allow you to develop and deploy your own APIs, while App Engine assists you in building a server application? It seems App Engine also allows you to build a web application backend that exposes REST service APIs? So it can do whatever Cloud Endpoints can do? If I use Cloud Endpoints, can my APIs interact with some kind of DB? Is there anything I can do in App Engine but cannot do in Cloud Endpoints in the context of building a REST backend for mobile apps?
I understand this question is messy.. but Google does seems to have confusing documentations there. Thanks!
App Engine is just a compute platform on which Cloud Endpoints enabled apps can run. Cloud Endpoints provides frameworks which make writing a RESTful API easier (Java, Python), while also providing features to help you manage your APIs and access them from generated client libraries. You can use Cloud Endpoints in conjunction with a database of your choosing. The Cloud Endpoints frameworks previously linked essentially make it easy to map HTTP paths to methods, which do whatever you want.
Cloud Endpoints is basically just a framework to make REST APIs on GAE. This is the part you are looking for, "...developers can use services and features available in App Engine standard environment, such as Datastore, Google Cloud Storage, Mail, Url Fetch, Task Queues, and so forth."
So to answer your question, just use Cloud Endpoints if you making an API for your Android app, it's much easier.
Related
I am new to android. I am confused about google cloud platform.My focus is on using android app for RESTful service.
Why do I need google cloud platform when I can use native android library to access RESTful web service like this.( I mean using JSON parsing with HTTPClient/Volley etc)
As far as I have understood that to implement google cloud service, I need an android client, a backend and others....( I m not sure). Why do I need this EXTRA stuff/coding when, as I said before, I can get RESTFul response with conventional way with sdk library.The implementation of Mobile Solutions on Google Cloud Platform is difficult and strenuous task.
What are the cases, when I HAVE to use google cloud platform, cant I do it other easy way?
As per zapl's comment, there really is no reason why you need to use Google Cloud Platform with Android. Nowhere in any of Google's docs does it mention that GCP is a requirement for an Android app. Cloud Platform is a service Google offers if you want to develop your own web applications or backends for mobile applications, but you are by no means locked into using this service.
I m new to GCM do u guys please guide me for using Google App Engine.
I want to create a signup page which registers details of users on Google server
to signup and logging the account
Is it possible to do so?
Thanks
Google App Engine is a Platform as a Service (PaaS) offering that lets you build and run applications on Google’s infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs change. With App Engine, there are no servers for you to maintain. You simply upload your application and it’s ready to go.
For using App Engine you have to first download an appropriate sdk based on your development environment
Download the Google App Engine SDK
For working on a particular language
Google App Engine Languages
Your question mentions a bunch of technologies and sounds a little confused, so I'll try to summarize these different technologies. Google Cloud Messaging (GCM) makes it possible for your Android app to register itself and for your server to broadcast messages to all registered devices. Google App Engine allows you to create a web server that serves as a backend for your Android app (or as a frontend web app) hosted on Google's cloud infrastructure. Google App Engine includes a feature called Cloud Endpoints which simplifies writing a backend for Android by automating serialization/deserialization, authentication, and auto-generating an Android client library for invoking the backend functionality. Google+ sign in allows you to provide users of your application with the ability to sign into your application with their Google+ account. Google+ sign in on the web also makes it possible to provide an opportunity to install your Android app and to persist the sign-in on the installed app.
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.
In my android application I want to store images from my Android application to Google Cloud Storage. For that I'm referring to this Mobil Backend starter example. In that they have a backend database which is deployed on Google Cloud Storage, but I don't know I can deploy my own database there.
What are the steps to query the database in my android app? Please help me to implement this functionality. Can anyone suggest a tutorial or link which provides proper guidelines for using and storing DB on Google Gloud?
Thank you.
If you are writing your own App Engine application that needs to use storage, you have several options in the Google Cloud:
The Mobile Backend Starter using the Datastore API, that provides a NoSQL like datastore in the Google Cloud that your App Engine application can interact with via the Datastore API. By default you get a total of 1GB of space in the free tier, after which you have to pay per use for your storage requirements.
There is the Cloud Storage API, that allows you to save objects to Google Cloud Storage Service. This service is analogous to Amazon S3 service and you can save your data, classified into groups i.e. buckets. This is a paid service. Refer to https://cloud.google.com/products/cloud-storage/
If you prefer to deal with SQL, you can look at Google Cloud SQL, which gives you a MySQL Instance in the cloud. This is a paid service too. Refer to https://developers.google.com/cloud-sql/
Finally, if you application prefers that you use the Google Drive account of the User itself, then you can look at directly integrating with Google Drive API. Recently Google introduced good updates to their Android Drive API. https://developers.google.com/drive/android/
In all the above cases, when it comes to interacting with the App Engine application, it is advisable that you expose the Data Services via a REST like API in your App Engine application.
Using Google App Engine allows you to setup a local Datastore for testing. When you deploy your App Engine code, it will create the same Datastore on App Engine too [without the data]. Basically, if you follow the steps in the link you have mentioned it will setup Eclipse and App Engine, the App Engine service does not run inside your Android ecosystem. It can be modelled as a REST based URL server, where you can define Endpoints as mentioned here: Java GAE
As for tutorials: Default Google Docs!
I have a full app here, almost full application! Sample App
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.