Sunday, December 21, 2014

Build Mobile App Services with Google Cloud Tools for Android Studio v1.0



Posted by Chris Sells, Product Manager, Cloud Tools for Android Studio
Cloud Tools for Android Studio
allows you to simultaneously build the service- and client-side of your
mobile app. Earlier this month, we announced the release of Android Studio 1.0
that showed just how much raw functionality there is available for
Android app developers. However, the client isn’t the whole picture, as
most mobile apps also need one or more web services. It was for this
reason that the Cloud Tools for Android Studio were created.
Cloud Tools put the power of Google App Engine
in the same IDE alongside of your mobile client, giving you all the
same Java language tools for both sides of your app, as well as making
it far easier for you to keep them in sync as each of them changes.

Getting Started

To get started with Cloud Tools for Android Studio, add a New Module to your Android Studio project, choose Google Cloud Module and you’ll have three choices:
You can add three Google Cloud module types to your Android Studio project
The Java Servlet Module
gives you a plain servlet class for you to implement as you see fit. If
you’d like help building your REST endpoints with declarative routing
and HTTP verbs and automatic Java object serialization to and from JSON,
then you’ll want the Java Endpoints Module.
If you want the power of endpoints, along with the ability to send
notifications from your server to your clients, then choose Backend with Google Cloud Messaging.
Once you’re done, you’ll have your service code right next to your client code:

You can build your mobile app’s client and service code together in a single project
Not only does this make it very convenient to build and test your
entire end-to-end, but we also dropped a little extra something into
your app’s build.gradle file:
The android-endpoints configuration build step in your
build.gradle file creates a client-side library for your server-side
endpoint
The updated Gradle file will now create a library for use in your
app’s client code that changes when your service API changes. This
library lets you call into your service from your client and provides
full code completion as you do:
The client-side endpoint library provides code completion and documentation
Instead of writing the code to create HTTP requests by hand, you can
make calls via the library in a typesafe manner and the marshalling from
JSON to Java will be handled for you, just like on the server-side (but
in reverse, of course).

Endpoints Error Detection

Meanwhile, back on the server-side, as you make changes to your
endpoints, we’re watching to make sure that they’re in good working
order even before you compile by checking the attributes as you type:

Cloud Tools will detect errors in your endpoint attributes
Here, Cloud Tools have found a duplicate name in the ApiMethod attribute, which is easy to do if you’re creating a new method from an existing method.

Creating an Endpoint from an Objectify Entity

If, as part of your endpoint implementation, you decide to take advantage of the popular Objectify library,
you’ll find that Cloud Tools provides special support for you. When you
right-click (or control-click on the Mac) on a file containing an
Objectify entity class, you’ll get the Generate Cloud Endpoint from Java class option:

The generate Cloud Endpoint from Java class option will create a CRUD endpoint for you
If you’re running this option on a Java class that isn’t built with
Objectify, then you’re going to get an endpoint with empty methods for
get and insert operations that you can implement as appropriate.
However, if you do this with an Objectify entity, you’ll get a fully
implemented endpoint:

Cloud Tools has built-in support for generating Objectify-based cloud endpoint implementations

Using your Cloud Endpoint

As an Android developer, you’re used to deploying your client first
in the emulator and then into a local device. Likewise, with the
service, you’ll want to test first to your local machine and then, when
you’re ready, deploy into a Google App Engine project. You can run your
service app locally by simply choosing it from the Configurations menu
dropdown on the toolbar and pressing the Run button:

 
 
The Configurations menu in the toolbar lets you launch your service for testing
This will build and execute your service on http://localhost:8080/
(by default) so that you can test against it with your Android app
running in the emulator. Once you’re ready to deploy to Google Cloud
Platform, you can do so by selecting the Deploy Module to App Engine
option from the Build menu, where you’ll be able to choose the source
module you want to deploy, log into your Google account and pick the
target project to which you’d like to deploy:

The Deploy to App Engine dialog will use your Google credentials to enumerate your projects for you
Cloud Tools beta required some extra copying and pasting to get the
Google login to work, but all of that’s gone now in this release.

0 comments:

Post a Comment

Thank you very much for your comments ....................... Please stay with this blog